PingPong — HTB Insane Write-up

Difficoltà: Insane OS: Windows (Dual-Domain AD) Domini: PING.HTB · PONG.HTB DC1 IP: variabile (aggiornare ad ogni reset) DC2 IP: 192.168.2.2 (interno fisso) Kill Chain c.roberts (creds iniziali) → ADCS ESC13 → WinRM su DC1 → Chisel pivot → DC2 (PONG.HTB) → gMSA blob AES key (UTF-16LE→UTF-8) → TGT Pong_gMSA$ → RBCD + S4U2Proxy → MSSQL come c.adam → xp_cmdshell → GodPotato → SYSTEM su DC2 → VSS + secretsdump → R.Martinelli AES key → Cross-forest ESC4+ESC1 → cert Administrator → PKINIT → ROOT Configurazione iniziale /etc/hosts <DC1_IP> dc1.ping.htb ping.htb 192.168.2.2 dc2.pong.htb pong.htb 127.0.0.1 dc2.pong.htb # aggiungere quando tunnel Chisel attivo /etc/krb5.conf [libdefaults] default_realm = PING.HTB dns_canonicalize_hostname = false rdns = false forwardable = true [realms] PING.HTB = { kdc = dc1.ping.htb admin_server = dc1.ping.htb } PONG.HTB = { kdc = 127.0.0.1:9088 admin_server = 127.0.0.1:9088 } [domain_realm] .ping.htb = PING.HTB ping.htb = PING.HTB .pong.htb = PONG.HTB pong.htb = PONG.HTB [capaths] PING.HTB = { PONG.HTB = . } PONG.HTB = { PING.HTB = . } Credenziali note Account Password/Hash [email protected] AssumedBreach123 c.roberts NT hash 2475be69d40e815588a85fd89c7a439d c.roberts SID S-1-5-21-750635624-2058721901-1932338391-2617 [email protected] A()DUJ!@414 Pong_gMSA$ NT hash c39218097ef43dcceec91879deb216e7 Pong_gMSA$ AES256 6ba7f8e28096481f4f88a7a13be300da1fbc6220d64bcc9e3e2b9b0f6203021f R.Martinelli AES256 61e48d17cfe9507a3095dfb84b218a4b803aa0984b123e432bc2a40fc5f7fe98 Administrator NT hash 63905deb12b527aadfdbc26d3f423eff Step 1 — Foothold: ADCS ESC13 ESC13: la plantilla TemporaryWinRM su ping-DC1-CA ha una issuance policy OID mappata al gruppo TempWinRMAccess. Il KDC inietta il SID di quel gruppo nel PAC durante PKINIT — concedendo WinRM senza membership permanente in LDAP. ...

May 23, 2026