Resolute

Resolute es una máquina Windows que cuenta con Active Directory. El enlace anónimo de Active Directory se utiliza para obtener una contraseña que los administradores del sistema establecen para las nuevas cuentas de usuario, aunque parece que la contraseña de esa cuenta ha cambiado desde entonces. Un barrido de contraseñas revela que esta contraseña todavía está en uso para otra cuenta de usuario de dominio, lo que nos da acceso al sistema a través de WinRM. Se descubre un registro de transcripción de PowerShell, que ha capturado las credenciales pasadas en la línea de comandos. Esto se utiliza para moverse lateralmente a un usuario que es miembro del grupo DnsAdmins. Este grupo tiene la capacidad de especificar que el servicio Servidor DNS cargue un plugin DLL. Después de reiniciar el servicio DNS, logramos la ejecución del comando en el controlador de dominio en el contexto de NT_AUTHORITY\SYSTEM.

20240329021811.png

Enumeración

Iniciamos enumerando los puertos que se encuentra abiertos en la maquina victima, esto con la herramienta de nmap

  • -p-: indica a Nmap que escanee todos los puertos (desde el puerto 1 hasta el puerto 65535).

  • --open: muestra solo los puertos que están abiertos.

  • --min-rate 5000: establece la tasa mínima de paquetes por segundo en 5000. Esto puede acelerar el escaneo, enviando más paquetes por segundo, aunque también puede aumentar la posibilidad de ser detectado por sistemas de prevención de intrusiones (IPS).

  • -vvv: establece un nivel de verbosidad muy alto, mostrando una salida muy detallada del escaneo.

  • -Pn: ignora el descubrimiento de hosts y asume que el objetivo está activo.

  • -n: evita la resolución DNS inversa para las direcciones IP.

  • 10.10.10.169: es la dirección IP del host que se va a escanear.

  • -oG allportsScan: genera un archivo de salida en formato "greppable" llamado "allportsScan".

Luego de obtener los puertos abiertos lo que haremos será enumerar los servicios y las versiones de estas en cada uno de los puertos.

  • -p: especifica los puertos a escanear. En este caso, se están escaneando los puertos 53, 88, 135, 139, 389, 445, 464, 593, 636, 3268, 3269, 5985, 9389, 47001, 49664, 49665, 49666, 49667, 49671, 49678, 49679, 49684 y 49705.

  • -sC: activa la opción de enumeración de scripts predeterminados de Nmap. Esto permite ejecutar una serie de scripts diseñados para detectar vulnerabilidades o características específicas de los servicios.

  • -sV: realiza una detección de la versión de los servicios que se encuentran en los puertos especificados.

  • -vvv: establece un nivel de verbosidad muy alto, mostrando una salida muy detallada del escaneo.

  • 10.10.10.169: es la dirección IP del host que se va a escanear.

  • -Pn: ignora el descubrimiento de hosts y asume que el objetivo está activo.

  • -n: evita la resolución DNS inversa para las direcciones IP.

  • -oN servicesScan: genera un archivo de salida en formato normal con el nombre "servicesScan".

Enumeración de usuarios

Luego de estar enumerando a través del servicio ldap encontraremos algunos usuarios, para obtener solo los usuarios realizaremos unos filtros con grep y awk.

Luego de realizar los filtros, podremos obtener los usuarios:

Explotación

Luego de intentar Brute Force con la herramienta netexec y quizás encontrar algún usuario que este haciendo uso de su mismo nombre como contraseña. Intentaremos enumerar mas el servicio ldap, en el cual en la descripción del usuario Marko Novak encontramos una contraseña.

20240329162946.png

Ejecutamos el siguiente comando solo para obtener el texto:

Luego de obtener la contraseña, realizaremos Brute Force con los usuarios que habíamos encontrado antes.

20240329170003.png

Encontramos las credenciales validas por el servicio winrm:

Escalada de privilegios

Usuario : melanie

Teniendo las credenciales, ahora nos autenticaremos por el servicio winrm con la herramienta evil-winrm

20240329170355.png

Enumerando encontraremos con un directorio que es PSTransciprts que me pareció algo interesante

Revisando cada una de los directorios podremos encontrara un archivo interesante

20240329172303.png
20240329173234.png

El archivo que encontramos contiene un comando de autenticación a un servicio compartido, en el cual podemos obtener unas credenciales

Teniendo las credenciales, relazaremos Brute Force para encontrar algún usuario que sea valido con la contraseña que encontramos aunque en la linea de comandos el usuario ryan es con quien se usa la credencial

20240329173900.png

Efectivamente el usuario ryan es el que puede hacer uso de la contraseña.

Usuario : ryan

Haciendo uso de las credenciales : ryan : Serv3r4Admin4cc123! podremos ingresar con la herramienta de evil-winrm

20240329174132.png

En su escritorio encontramos una nota que dice :

Enumerando los grupos a los que pertenecemos encontraremos que estamos dentro de DnsAdmins

20240329180654.png

Grupo : DnsAdmins

Investigando en los siguientes posts podremos entender y comprender como abusar del grupo del que nos encontramos:

Debemos de ejecutar el siguiente comando para lograr obtener una shell

En el comando que debemos de a ejecutar vemos que se proporciona una dll el cual se ejecutara cuando el servicio de dns inicie nuevamente.

Generaremos nuestra propia dll maliciosa, esta la realizaremos con msfvenom

Luego iniciaremos un servidor por el servicio smb en nuestra maquina atacante y también ponernos a la escucha con ncat

Finalmente debemos de ejecutar los comandos en la maquina victima

  • Configurar o agregar nuestra dll maliciosa

  • Para el servicio de dns

  • Iniciar el servicio dns

20240329190215.png

Usuario : administrator

Si todo se ejecuto correctamente deberiamos obtener una shell a nombre del usuario administrator

20240329190309.png
20240329190342.png

Last updated