Base
| Sistema operativo | Dificultad | Fecha de Lanzamiento | Creador |
|---|---|---|---|
| Linux | Principiante | 13 Setiembre 2024 | rodgar |
Reconocimiento
Lanzamos una traza ICMP a la máquina objetivo para comprobar que tengamos conectividad.

Enumeración inicial
Realizamos un escaneo con nmap para descubrir que puertos TCP se encuentran abiertos en la máquina víctima.
nmap -sS -p- --open --min-rate 5000 -Pn -n <IP> -oG open_ports -vvv

Lanzamos una serie de script básicos de enumeración propios de nmap, para conocer la versión y servicio que esta corriendo bajo los puertos.
nmap -sCV -p <IP> -oN services_scan -vvv

Explotación inicial
Puerto 80


Puerto 8080

Vemos que al ingresar un texto en la campo de búsqueda y darl buscar se envía un parámetro query en la url con nuestro valor. Podemos probar si es vulnerable a SQLInjection.


Efectivamente, es vulnerable a SQL Inection. Logramos leer los registros de varios usuarios.
Teniendo en cuenta la cantidad de campos que devuelve la base de datos, podemos recavar más información.



Cargamos el archivo /etc/passwd

Podemos buscar claves SSH pero no encontramos ninguna.
Lo que podemos hacer, es realizar fuerza bruta al protocolo SSH con hydra para ver si logramos encontrar la contraseña.

pedro:secret
Genial, tenemos las credenciales de pedro.

Leemos la flag user.txt.



Enumeración / Movimiento lateral
Si miramos los grupos del usuario pedro, vemos que pertence al grupo adm el cual puede leer archivos de log.


Mirando los archivos de log, encontramos la contraseña del usuario flate, por lo que nos movemos a este usuario.
Si nos fijamos en la carpeta “/home/” veremos que hay un usuario llamado “flate”, por lo que podriamos leer algunos logs pero filtrando por la palabra “flate”:
grep "flate" /var/log/.....
luego de leer algunos, vemos esto en /var/log/apache2/access.log.1:
203.0.113.56 - flate [12/Sep/2024:12:03:55 +0000] "POST /login HTTP/1.1" 401 4812 "http://example.com/login" "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" "username=flate&password=HPAbcmOgSjidaoWkXUQjw"
Ahora que tenemos la contraseña de “flate”, escalaremos nuevamente con su flate y su contraseña.
flate:HPAbcmOgSjidaoWkXUQjw
Elevación de privilegios
Si ejecutamos sudo -l para ver si podemos ejecutar algo como root, veremos lo siguiente:
Matching Defaults entries for flate on TheHackersLabs-Base:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin, use_pty
User flate may run the following commands on TheHackersLabs-Base:
(root) NOPASSWD: /usr/bin/awk
Por lo que si buscamos en GTFObins veremos que podemos escalar con awk si ejecutamos esto:
sudo awk 'BEGIN {system("/bin/bash")}'
De esta forma, ya podemos leer la flag de root.txt.

