
Ein Proof-of-Concept-Scanner zur Überprüfung eines RDG-Gateway-Servers auf die Schwachstellen CVE-2020-0609 und CVE-2020-0610.
Ein Proof-of-Concept-Scanner zur Überprüfung eines RDP-Gateway-Servers auf die Schwachstellen CVE-2020-0609 & CVE-2020-0610.
Das Scannen auf Speicherkorruptions-Schwachstellen ist gefährlich und kann Systeme potenziell zum Absturz bringen. Obwohl dieses Tool so entwickelt wurde, dass es einen Absturz vermeidet, kann die Stabilität nicht zu 100% garantiert werden. Verwendung auf eigenes Risiko und nur bei Systemen, für die Sie eine Berechtigung zum Testen haben.
python3 RDGScanner.py <ip> <port>
Um die Schwachstellen zu verstehen, können Sie meinen Artikel hier lesen: https://www.kryptoslogic.com/blog/2020/01/rdp-to-rce-when-fragmentation-goes-wrong/
Die CONNECT_PKT_FRAGMENT-Nachricht ermöglicht es, eine Verbindungsnachricht über mehrere Pakete zu fragmentieren. Jedes Paket enthält ein Feld, das die Position des Pakets in der Sequenz (fragment_id) sowie die Gesamtzahl der Pakete in der Sequenz (num_fragments) angibt.
CVE-2020-0610 ist eine OOB-Schreib-Schwachstelle, die auftritt, wenn fragment_id größer als 64 ist. Um die Schwachstelle zu entschärfen, wurden Prüfungen hinzugefügt, die fehlschlagen, wenn entweder fragment_id oder num_packets größer als 64 ist.
Indem wir num_fragments (aber nicht fragment_id) auf einen Wert größer als 64 setzen, lassen wir die Sicherheitsprüfung fehlschlagen, ohne das Ausnutzen des Fehlers zu riskieren. Bei einem gepatchten System werden wir mit einem Fehlercode von 0x8000ffff getrennt, während bei einem ungepatchten System nichts passiert.