
Ein Versuch, den BlueKeep-PoC von @Ekultek auf tatsächliche Exploits zu portieren
Dieses Projekt wurde archiviert, da anderswo tatsächliche Exploits mit größerem Erfolg entwickelt wurden.
https://blog.rapid7.com/2019/09/06/initial-metasploit-exploit-module-for-bluekeep-cve-2019-0708/
bluekeep_CVE-2019-0708_poc_to_exploit
Bitte lies die Issues durch (sowohl geschlossen als auch offen), bevor du Dinge postest wie „Es funktioniert nicht“, „Nachdem ich das Skript ausgeführt habe, ist nichts passiert“ oder „Fehler (ohne genauere Angabe), hilf mir bitte“.
============================================================================
============================================================================
============================================================================ Dies sind keine Standard-Exploits, die man einfach nehmen und ausprobieren kann.
Darüber hinaus sind auch die Zustellungsmethoden wichtig, um sicherzustellen, dass dein Code auf der entfernten Maschine ausgeführt wird.
Bisher sind wir noch nicht in der Lage gewesen, erfolgreich eine Shell zu öffnen und RCE zu erreichen.
Die meisten Scanner und PoCs da draußen funktionieren, indem sie lediglich die Antworten der Zielhosts analysieren und feststellen, ob die Hosts anfällig sind oder nicht. (Wie ihr alle wissen solltet, geben gepatchte und ungepatchte Versionen unterschiedliche Antworten, ebenso wie nicht betroffene Betriebssysteme.) Sie nutzen die Zielhosts nicht tatsächlich aus. Um RCE zu erreichen, sollten wir zuerst versuchen, die Schwachstelle durch Senden speziell gestalteter Pakete auszulösen (siehe RDP MSDN für Protokollspezifikationen). Nachdem die Schwachstelle ausgelöst wurde, besteht der zweite Schritt darin, die abgestürzten Speicherabbilder zu analysieren, um herauszufinden, wie unser Code eingefügt werden kann. Es ist nicht so einfach, wie die meisten von uns denken.
Einige nützliche Ressourcen:
Du kannst das Magic Unicorn von @trustedsec zur Generierung von Shellcodes verwenden. https://github.com/trustedsec/unicorn
Hinweis: Bitte verwende Python 3
Der RDP-Client initiiert die Verbindung, wenn der Benutzer den Namen des entfernten Desktops angibt, mit dem eine Verbindung hergestellt werden soll. Der RDP-Client initiiert eine Verbindung zum RD-Sitzungshost, indem er eine X.224 Connection Request Protocol Data Unit (PDU) sendet.
Der RD-Sitzungshost antwortet mit einer X.224 Connection Confirm PDU.
Der RDP-Client sendet eine Multipoint Communication Service (MCS) Connect Initial PDU mit einer GCC Conference Create Request. --> Die Schwachstelle hängt mit dieser Anfrage zusammen.
Der RD-Sitzungshost antwortet mit einer MCS Connect Response PDU mit GCC Conference Create Response.
Der RDP-Client sendet eine MCS Erect Domain Request PDU.
Der RDP-Client sendet eine MCS Attach User Request PDU.
Der RD-Sitzungshost antwortet mit einer MCS Attach User Confirm PDU.
Der RDP-Client sendet mehrere (in diesem Fall sechs) MCS Channel Join Request PDUs.
Der RD-Sitzungshost sendet mehrere (in diesem Fall sechs) MCS Channel Join Confirm PDUs.
Der RDP-Client sendet eine Security Exchange PDU.
Der RDP-Client sendet eine Client Info PDU.
Der RD-Sitzungshost sendet eine License Error PDU-Valid Client.
Der RD-Sitzungshost sendet eine Demand Active PDU.
Der RDP-Client antwortet mit einer Confirm Active PDU.
Der RDP-Client sendet eine Synchronize PDU.
Der RDP-Client sendet eine Control PDU-Cooperate.
Der RDP-Client sendet eine Control PDU-Request Control.
Der RDP-Client sendet null oder mehr Persistent Key List PDUs. In diesem Fall werden null PDUs gesendet.
Der RDP-Client sendet eine Font List PDU.
Der RD-Sitzungshost sendet eine Synchronize PDU.
Der RD-Sitzungshost sendet eine Control PDU-Cooperate.
Der RD-Sitzungshost sendet eine Control PDU-Granted Control.
Der RD-Sitzungshost sendet eine Font Map PDU..