紫水晶编程技术论坛 - 努力打造成全国最好的编程论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 6130|回复: 5

[测试]WIN64上实现内核APC注入DLL(支持XP~WIN10){2015-11-04更新}

[复制链接]

822

主题

3356

帖子

2

精华

管理员

身居欧盟,心系中华。

Rank: 125Rank: 125Rank: 125Rank: 125Rank: 125

积分
35897
发表于 2015-10-30 17:31:13 | 显示全部楼层 |阅读模式
如果需要购买这个PoC的源码,请查看这里


APC注入DLL,不是什么神秘的东西,网上的代码非常多,但也非常糟糕。本人在写的过程中,坚持以下几点:
1.不用硬编码
2.不用内嵌汇编(__asm)、内置机器码(__emit)、外链汇编(单独的.ASM文件)、外放机器码(数组里放shellcode)
3.不用暴力非标准方式达到目的(比如通过DKOM来迫使APC执行、修改线程的PreviousMode来调用Nt系列函数)
4.坚持安全检查,即使注入失败,也尽可能不蓝屏


这个POC,可以支持:
1.GUI进程注入(比如explorer.exe)
2.CUI进程注入(比如CMD.EXE,不含user32.dll模块的进程)
3.DotNet进程注入(本来这个不该单独分类,但网上总有人说内核注入.NET程序是很难的)
4.WOW64进程注入

程序运行的效果是,注入进程后,在C盘根目录创建一个文件夹,名字是被注入进程的PID。
测试的程序分别是:explorer.exe、iexplore.exe*32、cmd.exe、cmd.exe*32、dotnet64.exe、dotnet32.exe*32(最后两个程序是自制的),可以把任意程序改名为dotnet64.exe和dotnet32.exe达到测试注入其他程序的效果(当然位数一定要对应)。

备注:
1.代码里有普通模式和暴力模式,暴力模式不需要句柄,POC里使用的是普通模式。
2.POC不能注入带线程句柄保护的进程,但只要把保护句柄的相关“羁绊”弄掉就行了。
3.本DEMO表面上只是注入DLL,实际上稍加发挥即可实现内核执行用户态SHELLCOD、内核创建用户态线程等相关操作。

64.zip

146.31 KB, 下载次数: 4139

28

主题

144

帖子

0

精华

铜牌会员

Rank: 2Rank: 2

积分
273
发表于 2015-10-30 20:41:29 | 显示全部楼层
前排围观

6

主题

107

帖子

0

精华

金牌会员

Rank: 4Rank: 4Rank: 4Rank: 4

积分
678
发表于 2015-10-31 22:48:23 | 显示全部楼层
围观中

0

主题

10

帖子

0

精华

铜牌会员

Rank: 2Rank: 2

积分
40
发表于 2016-1-4 13:03:21 | 显示全部楼层
谢谢分享。

2

主题

14

帖子

0

精华

铜牌会员

Rank: 2Rank: 2

积分
217
发表于 2017-2-1 12:02:31 | 显示全部楼层
感谢TA大大分享,最近想研究下APC结束线程,这个很有参考价值

0

主题

34

帖子

0

精华

铜牌会员

Rank: 2Rank: 2

积分
76
发表于 2017-5-24 23:56:46 | 显示全部楼层
下来看看·1~
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

手机版|Archiver|紫水晶工作室 ( 粤ICP备05020336号 )

GMT+8, 2020-2-23 10:39 , Processed in 0.035616 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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