Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
rdpscan-BlueKeep — Ein schneller Scanner für die CVE-2019-0708 "BlueKeep"-Sicherheitslücke. | Kitploit
Tools/GitHubGitHub/gh0st0ne/rdpscan-bluekeep
AufklärungSchwachstellenscannerExploitationInformationsbeschaffungNetzwerksicherheitPenetrationstests
GitHubgh0st0ne/rdpscan-bluekeep

rdpscan-BlueKeep

Ein schneller Scanner für die CVE-2019-0708 "BlueKeep"-Sicherheitslücke.

Repository anzeigen
12vor 7 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Windows download macOS download Linux download Follow

rdpscan für CVE-2019-0708 Bluekeep-Schwachstelle

Dies ist ein schneller und schmutziger Scanner für die Sicherheitslücke CVE-2019-0708 in Microsoft Remote Desktop. Derzeit gibt es etwa 900.000 Maschinen im öffentlichen Internet, die für diese Schwachstelle anfällig sind, daher wird bald ein Wurm wie WannaCry und notPetya erwartet. Scannen Sie daher Ihre Netzwerke und patchen Sie (oder aktivieren Sie zumindest NLA) auf anfälligen Systemen.

Dies ist ein Kommandozeilen-Tool. Sie können den Quellcode herunterladen und selbst kompilieren, oder Sie können eine der vorkompilierten Binärdateien für Windows oder macOS über den obigen Link herunterladen.

Dieses Tool basiert vollständig auf dem rdesktop-Patch von https://github.com/zerosum0x0/CVE-2019-0708. Ich habe lediglich den Code reduziert, damit ich ihn problemlos unter macOS und Windows kompilieren kann, und die Möglichkeit hinzugefügt, mehrere Ziele zu scannen.

Status

Dies ist erst ein paar Tage alt und experimentell. Ich teste es jedoch, indem ich das gesamte Internet scan (mit Hilfe von masscan), sodass ich viele Probleme relativ schnell bearbeite. Sie können mich auf Twitter (@erratarob) für Hilfe/Kommentare kontaktieren.

  • 2019-05-28 - Bessere Beschreibungen der Ausgabeergebnisse sowie Dokumentation ihrer Bedeutung (siehe unten).
  • 2019-05-27 - Windows- und macOS-Binärdateien veröffentlicht (klicken Sie auf die Badges oben).
  • 2019-05-26 - Behebung der Windows-Netzwerkprobleme
  • 2019-05-25 - Linux und macOS funktionieren gut, Windows hat einige Netzwerkfehler
  • 2019-05-24 - funktioniert unter Linux und macOS, Windows hat einige Kompilierungsfehler
  • 2019-05-23 - derzeit Arbeit unter macOS in XCode

Hauptverwendung

Um ein Netzwerk zu scannen, führen Sie es wie folgt aus:

root@kitploit:~
rdpscan 192.168.1.1-192.168.1.255

Dies erzeugt eines von 3 Ergebnissen für jede Adresse:

  • SAFE - wenn das Ziel als gepatcht oder zumindest als CredSSP/NLA erforderlich eingestuft wurde
  • VULNERABLE - wenn das Ziel als anfällig bestätigt wurde
  • UNKNOWN - wenn das Ziel nicht antwortet oder ein Protokollfehler auftritt

Wenn auf einer Ziel-IP nichts vorhanden ist, haben ältere Versionen die Meldung "UNKNOWN - Verbindung abgelaufen" ausgegeben. Beim Scannen großer Netzwerke führt dies zu einer Überflutung mit Informationen über Systeme, die Sie nicht interessieren. Daher unterdrückt die neue Version diese Informationen standardmäßig, es sei denn, Sie fügen -v (für verbose) in der Befehlszeile hinzu.

Sie können die Geschwindigkeit beim Scannen großer Netzwerke erhöhen, indem Sie die Anzahl der Arbeiter erhöhen:

root@kitploit:~
rdpscan --workers 10000 10.0.0.0/8

Auf meinem Computer werden jedoch aufgrund von Systemeinschränkungen nur etwa 1500 Arbeiter erzeugt, egal wie hoch ich diesen Parameter einstelle.

