搜索
    Hi~登录注册
    查看: 272|回复: 0
    收起左侧

    CVE-2020-0796复现与修复

    [复制链接]

    1

    主题

    0

    精华

    51 小时

    在线时间

    新手上路

    Rank: 1

    积分
    18
    发表于 2020-3-15 01:16:35 | 显示全部楼层 |阅读模式

    ] 本帖最后由 食肉者 于 2020-3-15 01:58 AM 编辑 [/i]

    [md]# 一、事件描述

    2020 年 3 月 10 日,微软发布安全通告称 Microsoft Server Message Block 3.1.1(SMBv3)协议在处理某些请求的方式中存在代码执行漏洞,未经身份验证的攻击者发送精心构造的数据包进行攻击,可在目标 SMB 服务器上执行任意代码。

    微软 SMB 协议的内存破坏漏洞,编号 CVE-2020-0796,并表示该漏洞无需授权验证即可被远程利用,可能形成蠕虫级漏洞。攻击者利用该漏洞无须权限即可实现远程代码执行,受黑客攻击的目标系统只需开机在线即可能被入侵。

    二、影响范围

    该漏洞不影响 Windows7,漏洞影响 Windows10 1903 之后的 32 位、64 位 Windows 版本,包括家用版、专业版、企业版、教育版。主要影响版本如下:

    Windows 10 Version 1903 for 32-bit Systems

    Windows 10 Version 1903 for ARM64-based Systems

    Windows 10 Version 1903 for x64-based Systems

    Windows 10 Version 1909 for 32-bit Systems

    Windows 10 Version 1909 for ARM64-based Systems

    Windows 10 Version 1909 for x64-based Systems

    Windows Server, version 1903 (Server Core installation)

    Windows Server, version 1909 (Server Core installation)

    三、复现

    import socket
    import struct
    
    import IPy as IPy
    import argparse
    
    class SMBScanner:
        pkt = b'\x00\x00\x00\xc0\[email protected]\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00$\x00\x08\x00\x01\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\x00\x00\x00\x02\x00\x00\x00\x02\x02\x10\x02"\x02$\x02\x00\x03\x02\x03\x10\x03\x11\x03\x00\x00\x00\x00\x01\x00&\x00\x00\x00\x00\x00\x01\x00 \x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\n\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00'
    
        def payload(self, ip):
            try:
                sock = socket.socket(socket.AF_INET)
                sock.settimeout(3)
                sock.connect((ip, 445))
                sock.send(self.pkt)
    
                nb, = struct.unpack(">I", sock.recv(4))
                res = sock.recv(nb)
    
                if not res[68:70] == b"\x11\x03":
                    print(ip + " : Not vulnerable.")
                if not res[70:72] == b"\x02\x00":
                    print(ip + " : Not vulnerable.")
                else:
                    print(ip + " : ***** Vulnerable ****")
            except:
                print(ip + " : Connection refused.")
    
        def start(self, target):
            ips = IPy.IP(target)
            for ip in ips:
                self.payload(str(ip))
    
    
    if __name__ == '__main__':
        parser = argparse.ArgumentParser()
        parser.add_argument("-t", "--target", required=True, help="target ip or ip/mask Example: 127.0.0.1 or 127.0.0.1/24")
        args = parser.parse_args()
        target = args.target
        print("[*] Start to scan ...")
    
        SMBScanner().start(target)
    

    保存以上代码为 py 文件(假设文件名为:ccc.py),打开命令提示符,执行 python ccc.py -t ip(若为本机,则 ip 为本机 ip 或者 127.0.0.1),如果执行结果有 Vulnerable 的字样,则存在该漏洞

    image.png

    四、修复

    以管理员方式运行 Powershell,执行如下命令:

    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" DisableCompression -Type DWORD -Value 1 -Force

    上面的命令是将注册表中 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters 的 DisableCompression 数值修改为 1。

    再次运行命令提示符,执行 python ccc.py -t ip,可以发现已经变为"Not vulnerable"。

    image.png

    这种方式将 DisableCompression 数值再次改为 0,仍存在漏洞。建议及时打上补丁进行修复

    补丁链接:https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-0796

    五、参考链接

    https://blog.csdn.net/weixin_45728976/article/details/104833177?fps=1&locationNum=2

    http://www.piis.cn/news/new1614.asp

    https://github.com/dickens88/cve-2020-0796-scanner/blob/master/cve-2020-0796-scanner.py

    https://github.com/ollypwn/SMBGhost/blob/master/scanner.py

    https://www.cnblogs.com/smartmsl/p/12485814.html

    http://security.neu.edu.cn/2020/0313/c6443a165858/page.htm

    以及站长的情感聊天直播室

    六、结语

    这是我的第一篇贴子,虽然写得很水,不过还是希望能够得到大家的支持。

    image.png
    image.png
    回复

    使用道具 举报

    游客
    回复
    您需要登录后才可以回帖 登录 | 获取账号

    快速回复 返回顶部 返回列表