Influencer - Dockerlabs - Linux - Fácil

En este laboratio pondremos a prueba los ataques de fuerza bruta contra distintos servicios.
Para la fase de reconocimiento, utilizaremos un script que arme para estos labotarios.
https://github.com/yorve/Auto-Recon
Este nos ayudará para automatizar la fase de reconocimientos de puertos, servicios, escaneo de directorios web y otros.

Ingresamos los datos solicitados, Esta herramienta creará un directorio de trabajo, en el cual se exportarán los datos encontrados.

La primera etapa nos muestra un escaneo de puertos y servicios detectados.

La segunda etapa nos muestra información sobre el servicio web

Una vez finalizado, el resultado nos muestra información por donde empezar.
Vemos que el servicio web contiene 401 Unauthorized, Esto nos indica que el objetivo tiene un mecanismo de autenticación y que el servidor responde correctamente.
WWW-Authenticate: Basic, indica que el usuario y contraseña se envían en Authorization: Basic base64(user:pass), no existe hash ni tokens, esto lo hace vulnerable a ataques de fuerza bruta.

El escaneo de directorios no se inicio, esto ocurre por que el objetivo pide pasar la primera autenticación para seguir.

efectivamente al ingresar por el navegador, este nos pide igresar las credenciales al acceder.

Al inspeccionar la página con la herramienta curl, se confirma que el sitio utiliza HTTP Basic Authentication. Este mecanismo no corresponde a un formulario HTML, sino que a una autenticación a nivel de protocolo HTTP, donde el navegador incluye las credenciales en la cabecera.
Authorization: Basic base64(usuario:contraseña)
La autenticación HTTP Bascis es independiente del método HTTP utilizado (GET o POST). En este caso, el acceso inicial al recurso protegido se realiza mediante peticiones GET, razón por la cual el servidor responde con el código 401 Unauthorized cuando no se incluyen credenciales válidas.
Ya con los datos anteriores, vamos a intentar un ataque de fuerza bruta con la herramienta hydra.

Utilizamos el argumento -C (combo) y el diccionario de usuarios y contraseña que contengan el formato user:pass (admin:admin, root:root, etc) Obtenemos las credenciales del usuario httpadmin.

Una vez ingresadas las credenciales encontradas, no tenemos nada (aparentemente), pero esto nos da pie para realizar un escaneo de directorios con la herramienta gobuster utilizando las credenciales obtenidas en el ataque de fuerza bruta.

En este escaneo encontramos una ruta a /login.php, aquí nos encontramos con otro panel de login.

Tenemos una doble autenticacion encadenada. Esto significa que primero se debe pasar la primera barrera (Basic Auth) y pasar por la segunda.

Utilizamos nuevamente gobuster para hacer la misma verificación anterior, esta vez debemos utilizar las credenciales encontradas para pasar la primera barrera y luego hacer la petición por método POST con credenciales de prueba y así ver la respuesta que entrega el servidor. en este caso el mensaje de Credenciales Incorrectas.

Entonces, el formulario tiene método POST, el servidor procesa estos parámetros y devuelve un mensaje de error dependiendo del contenido envíado, y el POST funciona solo despues de pasar al Basic Auth. vamos a realizar otro ataque de fuerza bruta, ahora sobre el segundo login.

Aqui utilizamos hydra con el usuario admin (corazonada) con el diccionario Rockyou, el método http-post-form para indicarle que es método POST, ya que los parámetros van en el cuerpo del request.
y la cadena /login.php:username=^USER^&password=^PASS^:H=Authorization: Basic aHR0cGFkbWluOmZodHRwYWRtaW4=:F=Credenciales incorrectas.
H=Authorization: Basic aHR0cGFkbWluOmZodHRwYWRtaW4= Este valor son las credenciales en base64 (lo mismo que hace el request)
Esto es por que hydra se autentica contra el primer login (primera barrera), así podemos llegar al segundo login. El ataque se basó en la detección del mensaje de error “Credenciales incorrectas”, permitiendo identificar credenciales válidas cuando ese mensaje no aparecía en la respuesta.
Ahora tenemos las credenciales del usuario admin

al ingresar estas credenciales solo nos muestra un mensaje y un usuario. Ahora nuestro enfoque será en el servicio SSH. Utilizaremos hydra nuevamente con este nuevo usuario.

Obtenemos la contraseña para este nuevo usuario.
Con la sesion de este usuario activa, buscamos distintas formas para escalar privilegios, pero este usuario no tenia permisos suficientes para hacer algo..


ya que tenemos disponible scp, vamos a pasar de nuestra máquina atacante el script de LinEnum para escanear alguna vulnerabilidad.

pero, esta no nos ayudó a completar nuestro objetivo. Buscando mas información nos encontramos con un script que nos permitirá realizar un ataque de fuerza bruta interno contra el usuario root.
https://github.com/D1se0/suBruteforce/blob/main/suBruteforceBash/suBruteforce.sh
copiamos el código y nos creamos el script en la máquina víctima, y con la herramienta scp nos pasamos el diccionario rockyou a la máquina víctima.

y al ejecutarlo nos dará la contraseña de root

y podemos cambiarnos al usuario root

En un entorno real, los ataques de fuerza bruta locales contra el binario su no suelen ser viables debido a las protecciones implementadas por PAM. Sin embargo, en este laboratorio, dichas protecciones han sido debilitadas intencionadamente, permitiendo la automatización de intentos contra el usuario root. Aprovechando esta configuración insegura, fue posible realizar un ataque de fuerza bruta interno y obtener la contraseña del usuario root.