SMBv3 漏洞 (CVE-2020-0796)

 

廢話不多說,NVD直接給予這個漏洞10分,跟跳水一樣滿分啊!果然在漏洞上拔得頭籌,無人可及。

 

影響的版本是Windows 10 1903/1909這二個版本,SMBv3(版本號3.1.1)。

    • 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 (windows & Linux都有安裝方式,可以自己找)
  • 創造scanner.py的檔案(取什麼名字都沒差,別打錯指令就好)
  • 進入cmd or tunnel敲下指令

    1. 自行安裝Python3

    2. 新建檔案改成XXXX.py的格式,將以下的內容放入:(這段不用擔心裡面有毒,我後面會再解釋)

import socket

import struct

import sys

smbsuckmickey_mouse = 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′

sock = socket.socket(socket.AF_INET)

sock.settimeout(3)

sock.connect(( sys.argv[1], 445 ))

sock.send(smbsuckmickey_mouse)

nb, = struct.unpack(“>I”, sock.recv(4))

res = sock.recv(nb)

if not res[68:70] == b”\x11\x03″:

exit(“Not vulnerable.”)

if not res[70:72] == b”\x02\x00″:

exit(“Not vulnerable.”)

exit(“Vulnerable.”)

    3. 輸入測試指令:python XXXX.py 127.0.0.1

語法解析

為什麼上面說XXX.py這個內容可以放心抄,因為他並不是用來做滲透測試的,他只是用來檢測版本而已,所以你也不用擔心防火牆阻擋他。

發出request。

回應版本號。(in not res[68:70] == b”\x11\x03”:)這段指的是在回應封包的第68~70字節做檢查。如果回應的版本與預期的相同,則回覆有漏洞。

無受影響的版本回應,可以看到在第68~70字節回應的data為:SMB 2.1 (0x0210)

無受影響的版本回應,可以看到在第68~70字節回應的data為:SMB 3.1.1 (0x0311)

所以,這個程式不是讓你拿來打別人,只是用來測試SMB的版本而已,因此可以放心使用,另外,有問題的請記得盡快更新

PS.只是最近Windows每每更新都會有災難發生,更新前記得先去拜拜哦!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.