吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8278|回复: 90
收起左侧

[原创] 如何禁用软件DLL劫持(Disable DLL Hijacking)

    [复制链接]
Hmily 发表于 2021-8-24 11:38

前言

越来越多的木马使用DLL劫持功能进行加载,大家也经常做补丁使用DLL劫持功能进行破解,有没有想过如何进行防护了?本文介绍通过修改文件manifest属性进行定向位置加载和动态加载签名校验来解决劫持问题,给开发者提供一些防护思路,加强软件保护,防止被劫持利用。

介绍

木马
如早期的犇牛木马,使用伪装LPK.DLL、USP10.DLL系统DLL进行劫持加载传播感染,到如今各种流氓软件和APT组织使用DLL劫持正常软件绕过安全软件拦截,如使用伪装chrome.dll劫持Chrome.exe来实现加载,其中比较知名APT组织海莲花(OceanLotus)最为擅长。

破解补丁
Windows平台加密壳发展到如今阶段,脱壳成本提升和自校验的加强,已经很少有直接通过文件Patch进行补丁破解了,基本都开始使用内存修改的方式进行补丁,相对于传统的启动进程再修改内存的方式,DLL劫持修改内存更为方便,DLL劫持补丁已经成为主流的破解补丁存在方式了。为什么可以进行DLL劫持了,本文不再赘述,可以参看微软官方的介绍:

https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order  

防护方法

  1. 对于系统DLL,不通过修改本机KnownDLLs进行单机防护,而是通过修改文件manifest属性进行定向加载DLL来解决通用系统DLL劫持问题,开发者可以看微软的manifest介绍:>https://docs.microsoft.com/en-us/windows/win32/sbscs/application-manifests
    比如我们给程序添加以下
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
    <file name="winmm.dll" loadFrom="%SystemRoot%\system32\winmm.dll" />
    <file name="lpk.dll" loadFrom="%SystemRoot%\system32\lpk.dll" />
    <file name="version.dll" loadFrom="%SystemRoot%\system32\version.dll" />
    </assembly>

    编译成功后再进行winmm.dll、lpk.dll和version.dll劫持,就会无效了,这里只添加了部分DLL,可以根据自己程序所需,把对应所有的导入表中的系统DLL都加入即可。对于二次开发的程序没有源代码如何进行修改了?我们可以使用ResEdit等资源工具进行修改,如图所示:
    xx.png

  2. 对于非系统第三方DLL,上面的方法就不太适用了,可以使用动态加载方式,不要使用静态导入方式加载,通过动态加载对文件进行校验,如数字签名校验通过后再进行加载,来保证程序的安全性

    结语

    未知攻焉知防,充分了解攻击手段才才可以做出更好的防御,感谢@690827027 的指点,学习到新的知识。

    参考链接

    https://curl.se/mail/lib-2018-02/0075.html
    https://itm4n.github.io/windows-dll-hijacking-clarified/
    https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order

免费评分

参与人数 51吾爱币 +55 热心值 +46 收起 理由
凉游浅笔深画眉 + 3 + 1 感谢分享
xuqi + 1 + 1 我很赞同!
Enrace + 1 + 1 我很赞同!
NBW666 + 1 热心回复!
cgyy + 1 谢谢@Thanks!
mele1213 + 1 + 1 谢谢@Thanks!
pizazzboy + 1 + 1 谢谢@Thanks!
福仔 + 2 + 1 谢谢@Thanks!
shanglong + 1 + 1 谢谢@Thanks!
林进鸿 + 1 + 1 我很赞同!
alongzhenggang + 1 + 1 谢谢@Thanks!
泉昭 + 1 我很赞同!
lllliiii + 1 + 1 用心讨论,共获提升!
Quinx + 1 + 1 我很赞同!
wu-ai-po-jie + 1 用心讨论,共获提升!
xukefei + 1 + 1 谢谢@Thanks!
hwh425 + 1 谢谢@Thanks!
superbacteria + 1 + 1 用心讨论,共获提升!
阿成155 + 1 + 1 热心回复!
岁月的纤伴 + 1 + 1 热心回复!
mxjxz + 1 + 1 谢谢@Thanks!
xiaotao921 + 1 + 1 用心讨论,共获提升!
shiyucj + 1 + 1 我很赞同!
5omggx + 1 + 1 用心讨论,共获提升!
努力加载中 + 1 + 1 谢谢@Thanks!
linyouqingseo + 1 + 1 H大神必属精品
wdhd1713 + 1 + 1 谢谢@Thanks!
gunxsword + 1 + 1 实用,学到了!
笙若 + 1 + 1 谢谢@Thanks!
xulihua_1987 + 1 + 1 我很赞同!
zjun777 + 1 + 1 感谢您的宝贵建议,我们会努力争取做得更好!
JPK + 2 感谢发布原创作品,吾爱破解论坛因你更精彩!
fengbolee + 2 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
Johnyoung8 + 1 我很赞同!
柒點 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
黑色枪骑兵 + 1 + 1 我很赞同!
hhxx2021 + 1 谢谢@Thanks!
c_kongfe + 1 + 1 用心讨论,共获提升!
Seven_2017 + 2 + 1 感谢您的宝贵建议,我们会努力争取做得更好!
jokerl-飘雪 + 1 + 1 反感!!反感!!我想出黑屋
gomg007 + 1 + 1 我很赞同!
Witheredead + 1 谢谢H大 Thanks!
wq0220 + 3 + 1 用心讨论,共获提升!
24k纯金滑稽 + 1 + 1 用心讨论,共获提升!
lies2014 + 1 + 1 用心讨论,共获提升!
独行风云 + 1 + 1 用心讨论,共获提升!
骚猪佩奇 + 2 + 1 用心讨论,共获提升!
苏紫方璇 + 1 + 1 用心讨论,共获提升!
奔放的汉子 + 1 + 1 谢谢@Thanks!
Ryan_XQ + 1 + 1 用心讨论,共获提升!
MintPrince + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

