Swamp

Difficulty: Easy

Recon

  1. Empezamos haciendo un reconocimiento de red para identificar el host de la máquina víctima:

sudo nmap -sn 192.168.56.0/24
  • Host identificados:

    • 192.168.56.1

    • 192.168.56.100

    • 192.168.56.102 (objetivo)

    • 192.168.56.101 (nuestra Kali atacante)

  1. Le realizamos un escaneo con nmap:

  • Desglose del comando:

    • -sC: Ejecuta los scripts por defecto de nmap (NSE, Nmap Scripting Engine), orientados a información básica y detección de vulnerabilidades comunes.

    • -sV: Detecta la versión de los servicios que corren en los puertos abiertos.

    • -p-: Escanea todos los puertos TCP posibles (del 1 al 65535), no solo los más comunes.

    • --open: Muestra únicamente los puertos que están abiertos, ocultando los cerrados/filtrados.

    • -T5: Usa la “máxima velocidad” en el escaneo, reduciendo los tiempos de espera entre pruebas. Es el nivel más agresivo y puede generar más tráfico en la red.

  • Puertos identificados:

    • 22/tcp

    • 53/tcp

    • 80/tcp

  1. El puerto 80 abierto nos indica que hay un sitio web, hay un redirect hacia el dominio swamp.nyx. Lo añadiremos al archivo /etc/hosts de nuestra máquina atacante:

  1. Comprobamos accediendo desde el navegador de la máquina atacante:

DNS Zone Transfer

  1. Con este tipo de ataque vamos a intentar obtener información del dominio DNS (por ejemplo, subdominios)

  1. Descubrimos múltiples subdominios, los añadiremos al archivo /etc/hosts:

  • Vemos que los subdominios hacen referencia a la película de Shrek (la ciénaga, el asno, fiona, etc). Podemos entrar en los subdominios añadidos.

  1. Visitamos farfaraway.swamp.nyx desde el navegador:

  1. Inspeccionamos el código fuente de la página y vemos que se importa el archivo script.js:

  1. Analizamos el código del archivo en el Debugger y localizamos el siguiente string codificado:

  1. Parece estar codificado en base64, vamos a hacer un decode:

  • Obtenemos las credenciales shrek:putopesaoelasno

  1. Anteriormente, hemos identificado que el puerto 22/tcp está abierto, es el puerto que se utiliza para el servicio SSH, vamos a intentar acceder con las credenciales que hemos obtenido.

Privilege Escalation

  1. Hemos obtenido acceso con el usuario shrek al sistema objetivo, vamos a probar si podemos ejecutar como root.

  • Se identifica que se puede ejecutar el binario header_checker.

  1. Revisamos que necesita header_checker para ejecutarse:

  1. Probaremos a ver que es lo que hace header_checker:

  • Lo que está haciendo header_checker es un curl.

  1. Probaremos a inyectar un comando justo después de utilizar el binario para ver si se ejecuta:

  • Ejecutamos el comando como root, por lo que podríamos inyectar comandos que se ejecuten como root en el sistema objetivo.

  1. Ponemos otra consola en nuestra máquina atacante a la escucha:

  1. Desde el terminal con la sesión SSH shrek@swamp ejecutamos el comando para recibir la conexión en la máquina atacante:

  1. Podemos ejecutar comandos en el sistema objetivo:

  • Mostramos el contenido de user.txt que es una de las flags.

  1. Buscamos y mostramos la flag root.txt que sería la otra que nos quedaría:

Última actualización