Sie können die Geschwindigkeit noch weiter erhöhen, indem Sie dies in Verbindung mit masscan verwenden, wie unten im zweiten Abschnitt beschrieben.

Interpretation der Ergebnisse

Es gibt drei allgemeine Antworten:

  • SAFE - bedeutet, dass das Ziel wahrscheinlich gepatcht oder anderweitig nicht anfällig für den Fehler ist.
  • VULNERABLE: bedeutet, dass wir bestätigt haben, dass das Ziel anfällig für diesen Fehler ist und bei einem Wurm wahrscheinlich infiziert wird.
  • UNKNOWN: bedeutet, dass wir weder das eine noch das andere bestätigen können, normalerweise weil das Ziel nicht antwortet oder kein RDP ausführt, was die überwiegende Mehrheit der Antworten ausmacht. Auch bei Zielen, die keine Ressourcen mehr haben oder Netzwerkprobleme haben, erhalten wir viele davon. Schließlich sind Protokollfehler für viele verantwortlich. Während die drei Hauptantworten SAFE, VULNERABLE und UNKNOWN sind, enthalten sie zusätzlichen Text, der die Diagnose erklärt. Dieser Abschnitt beschreibt die verschiedenen Zeichenfolgen, die Sie sehen werden.

SAFE

Es gibt drei Hauptgründe, warum wir ein Ziel für sicher halten:

  • SAFE - Ziel scheint gepatcht Dies tritt auf, wenn das Ziel nicht auf die auslösende Anfrage reagiert. Dies bedeutet, dass es sich um ein Windows-System handelt, das gepatcht wurde, oder um ein System, das von Anfang an nicht anfällig war, wie Windows 10 oder Unix.
  • SAFE - CredSSP/NLA erforderlich Dies bedeutet, dass das Ziel zuerst eine Netzwerkebenenauthentifizierung (NLA) erfordert, bevor die RDP-Verbindung hergestellt werden kann. Das Tool kann diesen Punkt ohne gültige Anmeldeinformationen nicht passieren, kann daher nicht feststellen, ob das Ziel gepatcht wurde. Allerdings können Hacker diesen Punkt auch nicht passieren, um anfällige Systeme auszunutzen. Daher sind Sie wahrscheinlich "sicher". Wenn jedoch Exploits auftauchen, können Insider mit gültigen Benutzernamen/Passwörtern das System ausnutzen, wenn es ungepatcht ist.
  • SAFE - kein RDP Dies bedeutet, dass das System kein RDP ist, sondern einen anderen Dienst hat, der denselben Port verwendet, und eine Antwort erzeugt, die eindeutig nicht RDP ist. Häufige Beispiele sind HTTP und SSH. Beachten Sie jedoch, dass ein Server anstelle eines identifizierbaren Protokolls mit einem RST- oder FIN-Paket antworten kann. Diese werden als UNKNOWN und nicht als SAFE identifiziert.

VULNERABLE

Dies bedeutet, dass wir bestätigt haben, dass das System anfällig für den Fehler ist.

  • VULNERABLE - appid erhalten Es gibt nur eine Antwort, wenn das System anfällig ist, diese eine.

UNKNOWN