ximo 发表于 2021-8-24 15:09
这篇文章来自吾爱坛主hmily,
文章很有体系,
花费了坛主不少力气,
想学技术的人要仔细做好笔记,
学习路上要脚踏实地。


本文学习的技术叫做防护dll劫持,
劫持技术在破解中使用的比比皆是,
如何避免你的开发成果被人猎食,
这篇文章会给你具体的解释。
本中的方法不是传统的修改注册表,
该方法不是所有人都想得到,
manifest的预备知识必不可少,
就像登陆泰坦尼克号的船票。


最后我要再说一句:
如果想要学习软件安全的技术,
一定要把吾爱破解的网址记住,
里面很多人都会热心的当你师傅,
学会技术让你发家致富!

免费评分

参与人数 1吾爱币 +1 收起 理由
Monitor + 1 怀疑你在灌水,但由于过于高端而无法举报 ^_^

查看全部评分

 楼主| Hmily 发表于 2021-8-24 12:37
加奈绘 发表于 2021-8-24 12:12
第三方软件的dll数字签名如果伪造为系统签发是不是可以绕过

只是提供一个方向,具体可以做校验的方法很多,不局限于微软的数字签名,即使伪造也可以检测。
荒天 发表于 2021-8-24 11:47
我还以为是发币,结果不是

免费评分

参与人数 1吾爱币 -1 收起 理由
Hmily -1 警告:本版块禁止灌水或回复与主题无关内容

查看全部评分

A-new 发表于 2021-8-24 16:00
这篇文章来自吾爱坛主hmily,
文章逻辑严谨,自成体系,
有坛主自己的沉淀和思考,
想学技术的人要仔细做好笔记,
学习路上要脚踏实地。


本文学习的技术叫做防护dll劫持,
劫持技术在破解中使用的比比皆是,
如何避免你的开发成果被人猎食,
这篇文章会给你具体的解释。
如何猎食别人的开发成果,
这篇文章也会给你一定的启发。
本中的方法不是传统的修改注册表,
该方法不是所有人都想得到,
manifest的预备知识必不可少,
就像登陆泰坦尼克号的船票。


最后我要再说一句:
如果想要学习软件安全的技术,
一定要把吾爱破解的网址记住,
里面很多人都会热心的当你师傅,
学会技术让你发家致富!切记!

免费评分

参与人数 1吾爱币 +1 收起 理由
Monitor + 1 跟ximo大大同款?

查看全部评分

wgmm999 发表于 2021-8-24 11:40
h大牛   好好学习
奔放的汉子 发表于 2021-8-24 11:47
前排露个脸,给大佬点赞。。。

慢慢学习
t1099778271 发表于 2021-8-24 11:52
学习了。。。。。。。。。。。。。。。。
平淡最真 发表于 2021-8-24 11:55
破解又难了一步
fhangong 发表于 2021-8-24 11:56
学习学习,谢谢分享。
wangyujie96 发表于 2021-8-24 12:06
那么攻击者也可以用该方法进行hack。
加奈绘 发表于 2021-8-24 12:12
第三方软件的dll数字签名如果伪造为系统签发是不是可以绕过

点评

只是提供一个方向,具体可以做校验的方法很多,不局限于微软的数字签名,即使伪造也可以检测。  详情 回复 发表于 2021-8-24 12:37
skywalk1979 发表于 2021-8-24 12:14
这篇文章解释的非常清楚,受教了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-27 07:23

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表