-
游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。
赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!
TheHackerWorld官方
- 0
赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!
TheHackerWorld官方
问题
HACK1949
Cow注入器-滥用COW机制进行全局hook与注入
1 启动时无驱动程序运行
2 没有线程创建时注入作弊游戏
3. 当我们完成注入时,内存中没有私有标志
它将最小化内部检测的检测向量
0x1 背景
关于COW:
系统中存在一个叫做cow的机制 国外大神@can1357的perfect injecter帖子说的很清楚了:
综上所述:当我们更改了cow标志时,物理内存将比更改应用于全局,直到重新启动系统
关于反作弊如何阻止dll:
大多数反游戏(除了EAC)使用minifilter来过滤游戏加载文件。当一个PE文件被游戏访问时,minifilter回调将被激活, 然后反作弊驱动程序将文件路径和信息反馈给R3 anticheat(EasyAntiCheat.exe以及BEService.exe)R3反作弊会调用CreateFile读取要访问的PE文件并检查签名,如果不是白名单签名,它将被阻止加载.
0x2 实现COW注入器
首先定位cow物理内存:
获取cow模块地址和空间
现在我们有了kernel32.dll、kernelbase.dll、ntdll.dll地址。当我们改变内存时,它将通过cow机制实现全局应用
3. 写shellcode
我写一个简单的createfileW hook,游戏开始时候会调用createfileW,此时我们会loadlibrary我们的dll 之后R3反作弊也会调用createfileW去检查文件数字签名,这个时候我们把createfilew读的文件换成ntdll.dll:你可以看到这里面有一些是 0x1234567812345678 这种无效地址,这种是给接下来定位用的
我不想滥用像perfect inject这样的windows地址限制机制,所以我们需要找到一个可用内存(VAD中需要执行标志),并使用它保存shellcode:
如果一切顺利,我们可以得到一个空闲内存,可以容纳我们的shellcode和cow标志模块地址。
请注意,我尝试将外壳代码直接放入只读地址(因为它更大)并对其进行修改PTE.noexcute=0尝试使页可执行,但是发现没软用。因为似乎即使物理地址相同,PTE属性也不同
现在让我们获取导出函数以满足hook的需要:然后,最重要的是,自己手写hook:
我们需要手写hook,这是非常痛苦的
在win7中kernel32.createfileW是一个函数,但在win10中它是一个jmp origin_to_kernelbase.dll 这个代码困扰了我很长时间,直到我发现两个系统之间的差异。
用一张图片来解释我们要钩什么:
代码:
然后我们将在shellcode中找到地址并传递正确的函数地址(这就是为什么我们需要写 0x123456789地址):
最后 hook:
总结一下:
0 手写shellcode
1 加载我们的驱动程序
2 获取kernelbase ntdll kernel32地址
3 通过遍历pe头查找导出函数
4 找到一个空间来保存我们的shellcode
5 重新定位shellcode函数地址
6 钩子Kernelbase.CreatefileW文件
7 当游戏开始时,shellcode调用并加载我们的外挂dll,当反作弊调用createfilew时,给出一个假的ntdll路径
"Now they will be afraid of you:"(doom的梗)
地址:https://github.com/huoji120/CowInjecter
注意事项:
可以看出,滥用cow机制不仅可以实现注入,而且具有很大的潜力,包括不局限于绕过硬件禁止,修改签名检查功能,甚至劫持句柄, 你想怎么搞就怎么搞
请注意:
你不能只是复制一个函数作为shellcode,gcc会破shellcode,所以你需要像这样在R3中生成shellcode并把它放到驱动程序中:
链接帖子
意见的链接
分享到其他网站
这个问题有0个答案
推荐的帖子