安全路透社
当前位置:安全路透社 > 安全客 > 正文

【技术分享】EternalBlue Shellcode详细分析

 http://p9.qhimg.com/t017f6d54c32efc9e9f.png

0x0 前言


说来很惭愧,EnternalBlue 已经出来很久了,最近才开始分析,漏洞原理和环境搭建网上已经烂大街了,因此这篇文章只分析Shellcode,调试平台如下:

windows 7 sp1  en    32 位

Windbg

Eternalblue

Doublepulsar

Wireshark

断点方法是将Shellcode中的31c0修改为CCCC(int 3)后发送,成功断下来后再通过ew(fdff1f1) c031即可。该Shellcode 大致分为三段: 0x1,hook nt! kiFastCallEntry篇; 0x2, 主要功能篇;0x 3, 后门通信篇,下面来逐一进行介绍。

0x1 Hook ntdll! kiFastCallEntry篇


这部分代码功能比较简单, 但还是值得学习:首先是判断系统环境,作者用法比较巧妙,利用了x86和x64系统通过对二进制指令的解析不同来判断系统环境(64位环境没有调试,直接用IDA查看, 如下图。

http://p1.qhimg.com/t01160988cbaa0ba593.png

3.4 计算命令类型

3.14 执行解码后的数据,重新生成解码引子和解码key

Step 8 , 将发送的SMB Reponse 中Multiplex ID + 0x10 (执行成功) ,转到Step 11;

Step 9, 将发送的SMB Reponse 中Multiplex ID + 0x20 (非后门需要的数据包),转到Step 11;

Step 10, 将发送的SMB Reponse 中Multiplex ID + 0x30 (内存分配失败),转到Step 11;

Step 11, 跳到真正的SrvTransactionNotImplemented中执行。

0x4 写在最后


这是小菜第一次内核调试,查了很多资料,学了很多内核相关知识,也学到了EternalBlue作者的一些奇淫技巧。但是还是有很多不清楚的地方,希望各位大牛不吝赐教

0x5 参考文献


1NSA Eternalblue SMB 漏洞分析 http://blogs.360.cn/360safe/2017/04/17/nsa-eternalblue-smb/

【2】NSA Eternalblue SMB 漏洞分析

http://www.myhack58.com/Article/html/3/62/2017/85358_4.htm


原文链接:

未经允许不得转载:安全路透社 » 【技术分享】EternalBlue Shellcode详细分析

赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册