Resolución del CTF EL CANDIDATO
Enumeración
Escaneo de puertos
Realizamos un escaneo de todos los puertos para saber cuáles están activos.

Los parámetros utilizados son:
- -p- : Escaneo de todos los puertos. (65535)
- -sS : Realiza un TCP SYN Scan para escanear de manera rápida que puertos están abiertos.
- -sC : Realiz una escaneo con los scripts basicos de reconocimiento
- -sV : Realiza un escaneo en buqueda de los servicios
- –min-rate 5000: Especificamos que el escaneo de puertos no vaya más lento que 5000 paquetes por segundo, el parámetro anterior y este hacen que el escaneo se demore menos.
- -n: No realiza resolución de DNS, evitamos que el escaneo dure más tiempo del necesario.
- -Pn: Deshabilitamos el descubrimiento de host mediante ping.
En este caso nos encontramos con una web bastante interesante que es la de «Trabaja con nosotros»

En este caso, la vulnerabilidad que explotaremos se encuentra en los macros del archivo odt . Lo que haremos será subir un archivo odt malicioso el cual nos permita obtener una reverse shell. En primer lugar, debemos crear el archivo odt, para ello utilizaremos LibreOffice Writer.
Para crear un nuevo macro, debemos acceder a la sección Tools/Organize Macros/Basic…

En este punto, deberemos seleccionar nuestro documento y hacer clic en el botón New . Ingresamo el nombre del macro, en este caso AutoOpen.

Se abrirá la siguiente ventana. Dentro de la sección del código, escribiremos lo siguiente indicando la IP de nuestra máquina atacante:

Guardamos el macro. En este caso, se nos solicita despliega el siguiente cuadro de dialogo para ingresar el nombre del archivo en caso de todavía no haberlo indicado. Ahora, lo que demos hacer, es asociar el macro a un evento, en este caso lo asociaremos al evento Open Document , es decir, que nuestro código se ejecutara al momento de abrirse el documento. Para ello, debemos acceder a Tools/Customize…

Luego, en la pestaña Events debemos buscar el evento Open Document y seleccionarlo. A continuación, debemos hacer clic en el botón Macro…

Por ultimo, debemos seleccionar nuestro macro y guardar.

Volvemos a la web y completamos el formulario. pero estandi a la escucha on netcat

Si realizamos una enumeración básica del sistema, encontramos un archivo credentials.7z
en el directorio home de bob.

Si intentamos extraer el contenido del archivo, vemos que nos solicita una contraseña.

Descargamos el archivo a nuestra máquina atacante para poder crackearlo con john .

Extraemos el contenido del archivo, lo cual genera un archivo credentials.txt.

Dentro del archivo, encontramos las credenciales de bob .

Pudiendo entrar a bob

Continuamos enumerando el sistema y encontramos que además del sitio principal
gyhabogados.thl , existe un segundo sitio configurado mail.gyhabogados.thl .
Si miramos el contenido del archivo, nos encontramos con lo siguiente:

y encontramos con una instancia de RoundCube

Ingresamos con las credenciales de bob.

En este correo, podemos ver que se da la bienvenida a sam que es uno de los nuevos abogados. Podemos ver las credenciales necesarias para acceder al
sistema.

Si recordamos los servicios expuestos, uno de ellos era el Samba (445). Ahora que tenemos credenciales validas, podemos intentar enumerar recursos.

Vemos tres recursos interesantes, CONFIDENCIALES , RESPALDOS_IT y IT_TOOLS , pero solo tenemos permisos de lectura en los primeros dos. Si miramos dentro del recurso compartido CONFIDENCIALES no encontraremos nada interesante, solo archivos pdf sin valor. Pero, dentro del recurso compartido RESPALDOS_IT si encontramos algo.

Descargamos ambos archivos a nuestra máquina atacante. Si miramos lo que dice el archivo txt, nos encontramos con lo siguiente:
Dean, He notado que estás reutilizando tus credenciales con frecuencia, lo que puede comprometer la seguridad de la empresa. Para facilitarte la gestión de contraseñas y mejorar la seguridad, he decidido crear una bóveda de contraseñas para ti, utilizando un gestor de contraseñas. Con esta herramienta, solo necesitarás recordar una contraseña maestra para acceder a todas tus credenciales de manera segura. La contraseña maestra es similar a la que te proporcioné en la bienvenida: "ChevyImpala1967" . Sin embargo, en lugar de "1967" , deberás usar un año diferente.
Vemos que el archivo credenciales.psafe3 corresponde a la boveda de contraseñas de dean uno de los usuarios del sistema y que la contraseña maestra esta formada por ChevyImpala y un año, que no sabemos cual. Creamos un simple diccionario usando el siguiente one-liner.
Generamos el hash usando la herramienta pwsafe2john .

Crackeamos el hash con john y el diccionario generado. Obtenemos la contraseña maestra de la boveda.

Abrimos el archivo con la aplicación de Password Safe.
Encontramos las credenciales de dean .


Si recordamos, cuando enumeramos recursos compartidos con sam , había un recurso que no podíamos acceder. Si volvemos a enumerar, en este caso con dean vemos que tenemos permisos de lectura en este recurso, por lo que nos conectamos.


Encontramos un archivo .ppk , lo descargamos a nuestra máquina. Utilizamos la utilidad puttygen para generar una clave privada rsa y poder conectarnos por ssh como john .
puttygen private_key.ppk -O private-openssh -o id_rsa

Logramos ganar acceso como john .
Después de realizar una enumeración del sistema y no encontrar nada interesante, probamos ingresar a la casilla de correo de john pero no encontramos nada. Sin embargo, si ingresamos a la casilla de correo de dean , observamos un correo un tanto particular

En este correo, el usuario bob envia una imágen de un Chevrolet Impala del año 67 adjunta. Descargamos la imagen y aplicamos esteganografía junto con un poco de fuerza bruta. Para ello, podemos usar steghide para sacarlo
Y luego de unos segundos, logramos obtener la contraseña y extraer el archivo oculto.

De esta forma, obtenemos las credenciales de john .
Volvemos a conectarnos como john al sistema y enumeramos si tenemos la capacidad de ejcutar comandos con sudo. Efectivamente, podemos ejecutar el siguiente comando con sudo

Vemos que podemos ejecutar un script de python que se encuentra en /home/john/tools/backup.py . Pero, si nos fijamos dentro del directorio tools no existe ningun archivo backup.py por lo que creamos este.
Ejecutamos el script.

y llegamos a ser root
Especial agradecimiento al compañero D4redevil por la creación y el conocimiento aportado en esta máquina. Un fuerte abrazo!!