miguel@home:~$

Psycho - DockerLabs

OS Dificultad Creator
Linux Fácil Luisillo_o

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

image

Exploración Web

Al navegar al puerto 80, encontramos una página sin información aparente:

image

Sin embargo, al inspeccionar el código fuente, notamos un mensaje de error al final.

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

Recordemos que la página nos devolvía un error. Durante el escaneo, vemos que el index es un archivo PHP, lo cual sugiere que tal vez esté tratando de llamar un recurso incorrectamente.

wfuzz -c -t 200 --hl 62 -w /usr/share/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -u "http://172.17.0.2/index.php?FUZZ=../../../../../../../etc/passwd"

image

Descubrimos que el parámetro vulnerable es secret.

image

Aquí aparecen dos usuarios, luisillo y vaxei. Con el puerto SSH activo, intentaremos obtener el archivo id_rsa de alguno de ellos.

Luisillo no tiene este archivo, pero vaxei sí lo tiene, así que lo usaremos para intentar acceder.

image

Pero el usuario vaxei si tiene. Asi que accederemos con el.

image

Intrusión como usuario vaxei

Copiamos el contenido del archivo id_rsa a nuestra máquina y ajustamos los permisos antes de conectarnos:

chmod 600 id_rsa
ssh -i id_rsa vaxei@172.17.0.2                      

Esto nos da acceso al sistema como el usuario vaxei.

image

Intrusion luisillo

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

sudo -u luisillo /usr/bin/perl -e 'exec "/bin/sh";'

Esto nos da acceso como luisillo.

Escalada de Privilegios

Al ejecutar sudo -l, notamos que luisillo tiene permisos para ejecutar python3 como root en /opt/paw.py.Utilizando GTFOBins sabemos cómo explotar estos binarios.

image

Analizando el script, vemos que podemos realizar un Library Hijacking al crear un archivo subprocess.py que ejecute comandos arbitrarios al ejecutar este script como sudo.

image

Ejecutamos nuevamente el script y verificamos los permisos en /bin/bash.

image

Observamos que ahora podemos abrir una shell de bash con privilegios de root:

/bin/bash -p

image

¡Ahora somos root!