miguel@home:~$

DockerLabs - DockerLabs

OS Dificultad Creator
Linux Fácil ElPinguinoDeMario

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.

image

Durante el escaneo, descubrimos que los siguientes puertos están activos:

  • 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-sCV 172.17.0.2 -oG targeted

image

Exploración Web

Accedemos a la máquina y no vemos nada interesante a primera vista.

image

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.
  • -w Especifica que diccionario queremos usar
  • -x Para indicar que tipo de extension queremos que nos encuentre

image

Encontramos varios directorios interesantes. Entramos en machines.php, donde podemos subir archivos. En lugar de subir máquinas, subimos una reverse shell en PHP.

image

Reverse Shell

Generamos la reverseshell utilizando 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

image

Sin embargo, solo permite archivos .zip. Tras investigar, descubrimos que acepta archivos .phar.

image

Subimos el archivo .phar, que no está restringido, y accedemos a la reverse shell en la ruta /uploads/.

image

La pagina no restringe la entrada de archivos .phar.

image

Escuchamos en el puerto definido en el shell.

image

nc lvnp 4444

Accedemos al archivo shell.phar desde la web, y ya estamos dentro.

image

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

#Intrucion Al ejecutar sudo -l, vemos que podemos ejecutar cut y grep como root. Si no sabemos cómo aprovechar esto, podemos recurrir a GTFOBins.

image

Al explorar el directorio opt, encontramos un archivo nota.txt.

image

La nota menciona que la clave de root está en /root/clave.txt. Podemos utilizar grep y cut para leer el contenido de ese archivo.

Con grep:

LFILE=/root/clave.txt
sudo grep '' $LFILE

image

Obtenemos la clave.

Con cut :

LFILE=/root/clave.txt
sudo cut -d "" -f1 "$LFILE"

image

Probamos la clave y ya somos root.

image