Statue es una de las maquinas existentes actualmente en la plataforma de hacking Thehackerslabs y es de dificultad Principiante.
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.239
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
┌──(kali㉿kali)-[~] └─$ sudo nmap -sS -p- --open --min-rate 5000 -vvv -n 192.168.0.239 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-09-05 21:17 CEST Initiating ARP Ping Scan at 21:17 Scanning 192.168.0.239 [1 port] Completed ARP Ping Scan at 21:17, 0.06s elapsed (1 total hosts) Initiating SYN Stealth Scan at 21:17 Scanning 192.168.0.239 [65535 ports] Discovered open port 22/tcp on 192.168.0.239 Discovered open port 80/tcp on 192.168.0.239 Completed SYN Stealth Scan at 21:17, 4.92s elapsed (65535 total ports) Nmap scan report for 192.168.0.239 Host is up, received arp-response (0.00018s latency). Scanned at 2024-09-05 21:17:46 CEST for 5s 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:ED:CD:DC (Oracle VirtualBox virtual NIC) Read data files from: /usr/bin/../share/nmap Nmap done: 1 IP address (1 host up) scanned in 5.17 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 20 21 22 |
┌──(kali㉿kali)-[~] └─$ nmap -p80 -sCV 192.168.0.239 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-09-05 21:17 CEST Nmap scan report for statue.thl (192.168.0.239) Host is up (0.00041s latency). PORT STATE SERVICE VERSION 80/tcp open http Apache httpd 2.4.58 |_http-server-header: Apache/2.4.58 (Ubuntu) | http-title: rodgar - rodgar |_Requested resource was http://statue.thl/?file=rodgar | http-robots.txt: 2 disallowed entries |_/data/ /docs/ | http-cookie-flags: | /: | PHPSESSID: |_ httponly flag not set |_http-generator: pluck 4.7.18 Service Info: Host: statue.lan Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 6.77 seconds |
Como el único puerto interesante es el 80, accedemos por navegador, pero solo no muestra un index vacío.

Así que probamos virtualhost, es decir, añadimos statue.thl al archivo /etc/hosts y ya vemos una web la cual tiene un cms llamado pluck.

Leyendo información sobre pluck, podemos ver su versión en el recurso login.php

Tras no ver nada más, y todos los exploits necesitan de la password , la cual se bloquea cada 5 minutos, no vamos a poder usar fuerza bruta.

