Academy Central
----
Weather

Track 2 — Windows Post Exploitation (600 pts) 🟡 4/5

"An AI coding assistant was introduced for dev, but a developer's oversight caused things to go wrong."

Slug: post-exploitation-ithome-2026-copy · trackId Track01M06PGRWJW858VB5WK8GCZT6N. Two sub-tasks: /1 Environment Overview (✅ launches a Windows VM via RDP/IronRDP), /2 Operation SILKTHREAD (600 pts, 5 sequential tasks).

ATT&CK: T1195.002 (compromise software supply chain), T1105 (ingress tool transfer), T1543.003 (Windows service persistence), +2.

Lab = "Live VM" (Windows), Endpoints → Windows RDP (IronRDP) → Connect. The VM is a preserved post-incident snapshot — investigate, don't remediate. It restarts (Start/Actions) after auto-stop; startup 3–5 min; on-site Wi-Fi only.


Operation SILKTHREAD — 5 tasks (complete in sequence)

Scenario: the dev team adopted Claude Code; an engineer followed the AI's recommendation, pulled a project, and the machine went abnormal. The AI assistant was tainted (prompt-injection / poisoned context) into suggesting a malicious resource.

#TaskAnswerStatus
1Malicious Repo URIhttps://github.com/1ONAPART/TheH1ve
2Malicious File Name (Windows)svchost32.exe
3Hallucination AI Session (UUID)8d3b3ef2-a4f7-4b8f-b63e-9773c3bf2b2b
4C&C File Server (download IP)10.127.129.11
5Malicious Service Name (persistence)UNRESOLVED🟡

Tasks 1–4 submitted 2026-08-21 13:48. Then a follow-up unlocks:

"After cleanup the threat seemed gone; next morning the host tried outbound connections again. The attacker left a backdoor to regain access after reboot. Identify the service name used to maintain persistent access."

Task 5 — how to obtain it (deterministic path)

The service name is host-specific data; read it off the Windows VM via RDP + PowerShell:

# Event ID 7045 = "A service was installed"
Get-WinEvent -FilterHashtable @{LogName='System';Id=7045} | ForEach-Object { $_.Message }

# Auto-start services whose binary is NOT in the normal Windows/Program Files dirs
Get-CimInstance Win32_Service |
  Where-Object { $_.PathName -match 'svchost32|\\Temp\\|\\Users\\|\\ProgramData\\|\\AppData\\' -or
                 ($_.StartMode -eq 'Auto' -and $_.PathName -notmatch 'C:\\Windows\\|Program Files') } |
  Select-Object Name, DisplayName, State, StartMode, PathName | Format-List

The service whose binary path points at svchost32.exe (or a dropped path) and/or that re-initiates the outbound to 10.127.129.11 is the answer — submit its Name verbatim.

Why it was left unresolved (2026-08-21)

  • The IronRDP web client crashes on every automated connect ("Error loading tab").
  • Late in the session the network dropped off the lab allowlist (lab.trapa.zone says: Client ip not in allowlist) → host unreachable.
  • The answer submission endpoint (hitcon2026.trapa.zone) is not IP-gated, so a dictionary attack via the tRPC API was attempted (see scripts/rpc_harness.sh) — ~200+ common/masquerade/ themed service names, no hit. A unique author-chosen service name is not practically brute-forceable; it must be read from the host.

To finish: on the on-site network, open the Windows RDP, run the PowerShell above, and submit the service Name (optionally via the RPC harness for speed). </content>