Windows SMBv3 客户端/服务器远程代码执行漏洞浅析

                    Microsoft SMBv3远程代码执行漏洞浅析

 

  1. 前言

            Microsoft通过Microsoft Server Message Block 3.1.1(SMBv3)协议处理某些请求的方式意识到了一个远程执行代码漏洞。成功利用此漏洞的攻击者可以在目标SMB服务器或SMB客户端上执行代码。

            为了利用针对SMB服务器的漏洞,未经身份验证的攻击者可以将特制数据包发送到目标SMBv3服务器。若要利用针对SMB客户端的漏洞,未经身份验证的攻击者将需要配置恶意的SMBv3服务器,并诱使用户连接到该服务器。
  2. 受影响系统

    Windows 10版本1903(用于32位系统)

    Windows 10 1903版(用于基于ARM64的系统)

    Windows 10 1903版(用于基于x64的系统)

    Windows 10版本1909(用于32位系统)

    Windows 10 1909版(用于基于ARM64的系统)

    Windows 10版本1909(用于基于x64的系统)

    Windows Server版本1903(服务器核心安装)

    Windows Server版本1909(服务器核心安装)

  3. 实验环境

    windows10专业版;版本 1909 (OS 内部版本 18363.657)//靶机
    windows7(攻击机)
    python 3.7

  4.  

    实验环境
    扫描代码:

     

    //CVE-2020-0796扫描探测脚本
    //执行结果:IP vulnerable 表示存在该漏洞
    //执行结果:IP Not vulnerable 表示不存在该漏洞
    import socket
    import struct
    import sys
    from netaddr import IPNetwork
    
    pkt = b'\x00\x00\x00\xc0\xfeSMB@\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'
    
    subnet = sys.argv[1]
    
    for ip in IPNetwork(subnet):
    
        sock = socket.socket(socket.AF_INET)
        sock.settimeout(3)
    
        try:
            sock.connect(( str(ip),  445 ))
        except:
            sock.close()
            continue
    
        sock.send(pkt)
    
        nb, = struct.unpack(">I", sock.recv(4))
        res = sock.recv(nb)
    
        if res[68:70] != b"\x11\x03" or res[70:72] != b"\x02\x00":
            print(f"{ip} Not vulnerable.")
        else:
            print(f"{ip} Vulnerable")

     

  5. 系统相关截图
    靶机相关信息:

    测试SMB服务:
    键盘Ctrl+R,输入\\IP

  6.  结果截图
    扫描脚本执行结果:

    执行攻击脚本:

    攻击结果:

  7. 修复整改建议
    微软官方针对此漏洞给出的详细整改建议:
    详情请参考:https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/adv200005
    您可以使用以下PowerShell命令禁用压缩功能,以阻止未经身份验证的攻击者利用SMBv3服务器的漏洞。

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

     

    8. 使用SMB协议压缩流量传输分析结果
       
  

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值