Es gibt unzählige Variationen für Unbekannt

  • UNKNOWN - keine Verbindung - Zeitüberschreitung Dies ist bei weitem die häufigste Antwort und tritt auf, wenn die Ziel-IP-Adresse überhaupt nicht antwortet. Tatsächlich ist dies so häufig, dass es beim Scannen großer Adressbereiche normalerweise weggelassen wird. Sie müssen das Flag -v (verbose) hinzufügen, um es zu aktivieren.
  • UNKNOWN - keine Verbindung - verweigert (RST) Dies ist bei weitem die zweithäufigste Antwort und tritt auf, wenn das Ziel existiert und auf Netzwerkverkehr reagiert, aber kein RDP ausführt, sodass es die Verbindung mit einem TCP-RST-Paket ablehnt.
  • UNKNOWN - RDP-Protokollfehler - Empfangszeitüberschreitung Dies ist die dritthäufigste Antwort und tritt auf, wenn wir erfolgreich eine RDP-Verbindung hergestellt haben, der Server dann aber nicht mehr antwortet. Dies ist auf Netzwerkfehler zurückzuführen oder wenn das Zielsystem aus irgendeinem Grund überlastet ist. Es könnte auch Netzwerkfehler auf dieser Seite sein, z. B. wenn Sie sich hinter einem NAT befinden und es mit zu vielen Verbindungen überlasten.
  • UNKNOWN - keine Verbindung - Verbindung geschlossen Dies bedeutet, dass wir eine Verbindung hergestellt haben (TCP SYN-ACK), diese dann aber sofort geschlossen wird (mit RST oder FIN). Es gibt viele Gründe, warum dies passieren kann, die wir nicht unterscheiden können:
    • Es läuft RDP, schließt aber aus irgendeinem Grund die Verbindung, möglicherweise weil es keine Ressourcen mehr hat.
    • Es ist kein RDP und mag die RDP-Anfrage, die wir senden, nicht, sodass es, anstatt uns eine nette Fehlermeldung zu senden (die SAFE - kein RDP auslösen würde), abrupt die Verbindung schließt.
    • Ein zwischengeschaltetes Gerät wie IPS, Firewall oder NAT hat die Verbindung geschlossen, weil es dies als feindlich identifiziert hat oder ihm die Ressourcen ausgegangen sind.
    • Aus einem anderen Grund, den ich nicht identifiziert habe, es gibt eine Menge seltsamer Dinge, die beim Scannen des Internets passieren.
  • UNKNOWN - keine Verbindung - Host nicht erreichbar (ICMP-Fehler) Das entfernte Netzwerk meldet, dass der Host nicht erreicht werden kann oder nicht läuft. Versuchen Sie es später noch einmal, wenn Sie glauben, dass dieser Host aktiv sein sollte.
  • UNKNOWN - keine Verbindung - Netzwerk nicht erreichbar (ICMP-Fehler) Es liegt ein (vorübergehender) Netzwerkfehler auf der Gegenseite vor. Versuchen Sie es später noch einmal, wenn Sie glauben, dass dieses Netzwerk funktionieren sollte.
  • UNKNOWN - RDP-Protokollfehler Dies bedeutet, dass es zu einer Beschädigung des RDP-Protokolls gekommen ist, entweder weil die Gegenseite es falsch implementiert (kein Windows-System), weil sie einen vorübergehenden Netzwerkfehler schlecht behandelt oder aus einem anderen Grund.
  • UNKNOWN - SSL-Protokollfehler Seit Windows Vista verwendet RDP das STARTTLS-Protokoll, um über SSL zu laufen. Diese Schicht hat ihre eigenen Probleme wie oben, darunter die schlechte Behandlung zugrunde liegender Netzwerkfehler oder die Kommunikation mit Systemen, die eine Inkompatibilität aufweisen. Wenn Sie hier eine sehr lange Fehlermeldung erhalten (wie SSL3_GET_RECORD:wrong version), liegt es daran, dass die andere Seite einen Fehler in SSL hat, oder Ihre eigene SSL-Bibliothek, die Sie verwenden, einen Fehler hat.

Verwendung mit masscan

Dieses rdpscan-Tool ist ziemlich langsam und scannt nur ein paar hundert Ziele pro Sekunde. Stattdessen können Sie masscan verwenden, um die Dinge zu beschleunigen. Das masscan-Tool ist etwa 1000-mal schneller, liefert aber nur begrenzte Informationen über das Ziel.

Die Schritte sind:

  • Scannen Sie zuerst die Adressbereiche mit masscan, um schnell Hosts zu finden, die auf Port 3389 (oder einem anderen von Ihnen verwendeten Port) antworten.
  • Füttern Sie dann die Ausgabe von masscan in rdpscan, sodass es nur die Ziele scannen muss, von denen wir wissen, dass sie aktiv sind.

Die einfache Methode, dies auszuführen, besteht darin, sie in der Befehlszeile zu kombinieren:

root@kitploit:~
masscan 10.0.0.0/8 -p3389 | rdpscan --file -

Die Art, wie ich es mache, erfolgt in zwei Schritten:

