Resolución del CTF CYBERGUARD
💢Plataforma:. TheHackersLabs 💢
❌Nombre: CyberGuard
📈Nivel: Experto
💻OS: Linux & Active Directory
🙋🏽♂️Creador: Murrusko
https://thehackerslabs.com/cyberguard/
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.
Nos encontramos ante una web la cual no podemos hacer nada a priori.

La interceptaremos con Burpsuite y vemos que en la cabecera del User-Agent es vulnerable, por lo que inyectaremos el * para señalar a sqlmap donde necesitamos que haga la inyección, guardaremos la petición para usarla posteriormente en sqlmap.

Primero con el archivo enumeraremos las base de datos.


Una vez enumeradas enumeraremos las tablas de la base de datos cyberguard.


y ahora le diremos que no dumpee la tala de admin_users.

Lo cual nos hace obtener las credenciales, pero la contraseña hasheada.

Pero la rompemos fácilmente.

Si retrocedemos recordaremos la web que tenemos, y al tener credenciales validas, podemos acceder a ella.

Nos llama la atención que tenemos dos apartados, uno de shell donde podemos inyectar comandos y otra archivos, pero nos impide subir archivos o ejecutar una revshell por el firewall.


Con sliver crearemos un implante para linux.

Iniciaremos el proceso de escucha.

Y lo subiremos al gestor multimedia de la web, recordemos que cada implante tiene un nombre distinto.

Una vez subido tendremos que buscar la ruta en la que se a subido el archivo.


Le daremos permisos de ejecución y lo ejecutaremos.


Vemos que hemos obtenido la conexión, por lo que podemos obtener una shell

navegando entre directorios vemos que tenemos un «.env» el cual contiene unas credenciales.

Pero como estamos en una red en la cual no tenemos acceso, necesitamos acceder a ella, en este caso sliver nos permite crear una VPN, asi que la crearemos con wg-config, qu eno «WP», gracias Murrusko ;).

Copiaremos toda la configuración en un archivo de nuestra host principal, añadiendo el endpoint, el endpoint que tiene la maquina de destino.

Con wireguard levantaremos la vpn.

Y crearemos un socks5 en la vpn para poder acceder con proxychians.

Añadiremos la ip y el puerto que nos a dado en /etc/proxychains4.conf.

Y con ssh accederemos a la 2 maquina.

Vemos que como permisos de sudoers podemos ejecutar el binario arspoof como root sin necesidad de contraseña.

Pero antes de nada como estamos en la segunda maquina y para hacerlo de una forma mas practica haremos un escaneo para saber que IPs están disponibles.

Y vemos que la 11 y la 15.

Haremos un escaneo mas exhaustivo de ambas para saber a que nos enfrentamos.

Haremos un MiTM con tcdump para ver si hay alguna conexión entre ambas puesto que una es Linux y Otra Windows.

Nos abriremos dos terminales con el usuario ian por ssh, cada una de ellas con ambas ips de forma bidireccional.

Al cabo de un rato(2 min), pararemos la escucha y nos enviaremos el archivo .pcap a nuestro host principal.

De la misma manera lo descargaremos con wget y recordando que encuitamos usar proxychains.

Con tshark, aunque también se puede hacer won wireshart sacaremos los valores que necesitamos para campero el hash NLTMv2


Y los pondremos en un archivo siguiente la estructura NTMLv2.
**«username::domain:ntlmserverchallenge:ntproofstr:rest_of_ntresponse»
**

Podemos utilizar hashcat o john con el usuario rockyou.txt para romperlo obteniendo la contraseña pacheco
Y lo primero que haremos es ver si podemos conectarnos por smb con ese usuario, y vemos que si.

Volvemos a sliver y generaremos otro implante pero para Windows.

Veremos a que recursos podemos acceder por smb.

Y entraremos a el para subir el implante.


Como también tenemos acceso por rpd entraremos con xfreerpd y lo ejecutaremos.


Se nos abre una nueva sesión, con Víctor, estamos en un DC.

En uno de los directorios encontramos un ejecutable muy curioso.

Lo descargaremos a nuestro host atacante.

Y con strings vemos que hay unas credenciales.


lo primero que haremos será buscar certificados.

Y vemos dos plantillas posiblemente vulnerables: UserCAn y UserCA.

En este caso usaremos esa plantilla para exportar la clave privada en un archivo .pfx.

Y haremos lo mismo con el usurario administrador, que es la que nos interesa

Nos autenticaremos para poder obtener el hash.

Y en este caso, algo extraño solo tenemos acceso por smb.

Pero ya siendo administradores, ejecutaremos el implante que generamos anteriormente para acceder con el usuario Víctor, pero esta vez lo ejecutaremos con Administrador.

Al ejecutarlo como administrador obtenemos una nueva session en sliver consiguiendo ser administrador total
Especial agradecimiento al compañero MURRUSKO por la creación y el conocimiento aportado en esta máquina. Un fuerte abrazo!!