描述如下:
漏洞是因爲操作系統在處理SMBv3協議中的壓縮數據包時存在錯誤處理。 成功構造數據包的攻擊者可在遠程無驗證的條件下利用該漏洞執行任意代碼。
易被感染系統:
+ 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)
檢測腳本:
使用方法:python3 scanner.py <IP>
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")
如何預防?
Microsoft的修補程序更新已發佈,請立即更新。 立即下載補丁-KB4551762
解決方法:禁用SMBv3壓縮:您可以通過下面的PowerShell命令禁用壓縮功能,以阻止未經身份驗證的攻擊者利用SMBv3服務器的漏洞。
Set-ItemProperty -Path“ HKLM:\ SYSTEM \ CurrentControlSet \ Services \ LanmanServer \ Parameters” DisableCompression -Type DWORD -Value 1 -Force