UserSearch - DockerLabs
| OS | Dificultad | Creator |
|---|---|---|
| Linux | Medio | kvzlx |
Escaneo y Reconocimiento de puertos
Vamos a iniciar nuestro reconocimiento con un rápido escaneo de nmap.
nmap -p- --open -sS -sC -sV --min-rate=5000 -vvv -n -Pn -oN escaneo 172.17.0.2
-p-: Escanea todos los puertos (1-65535).--open: Solo muestra los puertos abiertos.-sS: Realiza un escaneo SYN, que es rápido y discreto.-sC: Utiliza los scripts de reconocimiento por defecto de Nmap.-sV: Detecta la versión del servicio en los puertos abiertos.--min-rate=5000: Envía al menos 5000 paquetes por segundo, acelerando el escaneo.-n: No realiza resolución DNS.-Pn: No realiza ping previo para determinar si el host está activo.-vvv: Muestra resultados detallados y en tiempo real.
Vemos que esta abierto el puerto 22 SSH y el puerto 80 HTTP
Enumeración Web
Si accedemos a la pagina web vemos lo siguiente
Usamos Gobuster para hacer un reconocimiento web y ver que directorios podemos encontrar en dicho sitio.
gobuster dir -u http://172.17.0.2/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php
gobuster dir- Indica que estás utilizando la herramienta Gobuster para realizar un escaneo de directorios.-u http://172.20.10.5/Especifica la URL objetivo que deseas escanear en busca de directorios.-wEspecifica que diccionario queremos usar-xPara indicar que tipo de extension queremos que nos encuentre
Gobuster no ha encontrado nada
Si nos fijamos en el mensaje de unauthorized query me da que pensar que por detras tiene una base de datos así que vamos a ver si podemos ver algo con sqlmap
Ataque SQLi SQLMap
sqlmap -u http://172.19.0.2 --forms --dbs --batch
Ahora haremos una consulta de tablas en la base de datos testdb.
sqlmap -u http://172.19.0.2 --forms -D testdb --tables --batch
Vamos a listar que columnas hay dentro de la tabla users
sqlmap -u http://172.19.0.2 --forms -D testdb -T users --columns --batch
Por ultimo vamos a ver que hay dentro de la columna password y username
sqlmap -u http://172.19.0.2 --forms -D testdb -T users -C id,password,username --dump --batch
Tenemos una serie de usuarios y contraseñas.
Intrusión a la máquina
Vamos a probar de acceder con el usuario kvzlx y la contraseña que hemos encontrado
Si hacemos un sudo -l vemos lo siguiente
Escalada de privilegios
Vamos hacer un cat del script
Vemos varias cosas:
-> Importa el modulo psutil -> Utiliza virtual_memory() como función
Vamos a pasarle linpeas ya que no encontramos nada
Encontramos esto que es el modulo de psutil y si nos fijamos tenemos permisos de escritura en el init.py
Vamos a probar de introducir un código para que nos muestre que usuario esta ejecutando el script de la siguente forma.
Ahora si ejecutamos el script con el binario de python3 nos deberia decir root y luego debería ejecutar el script.
Genial como esto nos lo ha realizado ya tenemos una via de explotación para la escalada de privilegios
Lo que vamos hacer va ha ser que la bash tenga permiso SUID de la siguiente forma
Ahora si ejecutamos el script y posteriormente hacemos bash -p
Ya somos root