root@kitploit:~
masscan 10.0.0.0/8 -p3389 > ips.txt
rdpscan --file ips.txt --workers 10000 >results.txt

Erstellung

Der schwierige Teil ist die Installation der OpenSSL-Bibliotheken, ohne dass sie mit anderen Versionen auf dem System kollidieren. Unter Debian Linux mache ich Folgendes:

root@kitploit:~
$ sudo apt install libssl-dev

Wenn Sie dieses Problem gelöst haben, kompilieren Sie einfach alle .c-Dateien wie folgt zusammen:

root@kitploit:~
$ gcc *.c -lssl -lcrypto -o rdpscan

Ich habe ein Makefile im Verzeichnis abgelegt, das dies erledigt, sodass Sie wahrscheinlich einfach Folgendes tun können:

root@kitploit:~
$ make

Der Code ist in C geschrieben, benötigt also einen C-Compiler, z. B. durch Ausführen von:

root@kitploit:~
$ sudo apt install build-essential

Häufige Build-Fehler

Dieser Abschnitt beschreibt die offensichtlicheren Build-Fehler.

root@kitploit:~
ssl.h:24:25: fatal error: openssl/rc4.h: No such file or directory

Dies bedeutet, dass Sie entweder nicht die OpenSSL-Header installiert haben oder sie sich nicht in einem Pfad befinden. Denken Sie daran: Selbst wenn Sie OpenSSL-Binärdateien installiert haben, bedeutet dies nicht, dass Sie die Entwicklungsdateien installiert haben. Sie benötigen sowohl die Header als auch die Bibliotheken.

Um diese Dinge unter Debian zu installieren, führen Sie aus:

root@kitploit:~
$ sudo apt install libssl-dev

Um das Pfadproblem zu beheben, fügen Sie ein Compiler-Flag -I/usr/local/include oder etwas Ähnliches hinzu.

Ein Beispiel für ein Linker-Problem ist das folgende:

root@kitploit:~
Undefined symbols for architecture x86_64:
"_OPENSSL_init_ssl", referenced from:
    _tcp_tls_connect in tcp-fac73c.o
"_RSA_get0_key", referenced from:
    _rdssl_rkey_get_exp_mod in ssl-d5fdf5.o
"_SSL_CTX_set_options", referenced from:
    _tcp_tls_connect in tcp-fac73c.o
"_X509_get_X509_PUBKEY", referenced from:
    _rdssl_cert_to_rkey in ssl-d5fdf5.o

Ich bekomme dies unter macOS, weil es mehrere Versionen von OpenSSL gibt. Ich behebe dies, indem ich die Pfade fest codiere:

root@kitploit:~
$ gcc *.c -lssl -lcrypto -I/usr/local/include -L/usr/local/lib -o rdpscan

Laut Kommentaren von anderen könnte die folgende Befehlszeile unter macOS funktionieren, wenn Sie Homebrew zum Installieren verwendet haben. Ich erhalte jedoch weiterhin die oben genannten Linker-Fehler, weil ich andere OpenSSL-Komponenten installiert habe, die sich widersprechen.

root@kitploit:~
gcc $(brew --prefix)/opt/openssl/lib/libssl.a $(brew --prefix)/opt/openssl/lib/libcrypto.a -o rdpscan *.c

Ausführung

Der obige Abschnitt enthält Kurzanleitungen zum Ausführen des Programms. Dieser Abschnitt enthält ausführlichere Hilfe.

Um ein einzelnes Ziel zu scannen, übergeben Sie einfach die Adresse des Ziels:

root@kitploit:~
./rdpscan 192.168.10.101

Sie können IPv6-Adressen und DNS-Namen übergeben. Sie können mehrere Ziele übergeben. Ein Beispiel dafür wäre:

root@kitploit:~
./rdpscan 192.168.10.101 exchange.example.com 2001:0db8:85a3::1

Sie können auch Adressbereiche scannen, entweder mit Beginn-Ende-IPv4-Adressen oder mit IPv4-CIDR-Spezifikation. IPv6-Bereiche werden nicht unterstützt, da sie so groß sind.

root@kitploit:~
./rdpscan 10.0.0.1-10.0.0.25 192.168.0.0/16