Buscamos con feroxbuster mas directorios o ficheros que nos puedan ayudar para avanzar.
|
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 41 42 43 44 45 46 47 48 |
┌──(kali㉿kali)-[~] └─$ feroxbuster --url http://statue.thl -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x md,php,txt ___ ___ __ __ __ __ __ ___ |__ |__ |__) |__) | / ` / \ \_/ | | \ |__ | |___ | \ | \ | \__, \__/ / \ | |__/ |___ by Ben "epi" Risher 🤓 ver: 2.10.3 ───────────────────────────┬────────────────────── 🎯 Target Url │ http://statue.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.10.3 💉 Config File │ /etc/feroxbuster/ferox-config.toml 🔎 Extract Links │ true 💲 Extensions │ [md, php, txt] 🏁 HTTP methods │ [GET] 🔃 Recursion Depth │ 4 🎉 New Version Available │ https://github.com/epi052/feroxbuster/releases/latest ───────────────────────────┴────────────────────── 🏁 Press [ENTER] to use the Scan Management Menu™ ────────────────────────────────────────────────── 403 GET 9l 28w 275c Auto-filtering found 404-like response and created new filter; toggle off with --dont-filter 404 GET 9l 31w 272c Auto-filtering found 404-like response and created new filter; toggle off with --dont-filter 200 GET 41l 266w 1811c http://statue.thl/docs/README 200 GET 676l 5644w 35068c http://statue.thl/docs/COPYING 200 GET 1l 10w 86c http://statue.thl/docs/UPDATING 200 GET 182l 1236w 8535c http://statue.thl/docs/CHANGES 200 GET 2l 26w 149c http://statue.thl/docs/update.php 301 GET 9l 28w 307c http://statue.thl/data => http://statue.thl/data/ 302 GET 0l 0w 0c http://statue.thl/ => http://statue.thl/?file=rodgar 301 GET 9l 28w 309c http://statue.thl/images => http://statue.thl/images/ 301 GET 9l 28w 312c http://statue.thl/templates => http://statue.thl/templates/ 200 GET 10l 32w 251c http://statue.thl/data/themes/oldstyle/info.php 200 GET 258l 442w 3494c http://statue.thl/data/themes/oldstyle/style.css 200 GET 35l 96w 1001c http://statue.thl/data/themes/oldstyle/theme.php 301 GET 9l 28w 315c http://statue.thl/data/modules => http://statue.thl/data/modules/ 301 GET 9l 28w 307c http://statue.thl/docs => http://statue.thl/docs/ 200 GET 1l 2w 14c http://statue.thl/data/modules/multitheme/multitheme.php 200 GET 1l 2w 14c http://statue.thl/data/modules/contactform/contactform.site.php 500 GET 16l 77w 613c http://statue.thl/files 200 GET 5l 18w 1136c http://statue.thl/data/image/edit.png 200 GET 5l 35w 2068c http://statue.thl/data/image/up.png 200 GET 1l 12w 16118c http://statue.thl/data/image/favicon.ico 301 GET 9l 28w 310c http://statue.thl/plugins => http://statue.thl/plugins/ 200 GET 106l 330w 3742c http://statue.thl/install.php 200 GET 38l 38w 2922c http://statue.thl/README.md |
Nos encontramos con un archivo README.txt con el siguiente contenido
|
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)-[~] └─$ curl http://statue.thl/README.md Vm0wd2QyUXlVWGxWV0d4V1YwZDRWMVl3WkRSV01WbDNXa1JTVjAxV2JETlhhMUpUVjBaS2RHVkdX bFpOYWtFeFZtcEJlRll5U2tWVQpiR2hvVFdzd2VGWnRjRXRUTVU1SVZtdFdVZ3BpVlZwWVZtMTRj MDB4V25SalJVcHNVbXhzTlZVeWRGZFdVWEJwVWpKb2RsWkdXbGRrCk1WcFhWMjVHVW1KVldsVlVW M2hMVTFaYWRHUkhkRmhSV0VKd1ZXMDFRMVZHWkZkYVJFSlRDbUpXV2toV01qVlRZV3hLV1ZWc1Zs VlcKYkZwNlZHeGFWbVZYVWtkYVJtUldWMFZLZDFaWGNFdGlNbEp6VjJ0a1dHSkhVbkpEYXpGWFkw Wm9WMDFxVmxSWlYzaExWMFpXYzFacwpWbGNLVFRBME1GWkhlR0ZXYlZaWVZXdGtZVkp0VWxkV01G WkxaREZhV0dORmRHbE5iRXA2VmpKMGExbFdUa2xSYmtwRVlYcEdlbFl5CmRHOVhSMFY0WTBoS1dG WnNjRXhWYWtaUFpFWktjd3BhUjJkTFdWUkNXazFHV2toa1IwWm9UV3MxTUZWdGRHRlpWa3B6WTBk b1ZWWkYKU2t4YVJFWmhWMFV4VlZWdGRFNVdNVXBaVmpKMFlXSXlTa2RUYms1cVUwVndSVmxZY0Vk bGJGbDVDbVJIT1ZoU01GWTBXVEJvUzFkRwpXbk5qUlhoV1lXdGFVRmw2Um1GamQzQlhZa2RPVEZa R1VrSk5SVEZIVjJ0b2ExSXdXbTlVVjNNeFRVWldkR1JIZEZwV2EydzFXVlZhClQxWXdNVWNLVjJ0 NFYySkdjSEpXTUdSWFUwWktjMVZyTlZkaWEwcGFWbTF3UzAxSFJYaFhibEpUVjBkNFYxbHJXbUZT Vm14WlkwVmsKV0ZKc2JEVkRiVlpJVDFab1UwMUdXVEJYVkVKdlV6RmtSd3BYYms1cVVsaG9WMWxY ZEdGVlJtdzJVbTFHYW1RelFsaFphMlJQVkVaYQpSMVZyU2s1U1ZFWklWakowYjJFeFNYZFhiVVpY WWxoTmVGVnFSbE5qTVdSMFVteGFVMkpIZHpGWFZsWmhDbUV4V1hkTlZXTkxWakowCk5GWXlTa2Rq U0VwWFRVWldORlpzV2tkak1WWnlUbFprYVZORlNrdFdiVEYzVXpBMVNGTllhRlppYXpWWldWUktV MVpXYkhSa1NHUlQKVm0xNFdsa3dWbXNLWWtkS1IySkVWa1JpVmxwSlZERmFiMVV3TVVkWFZFSllW a1ZLZGxWNlJscGxVWEJVWWtaYVZGbFVTbE5oUmxaeQpWbTVrVmxKc1ZqUldNbmhQWVcxUmVsRnNi RnBpUjFGM1ZrVmFZUXBrUjFKSFdrWndWMkpJUWxsV2FrbzBWakZWZVZOc1dsaGlWVnBZCldXeFNS MVpHVlhoWGJVWlVVakZLU1ZReFdtRlViVVY2VVd0d1YySkhVVEJEYkZGNFYxaGtUbFpYVGt4V2Fr b3dDazVHYkZkVGExcFkKWWxkb1dGUlZXbGRPUmxaelYydDBhazFWTlhsVWJGcHJZVlpPUmxOcmRG ZGlWRVl6VlRKemVGWXhXbGxoUmxwcFlYcFdXbGRXVWtkawpNVnBYWWtoU2ExTkhVbFFLVm0weE5G ZHNhM2RXYlhOTFZqQmFTMlJIVWtWVWExSnBVakZKZDFaRVJtRmhNVkp6VTJ0YVdHRnNTbGhaCmJG SkdUVVphVlZKdGRHcGtNMEpaV1ZSR2QxZFdiRlZVYkU1b1VteHdlQXBXUnpBMVYwWktkR1I2U2xa aVZGWnlWbFJLVW1Wc1JuVlMKYkZwb1lUSTVNMVpyVm1GWlVYQllVbFJHUmxWdGVFdFViVVY1Wkhw Q1YyRnJhM2hXVkVwSFl6Rk9jMkZHV21sU01VcG9DbGRYZEdGawpNa1pIVmxoa1dHSklRbk5XYkZK WFZqRlJlRmR1WkZkTmExWTFXa2h3UjFkR1duTlhiV2hFWWxWV05GWXhhR3RVYkZwWVZHdDRWMkZy CmIzZERhelZIVjFoc1ZHRXlVbkVLVldwS2IyRkdWbk5YYkdSUFVteHdlbFl5ZEd0aE1VbDRVMnRr VldKSFVuWldSekZMWkVaU2NWUnMKWkdsWFJVcE5Wa1pXYTFOdFZrZFdiR3hvVWpKNFZGbHNXa3RX TVdSWFZXdDBhUXBOVm13MFdXdG9TMVl4V2taWGJGRkxWbTB3ZUU1SApWbk5YYmxKc1UwZE9URlpy WTNoVE1VbDVWR3RXVW1FeFNuQldiWGgzVTJ4YVJWSnRSbWhOYTFwWVZqSjRjMVZ0UlhwUmJHeFhD bUpZCmFHaGFSM2gzVWxaS2MyTkhkR3ROTUVwUVZtcENWMWxXV2tkaVNFcGhVbnBzYjFWdGVHRmxa M0JZWVRGd1VGWXdXa3RqTVdSMVlVWmEKYVZkRk1IaFhWbU40VlcxV2MxSnVVbWdLVW14d2NGWnJW bUZWVmxweVZtMUdhR1F6UWxsVmFrWmhVMFpaZVUxVVFsVmlWWEJIVmpGUwpRMVl5Um5KaU0yUlhZ V3RhVjFwV1drOWpiVVpIVjIxc1UySnJTbGhEYkZwMFkwVTVWZ3BOUkVJMFdUQmFiMkpHU25SVmJH eFdZV3RhCmFGVXdXbXRqYkdSeldrZG9WMkV6UW1GV1ZtTjRVakZaZVZKWWJGWlhSMUpGV1Zod1Yx TkdWWGxrUjNSb1lrVndTRmxyVmpSV01VcHoKQ2xkc1VrUmlWVEUwVlRKMGEyRnNTa2RqUlRoTFZs ZDBhMDVHU2xkYVNGWnBUVEpTVVZac1ZURmtWbFpIVlZoa1ZHUXlPRGxEWnowOQpDZz09Cg== |
Dado que vemos que se trata de un base64 y parece estar codificado varias veces, usaremos un script.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
┌──(kali㉿kali)-[~] └─$ cat statue.sh #!/bin/bash hash=$(curl -s http://statue.thl/README.md) while true; do new_hash=$(echo "$hash" | base64 -d 2>/dev/null) if [ $? -ne 0 ]; then echo "$hash" break fi hash=$new_hash done |
Lo cual al ejecutar nos da la siguiente palabra.
|
1 2 3 |
┌──(kali㉿kali)-[~] └─$ bash statue.sh fideicomiso |
Usaremos la palabra para intentar logearnos en pluck.

