Entrada

Darkside

En este artículo, vamos a abordar la resolución de la máquina Darkside de la plataforma HackMyVm. Iniciamos con una exhaustiva enumeración del sitio web, lo que nos lleva al descubrimiento de un archivo que contiene varios nombres de usuario. Entre ellos, destacamos el usuario kevin, que será crucial para obtener acceso al sistema web mediante un ataque de fuerza bruta. Una vez dentro, nos enfrentamos a la tarea de decodificar una cadena proporcionada, que al decodificarla nos permite acceder a otro sitio web.

Además, al analizar el código fuente de este nuevo sitio, encontramos una ruta que nos lleva a unas credenciales para iniciar sesión vía SSH como el usuario kevin. Una vez dentro del sistema, procedemos a movernos de forma lateral hacia el usuario rijaba. Finalmente, para elevar nuestros privilegios, nos aprovechamos de una configuración inadecuada de sudo, lo que nos permite llevar a cabo una escalada de privilegios exitosa.

Reconocimiento

Comenzamos lanzando una traza ICMP a la máquina objetivo para comprobar que tengamos conectividad.

Darkside Reconocimento usando el comando ping

Podemos observar, que responde al envío de nuestro paquete, verificando de esta manera que tenemos conectividad. Por otra parte, confirmamos que estamos frente a una máquina Linux basandonos en el TTL (Time To Live).

Enumeración

Descubrimiento de puertos abiertos

Realizamos un escaneo con nmap para descubrir que puertos TCP se encuentran abiertos en la máquina víctima.

1
nmap -sS -p- --open --min-rate 5000 -Pn -n -oG scanPorts 192.168.1.10 -vvv

Darkside Descubrimiento de puertos abiertos

ver la Cheatsheet para más detalle sobre los parámetros utilizados.

Enumeración de versión y servicio

Lanzamos una serie de script básicos de enumeración propios de nmap, para conocer la versión y servicio que esta corriendo bajo los puertos abiertos.

1
nmap -sCV -p22,80 -vvv -oN targeted 192.168.1.10

Darkside Descubrimiento de versión y servicio con nmap

ver la Cheatsheet para más detalle sobre los parámetros utilizados.

Enumeración del servicio web

Comenzamos realizando una enumeración básica del servicio web que esta corriendo en el puerto 80.

Hacemos uso de la utilidad wathweb para conocer algo de información sobre las tecnologías utilizadas en el sitio web.

1
2
❯ whatweb http://192.168.1.10
http://192.168.1.10 [200 OK] Apache[2.4.56], Cookies[PHPSESSID], Country[RESERVED][ZZ], HTML5, HTTPServer[Debian Linux][Apache/2.4.56 (Debian)], IP[192.168.1.10], PasswordField[pass], Title[The DarkSide]

Vemos que esta utilizando Apache(2.4.56) como servidor web.

Si ingresamos al sitio web, nos encontramos con el siguiente formulario de login, donde se solicita el ingreso de un usuario y contraseña:

Darkside Formulario de la web DarkSide

Si probamos ingresar las tipicas credenciales por defecto, como son, admin:admin, admin:password, admin:password123, etc, vemos que no tenemos éxito, al igual que si intentamos ralizar alguna inyección SQL.

Podemos hacer uso del plugin Wappalyzer para conocer más información.

Darkside Uso de Wappalyzer para conocer las tecnologías utilizadas en el sitio web

Observamos en este caso, que además de indicarnos que Apache es el servidor web que esta alojando el sitio, nos indica que el lenguaje de programación utilizado es PHP, del cual no sabemos la versión especifica.

Al realizar un poco de web fuzzing, descubrimos la ruta /backup.

Darkside Web Fuzzing con ffuf

Si ingresamos a la misma, nos encontramos con el archivo vote.txt.

Darkside /backup

Y dentro del archivo vote.txt encontramos lo siguiente:

Darkside /backup

Al parecer es una especie de votación, donde el usuario kevin a logrado entrar al grupo Darkside.

Esto nos hace pensar, que el usuario kevin como nuevo miembro del grupo tiene acceso al sitio de darkside, es decir, que tiene credenciales validas.

Explotación

Usuario kevin

En nuestro caso, solo conocemos el nombre de usuario, por lo que podemos hacer uso de la herramienta hydra para aplicar fuerza bruta sobre el formulario y ver si encontramos la contraseña.

Darkside Fuerza bruta con hydra al formulario web

Genial!, logramos descubrir las credenciales del usuario Kevin, kevin:iloveyou.

Utilizamos las credenciales para iniciar sesión en el sitio web. Darkside Sitio web de Darkside

Vemos que nos comparten una cadena en base58.

Podemos hacer uso de la web CyberChef para aplicar la decodificación de la misma.

Darkside CyberChef

Al realizar la decodificación, observamos que obtenemos una cadena en formato base64. Luego, procedemos a aplicar la decodificación adecuada.

Darkside CyberChef

El cual nos das como resultado el siguiente dominio: sfqekmgncutjhbypvxda.onion

Si ingresamos a este, descubrimos el siguiente sitio:

Darkside

Mirando el código fuente de la web, decubrimos otra ruta del sitio: hwvhysntovtanj.password

Darkside

Accedemos a la ruta indicada y nos encontramos con las sigiuientes credenciales: kevin:ILoveCalisthenics.

Darkside

Si recordamos nuestro escaneo de puertos inicial, el puerto 22 (SSH) estaba abierto, por lo que podemos probar estas credenciales para conectarnos como el usuario kevin a la máquina víctima.

Darkside

Vemos que tenemos éxito y logramos conectarnos al sistema y leer la flag de user.txt

Darkside user.txt

Usuario rijaba

Si hacemos un poco de enumeración básica del sistema, nos encontramos con las credenciales del usuario rijaba dentro del archivo .history del usuario kevin.

Darkside

Utilizamos estas credenciales para movernos de forma lateral al usuario rijaba.

Darkside Usuario rijaba

Escalación de privilegios

Volvemos a realizar un poco de enumeración básica, pero en este caso, con el usuario rijaba y nos encontramos con que podemos ejecutar con sudo y sin proporcionar contraseña el binario nano.

Darkside sudo -l

Si hacemos una búsqueda rápida en GTFOBins, vemos que tenemos una vía potencial para escalar nuestros privilegios.

Darkside GTFOBins sudo nano

Utilizamos este medio para elevar nuestros privilegios y leer la flag de root.txt.

Darkside root.txt

De esta forma, concluimos el Writeup de la máquina Darkside.

Espero que los conceptos hayan quedado claros. En caso de tener alguna duda, te invito a realizar nuevamente la máquina para afianzar tus conocimientos.

¡Gracias por leer!

Happy Hacking!

Esta entrada está licenciada bajo CC BY 4.0 por el autor.