Picadilly - DockerLabs
| OS | Dificultad | Creator |
|---|---|---|
| Linux | F谩cil | kaikoperez |
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:
443(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 -p80,443 -sCV 172.17.0.2 -oG targeted
Exploraci贸n Web
Al navegar en el puerto 80, encontramos un archivo backup.txt que contiene la siguiente informaci贸n encriptada:
/// The users mateo password is ////
----------- hdvbfuadcb ------------
"To solve this riddle, think of an ancient Roman emperor and his simple method of shifting letters."
////////////////////////////////////
Esto indica que el texto est谩 encriptado mediante el cifrado C茅sar (un m茅todo antiguo donde se desplazan letras en el alfabeto). Aplicando el cifrado C茅sar, descubrimos que la palabra encriptada hdvbfuadcb se traduce como easycrazy.
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
Observamos que el puerto 443 responde al nombre picadilly.lab, as铆 que a帽adimos este dominio en /etc/hosts y accedemos a esta p谩gina, donde encontramos una secci贸n de subida de archivos y una ruta uploads.php en el c贸digo fuente.
Intrusi贸n en la M谩quina
Aprovechamos la secci贸n de subida de archivos para cargar una reverseshell en PHP. ara esto, generamos una reverseshell desde Pentest Monkey, una herramienta popular para crear shells PHP que nos permiten obtener acceso remoto al servidor. La ruta de la reverseshell es la siguiente:
Reverseshell de Pentest Monkey
Pasos para Cargar la Reverseshell
- Preparar la Reverseshell: Configuramos la reverseshell en nuestro sistema..
- Subir el Archivo: Cargamos el archivo en la secci贸n de subida.
- Ejecutar la Reverseshell: Accedemos a la ruta de la reverseshell cargada para activar la conexi贸n.
En paralelo, escuchamos en nuestro sistema usando netcat:
nc -lvnp 4444
Luego, accedemos a la ruta de la p谩gina web donde hemos cargado la reverseshell:
Obtuvimos acceso inicial al servidor como www-data.
TTY ReverseShell
Iniciar una sesi贸n de shell interactiva
En nuestra shell b谩sica, ejecutamos el siguiente comando para forzar la creaci贸n de una sesi贸n de bash interactiva:
script /dev/null -c bash
Suspender la shell
Una vez que el comando anterior est谩 en ejecuci贸n, utilizamos
Control+Z
para suspender temporalmente nuestra shell.
Preparar nuestro terminal local:
Antes de volver a nuestra shell, configuramos nuestro terminal local:
stty raw -echo; fg
Resetear la configuraci贸n del terminal
Ahora que tenemos el control de la shell, la reseteamos para asegurar que se comporta correctamente:
reset
Configura el tipo de terminal:
xterm
export TERM=xterm
export SHELL=bash
Istrucion usuario www-data.
Como antes habiamos encontrado una contrae帽a llamada easycrazy vamos a ver si es de algun usuario del sistema. Para ello usaremos ls -l /home y vemos que el usuario es mateo.
Si accedemosa ese usuario vemos que la conexion se ha establecido con esa contrase帽a.
Escalada de privilegios
Al ejecutar sudo -l, notamos que spencer tiene permisos para ejecutar php como root.Utilizando GTFOBins sabemos c贸mo explotar estos binarios.
sudo /usr/bin/php -r "pcntl_exec('/bin/sh', ['-p']);"
Con este comando, obtuvimos acceso root.