Ahora habiendo visto el exploit, se trata de subir un php el cual esta comprimido en un zip.
|
1 2 3 |
┌──(kali㉿kali)-[~] └─$ zip lol.zip lol.phar adding: lol.phar (stored 0%) |
Subimos el archivo.

Seleccionamos el fichero y le damos a upload.

Ahora solo nos queda ir a la ubicación de los módulos instalados y ver que efectivamente el archivo phar se ha subido

Para ver que es correcto, ejecutaremos un id y deberíamos de ver el usuario www-data

Llegamos hasta aqui, ya por fin nos enviamos una reverse shell

Una vez en la maquina, miramos que binarios con SUID tenemos a nuestra disposición
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
www-data@TheHackersLabs-Statue:/home$ find / -perm /4000 -type f 2> /dev/null /usr/lib/openssh/ssh-keysign /usr/lib/dbus-1.0/dbus-daemon-launch-helper /usr/lib/snapd/snap-confine /usr/lib/polkit-1/polkit-agent-helper-1 /usr/bin/umount /usr/bin/gpasswd /usr/bin/python3.12 /usr/bin/chfn /usr/bin/su /usr/bin/passwd /usr/bin/sudo /usr/bin/chsh /usr/bin/mount /usr/bin/fusermount3 /usr/bin/newgrp |
Vemos que tenemos el binario python así que comprobándolo con gtfobins, vemos que podemos escalar a root directamente del mismo modo que con www-data.

Y somos root!
Hasta aquí la maquina Statue de la plataforma Thehackerslabs










Buenas tardes byte mind,
En todas las resoluciones que he visto de esta máquina, os sacáis de la manga el nombre del dominio de virtual hosting («statue.thl»).
Eso no aparece en ningún escaneo ni dato de la máquina, por lo que a no ser que haya alguna norma dentro de TheHackersLabs que diga que los nombres de maquinas serán «denominaciónmaquinaenweb.thl», no habría forma de saberlo y no podríamos resolver la máquina.
Con NMAP, a menos que modifiques el fichero hots primero, no te relacionará la dirección IP con el dominio y, por tanto, no te dará info detallada de ese dominio.
Dime por favor si estoy equivocado, o de donde sacas que el dominio virtual es «statue.thl»
Muchas gracias.
B4surill4
Todas las plataformas tienen un sufijo predeterminado, en este caso de thl y si, por norma general se suele poner nombredelamaquina.thl.
Un saludo.