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.