
BlueKeep scanner supporting NLA
BlueKeep (CVE-2019-0708)-Scanner, der sowohl unauthentifiziert als auch authentifiziert funktioniert (d. h. wenn Netzwerkeben-Authentifizierung (NLA) aktiviert ist).
Voraussetzungen:
Es basiert auf FreeRDP und verwendet Docker, um Kompilierung/Ausführung zu erleichtern. Es sollte in jeder UNIX-Umgebung funktionieren und wurde hauptsächlich unter Linux/Ubuntu getestet.
Voraussetzungen installieren:
sudo apt-get install docker.io
Erstellen Sie den benutzerdefinierten FreeRDP-Client im Docker-Container namens bkscan:
$ git clone https://github.com/nccgroup/BKScan.git
$ cd BKScan
$ sudo docker build -t bkscan .
[...]
Successfully built f7666aeb3259
Successfully tagged bkscan:latest
Rufen Sie das Skript bkscan.sh von Ihrer Maschine aus auf. Es ruft den benutzerdefinierten FreeRDP-Client im neu erstellten Docker-Container bkscan auf:
$ sudo ./bkscan.sh -h
Usage:
./bkscan.sh -t <target_ip> [-P <target_port>] [-u <user>] [-p <password>] [--debug]
Gegen ein verwundbares Windows 7 mit aktiviertem NLA und gültigen Anmeldedaten.
$ sudo ./bkscan.sh -t 192.168.119.141 -u user -p password
[+] Targeting 192.168.119.141:3389...
[+] Using provided credentials, will support NLA
[-] Max sends reached, please wait to be sure...
[!] Target is VULNERABLE!!!
Gegen ein Windows 10 (nicht verwundbar) oder ein gepatchtes Windows 7 mit aktiviertem NLA und gültigen Anmeldedaten:
$ sudo ./bkscan.sh -t 192.168.119.133 -u user -p password
[+] Targeting 192.168.119.133:3389...
[+] Using provided credentials, will support NLA
[-] Max sends reached, please wait to be sure...
[*] Target appears patched.
Gegen ein Windows 7 (verwundbar oder gepatcht), bei dem NLA aktiviert ist, das wir aber mit einem Client ohne NLA-Unterstützung scannen:
$ sudo ./bkscan.sh -t 192.168.119.141
[+] Targeting 192.168.119.141:3389...
[+] No credential provided, won't support NLA
[-] Connection reset by peer, NLA likely to be enabled. Detection failed.
Gegen ein Windows 7 (verwundbar oder gepatcht) mit aktiviertem NLA und gültigen Anmeldedaten, aber der Benutzer ist nicht Teil der Gruppe „Remote Desktop Users":
$ sudo ./bkscan.sh -t 192.168.119.141 -u test -p password
[+] Targeting 192.168.119.141:3389...
[+] Using provided credentials, will support NLA
[-] NLA enabled, credentials are valid but user has insufficient privileges. Detection failed.
Gegen ein Windows 7 (verwundbar oder gepatcht) mit aktiviertem NLA und ungültigen Anmeldedaten:
$ sudo ./bkscan.sh -t 192.168.119.141 -u user -p badpassword
[+] Targeting 192.168.119.141:3389...
[+] Using provided credentials, will support NLA
[-] NLA enabled and access denied. Detection failed.
Gegen ein Windows 10 (nicht verwundbar) mit aktiviertem NLA und ungültigen Anmeldedaten:
$ sudo ./bkscan.sh -t 192.168.119.133 -u user -p badpassword
[+] Targeting 192.168.119.133:3389...
[+] Using provided credentials, will support NLA
[-] NLA enabled and logon failure. Detection failed.
Hinweis: Der Unterschied in der Ausgabe zwischen Windows 7 und Windows 10 ist wahrscheinlich auf die Windows-CredSSP-Versionen zurückzuführen, und Ihre Ausgabe kann abweichen.
Gegen ein verwundbares Windows XP (keine NLA-Unterstützung):
$ sudo ./bkscan.sh -t 192.168.119.137
[+] Targeting 192.168.119.137:3389...
[+] No credential provided, won't support NLA
[-] Max sends reached, please wait to be sure...
[!] Target is VULNERABLE!!!
Gegen ein Windows 7 mit deaktiviertem RDP oder blockiertem Port:
$ sudo ./bkscan.sh -t 192.168.119.142
[+] Targeting 192.168.119.142:3389...
[+] No credential provided, won't support NLA
[-] Can't connect properly, check IP address and port.
Besonderer Dank gilt @JaGoTu und @zerosum0x0 für die Veröffentlichung ihres Unauthenticated-CVE-2019-0708-„BlueKeep“-Scanners, siehe hier. Der BKScan-Scanner in diesem Repository funktioniert ähnlich wie ihr Scanner, wurde jedoch auf FreeRDP portiert, um NLA zu unterstützen.
Dank an mi2428 für die Veröffentlichung eines Skripts zum Ausführen von FreeRDP in Docker, siehe hier.
Ebenfalls Dank an die folgenden Personen für ihre Beiträge:
Wenn Sie ein Problem mit dem BlueKeep-Scanner haben, erstellen Sie bitte ein Issue in diesem GitHub-Repository mit der detaillierten Ausgabe unter Verwendung von ./bkscan.sh --debug.
Einige neuere Linux-Versionen (z. B. Ubuntu 18.04 oder Kali 2019.2 Rolling) kommen mit den Umgebungsvariablen $DISPLAY und $XAUTHORITY nicht gut zurecht.
$ sudo ./bkscan.sh -t 192.168.119.137
[+] Targeting 192.168.119.137:3389...
[+] No credential provided, won't support NLA
[07:58:35:866] [1:1] [ERROR][com.freerdp.client.x11] - failed to open display: :0
[07:58:35:866] [1:1] [ERROR][com.freerdp.client.x11] - Please check that the $DISPLAY environment variable is properly set.
Es funktioniert einwandfrei auf einer frischen Installation von Ubuntu 18.04, aber nicht auf einer Installation, die ich eine Weile genutzt habe. Daher mache ich ein aktualisiertes X11-bezogenes Paket oder eine entsprechende Konfiguration dafür verantwortlich.
docker-org dokumentiert dieses Problem und schlägt eine Lösung vor, aber ich selbst konnte es nicht zum Laufen bringen. Daher bin ich mir nicht sicher, ob sie dasselbe Problem beschreiben. Wenn Sie dieses Problem ebenfalls haben und es beheben können, können Sie gerne einen PR erstellen.