Standardmäßig werden nur 100 Ziele gleichzeitig gescannt. Sie können diese Anzahl mit dem Parameter --workers erhöhen. Unabhängig davon, wie hoch Sie diesen Parameter einstellen, erhalten Sie in der Praxis jedoch maximal etwa 500 bis 1500 gleichzeitig laufende Arbeiter, abhängig von Ihrem System.

root@kitploit:~
./rdpscan --workers 1000 10.0.0.0/24

Anstatt Ziele in der Befehlszeile anzugeben, können Sie sie auch aus einer Datei laden, indem Sie den gut benannten Parameter --file verwenden:

root@kitploit:~
./rdpscan --file ips.txt

Das Format der Datei ist eine Adresse, ein Name oder ein Bereich pro Zeile. Es kann auch den von masscan erzeugten Text verarbeiten. Überflüssige Leerzeichen werden entfernt, leere Zeilen werden ignoriert, und alle Kommentarzeilen werden ignoriert. Ein Kommentar ist eine Zeile, die mit dem Zeichen # oder den Zeichen // beginnt.

Die Ausgabe wird an stdout gesendet und gibt den Status VULNERABLE, SAFE oder UNKNOWN an. Es kann zusätzliche Gründe für jeden geben. Diese Gründe werden oben beschrieben.

root@kitploit:~
211.101.37.250 - SAFE - CredSSP/NLA required
185.11.124.79 - SAFE - not RDP - SSH response seen
125.121.137.42 - UNKNOWN - no connection - refused (RST)
40.117.191.215 - SAFE - CredSSP/NLA required
121.204.186.182 - SAFE - CredSSP/NLA required
99.8.11.148 - SAFE - CredSSP/NLA required
121.204.186.114 - SAFE - CredSSP/NLA required
49.50.145.236 - SAFE - CredSSP/NLA required
106.12.74.155 - VULNERABLE - got appid
222.84.253.26 - SAFE - CredSSP/NLA required
144.35.133.109 - UNKNOWN - RDP protocol error - receive timeout
199.212.226.196 - UNKNOWN - RDP protocol error - receive timeout
183.134.58.152 - UNKNOWN - no connection - refused (RST)
83.162.246.149 - VULNERABLE - got appid

Sie können dies mit zusätzlichen Unix-Befehlen wie grep und cut verarbeiten. Um eine Liste nur der anfälligen Maschinen zu erhalten:

root@kitploit:~
./rdpscan 10.0.0.0/8 | grep 'VULN' | cut -f1 -d'-'

Der Parameter -dddd steht für Diagnoseinformationen, wobei je mehr ds Sie hinzufügen, desto mehr Details werden gedruckt. Dies wird an stderr anstelle von stdout gesendet, sodass Sie die Streams trennen können. Mit bash wird dies wie folgt gemacht:

root@kitploit:~
./rdpscan --file myips.txt -ddd 2> diag.txt 1> results.txt

Diagnoseinformationen

Das Hinzufügen des Parameters -d gibt Diagnoseinformationen zu den Verbindungen an stderr aus.

root@kitploit:~
./rdpscan 62.15.34.157 -d

[+] [62.15.34.157]:3389 - connecting...
[+] [62.15.34.157]:3389 - connected from [10.1.10.133]:49211
[+] [62.15.34.157]:3389 - SSL connection
[+] [62.15.34.157]:3389 - version = v4.8
[+] [62.15.34.157]:3389 - Sending MS_T120 check packet
[-] [62.15.34.157]:3389 - Max sends reached, waiting...
62.15.34.157    - SAFE - Target appears patched

Unter macOS/Linux können Sie stdout und stderr wie üblich getrennt in verschiedene Dateien umleiten:

root@kitploit:~
./rdpscan --file ips.txt 2> diag.txt 1> results.txt

SOCKS5 und Tor lulz

Es enthält auch SOCKS5-Unterstützung:

root@kitploit:~
./rdpscan --file ips.txt --socks5 localhost --socks5port 9050

Es verschlechtert die Verbindungsprobleme, sodass Sie viel mehr "UNKNOWN"-Ergebnisse erhalten.

Tool herunterladen