Devel
IIS con FTP anónimo de escritura sobre el webroot: webshell ASPX para entrar y escalada a SYSTEM por MS15-051 en un Windows 7 sin parches.
Devel
| Máquina | SO | Dificultad | IP |
|---|---|---|---|
| Devel | Windows | Easy | 10.10.10.5 |
A tener en cuenta...
Resumen
Devel es una cadena muy instructiva de Windows: un FTP anónimo que, para colmo, escribe en el mismo directorio que sirve el IIS. Subes una webshell ASPX, el servidor te la ejecuta y ya tienes un pie dentro como el usuario del pool de IIS. A partir de ahí, un Windows 7 sin parches se escala con una vulnerabilidad del kernel hasta SYSTEM.
Vulnerabilidad
FTP anónimo con escritura sobre el webroot
El servidor FTP permite login anónimo y, lo grave, su directorio raíz es el mismo que publica el IIS (C:\inetpub\wwwroot). Es decir, cualquiera puede subir ficheros a la web. Si subimos un .aspx, el IIS lo interpreta y ejecuta nuestro código con la identidad del application pool.
MS15-051 — CVE-2015-1701 (Alta · 7.0)
Es un fallo en el driver win32k.sys que permite a un proceso sin privilegios robar el token de un proceso SYSTEM. En un Windows 7 sin parchear se dispara con un binario precompilado y sube al máximo privilegio.
Reconocimiento
Escaneo completo de puertos
| Puerto | Servicio | Versión |
| 21 | ftp | Microsoft ftpd |
| 80 | http | Microsoft IIS httpd 7.5 |
Un FTP de Microsoft y un IIS 7.5. La combinación FTP + servidor web es sospechosa: si el FTP escribe donde el IIS lee, tenemos ejecución.
Enumeración
Pruebo el login anónimo en el FTP
Ahí están iisstart.htm y welcome.png: son exactamente los ficheros que sirve el IIS por defecto. Confirmado, el FTP escribe en el webroot. Subiendo un ASPX y pidiéndolo por el navegador, se ejecuta.
Explotación
Paso 1 — generar la webshell. Creo una reverse shell en ASPX con msfvenom
Paso 2 — subirla por FTP en modo binario
Paso 3 — disparar. Me pongo en escucha y pido la shell desde el navegador (http://devel/shell.aspx). El IIS la ejecuta y devuelve la sesión como el usuario del pool
Escalada de privilegios
Soy un usuario muy limitado, así que toca post-explotación.
Paso 1 — nivel de parches. Saco la info del sistema
Un Windows 7 sin ningún hotfix: terreno abonado para un exploit de kernel.
Paso 2 — elegir el exploit. Paso el systeminfo por un suggester (o Sherlock en local) y me recomienda MS15-051.
Paso 3 — ejecutar. Subo el binario precompilado y lo lanzo indicándole el comando a ejecutar como SYSTEM (por ejemplo, un nc.exe de vuelta)
Soy SYSTEM. (Con Metasploit, el atajo es local_exploit_suggester y el módulo ms15_051.)
Flags
La de usuario, en el escritorio de babis
Y la de root, en el de Administrator
Cómo se arregla
- Cerrar el FTP anónimo: jamás permitir escritura anónima, y menos sobre el directorio que publica el servidor web. Separar por completo el almacenamiento FTP del webroot.
- Restringir la ejecución en subidas: las carpetas donde se suben ficheros no deben permitir ejecutar scripts del servidor (ASPX, etc.).
- Aplicar MS15-051 y parchear: mantener Windows Update al día elimina la escalada por el kernel.
- Menor privilegio: aislar el application pool y limitar lo que puede hacer la cuenta de IIS.
Conclusiones
Devel enseña dos clásicos encadenados: una mala configuración (FTP anónimo escribiendo en el webroot) que da el acceso inicial, y una falta de parches que regala la escalada.
El flujo systeminfo → suggester → exploit de kernel es oro en Windows antiguos: cuando ves Hotfix(s): N/A, la escalada suele estar a un binario de distancia.