-
-
[原创]通过Wannacry分析内核shellcode注入dll技术
-
发表于:
2017-10-11 22:06
9488
-
[原创]通过Wannacry分析内核shellcode注入dll技术
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
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课