Back to writeups
HTBmachineMediumsolved

Puppet

17 Jul 2026 · by 0xIDA

Solvers

Puppet

Author: 0xIDA

Summary

HTB/VulnLab mini pro-lab: internal Sliver multiplayer C2, Windows FILE01 foothold → PrintNightmare/UAC SYSTEM → LSA secret for Puppet service account → DC it share SSH key → PM01 root via Puppet → DC01 SYSTEM + SharpDPAPI on Task Scheduler credential for domain user root (final flag). Four flags: Sleep, Nightmare, Dance, Puppet Master.

Solution

1. Entry — FTP + Sliver multiplayer

VPN: mini pro-lab OVPN. Gateway 10.13.38.33 exposes anonymous FTP with sliver-client_linux + multiplayer config, and mTLS C2 on 31337/8443.

socat TCP-LISTEN:31337,reuseaddr,fork,bind=127.0.0.1 TCP:10.13.38.33:31337
./sliver-client_linux

Live FILE01 beacon as bruce.smithFlag Sleep.

2. SYSTEM on FILE01 — Nightmare

PrintNightmare adds local adm1n. UAC/fodhelper or schtasks for durable SYSTEM. Administrator/Public loot → Flag Nightmare. Dump SAM/SYSTEM/SECURITY; secretsdump recovers svc_puppet_win_t1 from LSA.

3. PM01 — Dance

As svc_puppet_win_t1, mount \\DC01\it, take SSH key (passphrase puppet). Sliver SSH to svc_puppet_lin_t1@puppet.vl on PM01 → sudo puppet / SUID → Flag Dance in /root/flag.txt.

4. DC01 — Puppet Master

svc_puppet_win_t1 has SCManager + C$ on DC01. Stage SharpDPAPI and run as SYSTEM:

PsExec64 \\172.16.40.5 -accepteula -s cmd /c "SharpDPAPI.exe machinetriage > C:\Windows\Temp\sdp_out.txt"

Decrypts Task Scheduler credential for PUPPET\root → final flag.

Flags

Sleep:         PUPPET{1c1740d66f707111a911e5f6a96d7d36}
Nightmare:     PUPPET{3b3072985c0759f048842861ef5aac55}
Dance:         PUPPET{c093652c9a73eaee0b43e039a04eff77}
Puppet Master: PUPPET{8b6626457fbee7a7e2b74a2aa6754aa9}

Solvers

Tools

Sliver, PrintNightmare/fodhelper, impacket-secretsdump, PsExec, SSH, Puppet, SharpDPAPI