
Scanning nach Remote Desktop Gateways (potenziell ungepatchte CVE-2020-0609 und CVE-2020-0610)
Der Scanner hat 2 Betriebsmodi:
Verwendet den Vulnerability-Scan-Code von https://github.com/MalwareTech/RDGScanner
Das Scannen nach Speicherkorruptions-Schwachstellen ist gefährlich und kann Systeme potenziell zum Absturz bringen. Obwohl dieses Tool darauf ausgelegt ist, einen Absturz zu vermeiden, kann die Stabilität nicht zu 100 % garantiert werden. Nutzung auf eigene Gefahr und nur Systeme scannen, für die du eine Testberechtigung hast.
Der Scanner ist multithreaded und kann Dateien mit CIDR-Netzmasken parsen. Für größere Netzwerke solltest du jedoch möglicherweise nmap verwenden, um offene UDP-3391-Ports zu finden, bevor du sie auf Schwachstellen scanst. Das funktioniert derzeit nicht ohne Weiteres. Du musst 3391 zum DTLS-Abschnitt in nmap-payloads hinzufügen (normalerweise unter /usr/share/nmap, PR ist unterwegs) und dann z. B. scannen:
nmap -Pn -p 3391 -sU -oA rdg_scan_yyyymmdd 10.0.0.0/24 (Benötigt Root-Rechte)
Der Standard-Port für den Vulnerability-Scan ist UDP 3391, änderbar mit --port.
Nicht alle RD-Gateways haben UDP 3391 aktiv oder sind in der Firewall exponiert, wahrscheinlich weil es auch nur mit HTTPS funktioniert und sich die Administratoren nicht die Mühe gemacht haben, die Dokumentation zu lesen. Wenn du diese RD-Gateways ebenfalls finden möchtest, verwende den Webcheck (Vielleicht hast du Angst vor einem Server mit ungepatchtem CVE-2020-0609 und die Betreiber öffnen UDP 3391 in 6 Monaten wegen der "besseren Leistung über Hochlatenznetzwerke".)
Zum Scannen über HTTPS verwende den Parameter --webcheck oder -w Der Standard-Port für den Webcheck ist TCP 443, änderbar mit --port.
Beachte, dass z. B. ein aktuelles Debian/Kali Standard-OpenSSL-Einstellungen hat, die jedes Programm, einschließlich Python, curl, ... daran hindern, Verbindungen zu unsicheren SSL-Implementierungen herzustellen, einschließlich allem, was unterhalb von TLSv1.2 liegt. Das ist für das Online-Banking sinnvoll, aber nicht für Vulnerability-Scans, bei denen du auch den alten Host finden möchtest, der immer noch SSLv3 verwendet. Ich habe keine bessere Lösung gefunden, als dies in /etc/ssl/openssl.cnf zu ändern. Finde/füge den Abschnitt [system_default_sect] ein und ändere ihn in:
[system_default_sect]
MinProtocol = SSLv3
CipherString = DEFAULT@SECLEVEL=1
Denk daran, es für sensible Dinge zurückzuändern! Wenn du eine Lösung kennst, die diese Einstellungen nur für ein Python-Skript ändert, lass es mich bitte wissen ;)
SSL-Fehler, die während des Scans auftreten, könnten von IPS-Systemen stammen.
Der Scanner kann Folgendes parsen:
Example: python3 rdg_scanner_cve-2020-0609.py 192.168.1.1/24 # vuln scan for cve-2020-0609 on UDP 3391
Example2 python3 rdg_scanner_cve-2020-0609.py 192.168.1.1/24 --webcheck # check webpage for RD gateway
Example3: python3 rdg_scanner_cve-2020-0609.py 192.168.1.1
Example4: python3 rdg_scanner_cve-2020-0609.py fakewebsiteaddress.com
Example5: python3 rdg_scanner_cve-2020-0609.py as15169
Example6: python3 rdg_scanner_cve-2020-0609.py file:hostfile.txt
usage: rdg_scanner_cve-2020-0609.py [-h] [--port PORT] [--webcheck]
[--verbose]
target
No installation required.
Debian/Kali needs: apt-get install python3-netaddr
TODO: