首页
社区
课程
招聘
[原创]通过Wannacry分析内核shellcode注入dll技术
发表于: 2017-10-11 22:06 9487

[原创]通过Wannacry分析内核shellcode注入dll技术

2017-10-11 22:06
9487

Wannacry爆发过去有半年时间了,但是他的很多技术还是值得研究,确切地说是NSA武器库的技术值得深入研究。今天学习一下内核shellcode注入dll技术。

Wannacry的shellcode分三层,第一层的功能开一个后门,执行攻击者的后续命令;第二层、第三层一起完成注入dll的任务在执行其他操作。

简单介绍第一层功能,挂钩srv模块SrvTransaction2DispatchTable的第14相srv!SrvTransactionNotImplemented,打开一个后门,这部分详细分析可以参考 https://bbs.pediy.com/thread-217734.htm
不过有一点需要指出的是作者在下面一行的猜测

进入shellcode后,该样本在进行奇怪的jne和call之后(我认为是防止静态分析以及弄乱栈),修改了第0C0000082h号MSR:

这里31c04090 在x86下反汇编

其中Inc eax 改变zf标志位为0,je语句不执行,接着执行call,而在上面x64的环境下,je语句则要执行,跳转到不同的代码地址。这个小技巧可以动态的判断OS架构执行不同的代码。
第二层和第三层shellcode是在一块儿的,确切的说,内核并不能直接向应用程序注入dll,但是可以通过usermode下apc执行代码向应用程序去注入dll。今天主要分析一下第二层的内核部分的shellcode代码,以下代码都是在64位系统下分析:

时间匆忙,难免有疏漏错误之处,还请大家指正,共同学习进步。附件有原始shellcode和ntoskrnl.exe导出函数hash对照表。

 
 
 
ffffffff`ffd00201 31c0            xor     eax,eax
ffffffff`ffd00203 4090            xchg    eax,eax
ffffffff`ffd00205 7408            je      ffffffff`ffd0020f
ffffffff`ffd0020f e8a7000000      call    ffffffff`ffd002bb

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 1
支持
分享
最新回复 (8)
雪    币: 26205
活跃值: (63302)
能力值: (RANK:135 )
在线值:
发帖
回帖
粉丝
2
感谢分享!
2017-10-11 22:27
0
雪    币: 719
活跃值: (777)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
3
前排
2017-10-14 14:45
0
雪    币: 1395
活跃值: (195)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢分享,
2017-10-14 20:33
0
雪    币: 88
活跃值: (431)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
感谢楼主分享
2017-10-17 22:57
0
雪    币: 615
活跃值: (590)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
6
好东西,学习
2017-10-23 09:29
0
雪    币: 1319
活跃值: (1960)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
喜闻乐见APC大法=-=
2017-10-23 09:52
0
雪    币: 3
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
楼主  小弟最近也在研究这个shellcode,但是发现抓的包转成汇编码后  跟lz的有一部分一样也有很多东方不一样啊  搞不懂啊  头疼  这是学校做的课题  求助
2018-4-27 14:00
0
雪    币: 3
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
楼主 麻烦你看一下这是我抓包处理后的数据 里面有我的注释  因为ida每次翻译成汇编都不对所以才用txt 我是萌新 请见谅
上传的附件:
2018-4-27 14:07
0
游客
登录 | 注册 方可回帖
返回
//