February 24, 2022

How to Manually Exploit the Windows 10 SMBGhost Vulnerability

What is the SMBGhost Vulnerability?

The SMBGhost Vulnerability is a buffer overflow vulnerability (CVE-2020-0796) found in Windows 10 and Windows Server. This “wormable” remote code execution (RCE) vulnerability has also been called EternalDarkness and EternalBlue. This vulnerability exists within the Microsoft Server Message Block (SMB) protocol, which allows devices to share resources like printers and files across a network.

A critical vulnerability in SMB version 3.1.1 allows an attacker to inject a malicious payload into a compressed SMB connection. When the stream is decompressed by a client or server, the attacker’s controlled data overflows a memory buffer, resulting in a buffer overflow. As a result, malicious code can be executed in memory with system-level privileges.

The vulnerability is considered wormable because the exploit can be executed before authentication occurs. This means malware could exploit the flaw, then use the compromised system to scan for and attack other vulnerable machines on the network.

Vulnerable systems include:

  • Windows 10 (Versions 1903, 1909)
  • Windows Server (Versions 1903, 1909)

Scanning a Windows 10 Machine for the Vulnerability

Running an nmap scan on the target windows 10 machine shows that port 445 is open, which is required for this exploit to work:

Next, we can search for a tool on GitHub that would determine whether a target machine is susceptible to this attack – without crashing or exploiting it as yet. For this lab, I used the CVE-2020-0796 Python scanner found here.

In a terminal, clone the repository with:

Since it’s a Python 3 program, run the scanner with:

Running the program confirms the Windows 10 system is vulnerable:

Crashing the Target System

At this point, we can use another tool to either crash or exploit the target machine. The python tool I used to crash the remote system can be found here.

In the terminal, I changed my directory to the Desktop and cloned the repository:

Then, navigate into the directory:

You’ll see the Python exploit file:

Inside the script, the only data you need to modify is the target IP address:

After running the exploit, my Windows 10 machine crashed in about 15 seconds:

The target machine successfully crashed!

This is a critical vulnerability because no system should be able to crash remotely just by knowing its IP address, especially without any authentication. It highlights the importance of timely security patches and ongoing vulnerability scanning in any environment.