Machine / Machines

Hercules

Hercules is a sanitized machine note from the local HTB archive, organized for quick review by category, difficulty, evidence flow, and reusable operator

DocumentedPublished 2026-01-23Sanitized local writeup

Scenario

Hercules attack path

Hercules is a sanitized machine note from the local HTB archive, organized for quick review by category, difficulty, evidence flow, and reusable operator

Objective

Machine walkthrough focused on Machines evidence, validation, and reusable operator lessons.

Hercules sanitized attack graph

Walkthrough flow

01

Confirm whether a Certipy request ID can be retrieved...

02

If not, use PForgeCert / pyForgeCert-style CMC...

03

Validate that the resulting PFX identity is actually...

04

Capture C:\Users\Administrator\Desktop\root.txt to...

05

real Administrator certificate/ccache/hash to...

Source coverage

High source coverage

Status: complete. This article is generated from 7 sanitized Markdown sources and keeps raw flags, credentials, keys, cookies, and reusable secrets out of the rendered blog.

100% coverage
Evidence verdict

High confidence: the page is reconstructed from a primary walkthrough plus multiple supporting notes or evidence sources. Treat the chain as source-backed, while still checking the listed source files for sensitive values.

  • <TARGET>-Hercules/walkthrough.md
  • HTB/<TARGET>-Hercules/notes.md
  • HTB/<TARGET>-Hercules/attack-map.md
  • HTB/<TARGET>-Hercules/memory-summary.md
  • HTB/<TARGET>-Hercules/session-resume.md
  • HTB/<TARGET>-Hercules/custom-exploit-notes.md
  • HTB/<TARGET>-Hercules/dead-ends.md

Technical Walkthrough

Hercules Walkthrough

Raw flags, <password redacted>, hashes, tickets, PFX/key material, and private loot remain under loot/ only.

Current Status

  • State: COMPLETE
  • User flag: previously captured
  • Root flag: captured into loot/root.txt
  • Strict htbctl complete --strict-local-loot passed on 2026-06-13.

Root Chain Progress

The 2026-06-10 run crossed the prior missing-transition blocker. The live chain now reaches a validated Forest Management operator:

text
ken.w rebuild
-> natalie.a
-> Shadow Credentials on bob.w
-> bob.w LDAP ModifyDN move of stephen.m into Web Department
-> Shadow Credentials on stephen.m
-> reset auditor
-> auditor TGT
-> Fernando ESC3 setup

The remaining blocker is not the bridge anymore. It is ADCS OBO certificate identity/retrieval: the existing Administrator-named PFX candidates validate as Fernando identity and do not produce Administrator authentication.

See checkpoint-root-blocker-20260610.md for the latest sanitized checkpoint.

Final Root Path

The final root path was not another Administrator OBO attempt. The working route was the public-source Ashley/IIS bridge, corrected against live evidence:

text
fernando.r EnrollmentAgent PFX
-> ESC3 OBO for ashley.b
-> Ashley Kerberos/pypsrp execution
-> run C:\Users\ashley.b\Desktop\aCleanup.ps1
-> grant IT SUPPORT control over Forest Migration
-> rerun cleanup and validate write rights over IIS_Administrator
-> enable/reset IIS_Administrator
-> IIS_Administrator TGT
-> reset <secret redacted>$
-> RC4-backed <secret redacted>$ TGT and session-key/hash alignment
-> getST -u2u as Administrator to cifs/dc.hercules.htb
-> SMB C$ read of C:\Users\Admin\Desktop\root.txt

Key sanitized evidence:

  • enum/pypsrp-ashley-defaultcache-retry-20260613.txt
  • enum/ashley-cleanup-and-iis-bridge-validation-20260613.txt
  • enum/post-it-support-cleanup-iis-admin-validation-summary-20260613.txt
  • enum/iis-administrator-enable-reset-summary-20260613.txt
  • enum/iis-administrator-gettgt-summary-20260613.txt
  • enum/iis-webserver-reset-gettgt-summary-20260613.txt
  • enum/iis-webserver-u2u-rbcd-root-summary-20260613.txt

Raw flags, tickets, hashes, and <password redacted> remain under loot/ only.

Source-Backed Dossier

The sections below are merged from companion Markdown notes for the same case. They are rendered after sanitization so the article stays precise without publishing raw flags, credentials, or target-specific secrets.

Notes

Target: Hercules

Active IP: <TARGET>

OS/Difficulty: Windows / Insane

Active Pwnbox: <TARGET> (profex0r)

Attacker VPN IP: <TARGET>

Started: 2026-05-07T18:19:10Z

Scope: Authorized HackTheBox machine only

Evidence Ledger

Time UTCCommand / ActionOutput FileFindingConfidenceNext Action
2026-05-07T18:19:10ZCreated workspace and advisory pre-researchHercules-PreResearch/research.mdPublic claims recorded as unvalidatedMediumValidate live anchors from Pwnbox
2026-05-07T18:21:00ZPwnbox setup + ping targetPwnbox enum/pwnbox-interfaces.txt, enum/ping-target.txtPwnbox VPN IP <TARGET>; target reachable with TTL 127HighRun validation scans
2026-05-07T18:21:00ZExpected-port TCP scanPwnbox nmap/expected-quick.nmapAD/DC expected ports open: 53, 80, 88, 135, 139, 389, 443, 445, 464, 593, 636, 3268, 3269, 5986, 9389HighValidate domain and web stack
2026-05-07T18:25:00ZHTTP/TLS/LDAP/SMB baselinePwnbox enum/http-headers.txt, enum/https-cert.txt, enum/ldap-rootdse.txt, enum/smb-null-guest.txtIIS 10 confirmed; TLS SAN hercules.htb; LDAP RootDSE confirms dc.hercules.htb and DC=hercules,DC=htb; SMB signing required; null/guest returns <secret redacted>HighAdd hosts and fingerprint web
2026-05-07T18:28:00ZService/version scanPwnbox nmap/services.nmapHost DC, Windows, AD LDAP/Kerberos, WinRM SSL, high RPC; clock skew ~4m30sHighProceed with advisory chain as validated hypothesis
2026-05-07T18:28:00ZWeb baselinePwnbox enum/https-index.html, enum/web-index-summary.txt, enum/web-quick-paths.txtHercules Corp ASP.NET/IIS app; /Login exposes Hercules SSO with anti-CSRF token and client username regexHighBuild controlled login/LDAP injection oracle tests
2026-05-07T22:27:17Z/Login LDAP oracle extractionPwnbox enum/description-*, local loot/oracle-current-prefix.txtDouble-encoded LDAP filter injection confirmed. description prefix extraction produced a credential-like value; exact value still incomplete.HighResume from saved prefix, avoid broad scans, continue targeted extraction after Pwnbox returns
2026-05-07T22:27:17ZPwnbox health checkSSH to <TARGET>Pwnbox SSH timed out; local machine has no route to <TARGET>. Live exploitation paused on infrastructure, not target logic.HighRestart/restore Pwnbox or provide new IP
2026-06-06T05:46:47Zpython3 scripts/htbctl.py check ./<TARGET>-Herculesterminal / target-state.jsonLocal harness check passed with zero errors and zero warnings.HighRevalidate respawn anchors through Pwnbox.
2026-06-06T05:46:47ZSecurity context verificationterminal onlySecurity context loaded; authorization and practitioner profile verified without exposing PII.HighContinue within authorized HTB scope.
2026-06-06T05:46:47Zhtbctl remote preflight attemptenum/evaluator-mutation-20260606T054647Z.txtRemote execution did not start because <secret redacted> / SSHPASS is absent from the current agent environment. No target action or mutation occurred.HighExport runtime Pwnbox secret in environment and rerun preflight.
2026-06-06T07:35:39Zhtbctl run remote respawn preflightenum/remote-respawn-preflight.txtPwnbox <TARGET> confirmed reachable with VPN tun0 <TARGET>; target reachable; hosts entry and HTTPS to hercules.htb healthy; current remote workspace exists with loot/lfi-ken.HighRestage corrected parser helpers and rerun the forge step from the Pwnbox workspace.
2026-06-06T07:36:24ZRestaged parse_lfi_and_forge.py and aspxauth_hmacsha256.js, then reran parser/forge through htbctlenum/lfi-parse-forge-rerun.txtCorrected parser worked: selected live root web.config, extracted live machineKey, parsed emails.json, and forged multiple FormsAuth variants under loot/.HighValidate forged-role behavior against the five target routes by access effects only.
2026-06-06T07:37:16ZFormsAuth role validation with loot-scoped outputloot/formsauth-role-validation.txtForged cookies changed portal content, especially mail visibility, but did not produce a new identity, credential, upload-only boundary, or AD-relevant bridge. Web/LFI branch closed as a primary root path.HighPivot back to the validated ESC3 chain and revalidate required auditor / fernando.r artifacts before mutation.
2026-06-06T07:38:34Zhtbctl evaluate before ESC3 pivotenum/evaluator-mutation-20260606T073834Z.txtDecision Validate first: ESC3 remains the strongest path, but the current Pwnbox workspace lacks fresh auditor / fernando.r loot artifacts needed for the timed chain.HighRebuild or restage the minimal pre-ESC3 credential path, then rerun live ADCS anchor validation with loot-scoped output.
2026-06-06T07:55:57ZCurrent/prior Pwnbox loot inventory via htbctl runenum/loot-inventory-current.txt, enum/loot-inventory-prior.txtCurrent remote workspace has ken.w/web/LFI artifacts only; no fresh auditor / fernando.r / Administrator loot. Prior remote Hercules workspaces are missing on the Pwnbox.HighDetermine whether the minimal pre-ESC3 chain can be rebuilt from current live foothold plus mirrored evidence.
2026-06-06T08:06:00ZMirrored and parsed live BloodHound collection from the current Pwnbox workspaceenum/bloodhound-chain-interest.txtLive graph still supports the end-state assumptions: <secret redacted> remains disabled in Smartcard Operators, AUDITOR remains in Forest Management, and AD object placement matches the prior ESC3 strategy. But the current owned foothold is still only ken.w, which has no direct graph edge, and the preserved workspace evidence does not contain a reproducible, current credential transition back to auditor.HighStop before mutation unless a fresh, live-supported path from ken.w to natalie.a / bob.w / stephen.m / auditor is rebuilt.
2026-06-06T08:06:57ZLive ADCS anchor revalidation with latest Certipy and ken.w Kerberosenum/certipy-find-ken-revalidate.txt<secret redacted> is still live and the critical template relationship still matches: EnrollmentAgent, MachineEnrollmentAgent, EnrollmentAgentOffline, SmartcardLogon, and SmartcardUser remain enabled with Smartcard Operators enrollment rights.HighESC3 finish remains valid once auditor authentication material is rebuilt; current checkpoint is blocked only on that prerequisite.
2026-06-06T08:20:00ZLocal coordinator validation and finisher script hardeningauditor-rebuild-brief-2026-06-06.md, exploits/esc3_finish.pyValidated the latest agent stop as correct: no web-branch drift, no ESC3 failure, blocker is missing live auditor material. Fixed the finisher DN constants to match live OU=<secret redacted> / CN=FERNANDO <secret redacted> evidence and stopped certipy auth output from printing to console.HighRebuild the live path to auditor, then run the patched ESC3 finisher.
2026-06-06T08:41:30ZRemote helper TGT revalidation for ken.wloot/live-ken-tgt-revalidate.txtken.w still obtains a fresh TGT; the current foothold remains live.HighUse current live state to audit the natalie.a timing overlap and direct operator-recovery branch.
2026-06-06T08:42:25ZRemote LDAP attribute helper attempts for bridge/operator usersloot/live-operator-ldap-check.txt, loot/live-bridge-operator-attrs.txtGSSAPI ldapsearch and plaintext bloodyAD attribute pulls both failed due remote auth-mechanism/tooling limits; no target mutation occurred.HighFall back to the current BloodHound JSON already collected from the live target.
2026-06-06T08:45:17ZParsed current live BloodHound user/group JSON for timestamps and membershipsenum/bh-ken_20260606025008_users.json, enum/bh-ken_20260606025008_groups.jsonnatalie.a shows pwdLastSet=2026-06-06T06:46:13Z and lastLogon=2026-06-06T06:54:09Z; ken.w lastLogon is 2026-06-06T06:53:19Z. The surrounding telemetry shows failed description/mail candidate work plus ken.w web auth, but no preserved successful natalie.a login, password reset, or web action attributable to this session. nate.h and vincent.g are live FOREST <secret redacted> members like auditor, but no credential/TGT was recovered for any of the three.HighStop with checkpoint before broader rediscovery; resume only from a precise live-supported operator recovery lead.
2026-06-06T09:06:31ZPrepared older escaped-oracle helpers locally and attempted remote restage/verification via scp and htbctlenum/remote-exploits-list.txtThe active workspace now has the older flexible /Login oracle helpers plus a Kerberos-backed impacket LDAP sanity helper, but Pwnbox SSH to <TARGET> timed out before helper sync or remote exploit verification completed. No live target action or mutation occurred.HighRecheck Pwnbox SSH, then sync helpers and rerun the narrow existence sweeps.
2026-06-06T09:20:08ZRemote SSH recheck and first rebuilt oracle batch attemptsenum/oracle-exists-web-support-core.txt, enum/oracle-exists-forest-core.txt, enum/pwnbox-ssh-recheck.txtThe Pwnbox remained unreachable over SSH, so the first Web Support / Forest Management core-attribute existence sweeps never started on the live target. The first direct impacket LDAP sanity-check command was also blocked locally by the harness because its output path was under enum/ instead of loot/. Treat all of this as infrastructure/output-gate failure, not negative oracle or LDAP evidence.HighAfter SSH recovery, rerun the impacket helper with loot-scoped output and then start the narrow existence sweeps.
2026-06-06T22:33:11ZDirect SSH check against replacement Pwnbox and current target respawnenum/pwnbox-ssh-recheck-<TARGET>.txtNew Pwnbox <TARGET> is reachable, tun0 is still <TARGET>, and the new live target <TARGET> responds to ping. Continuity workspace remains local <TARGET>-Hercules, but remote workspace must be restaged on this fresh Pwnbox before oracle execution.HighRebind target-state.json to the new Pwnbox/target, create the remote continuity workspace, sync the rebuilt oracle helpers, and rerun existence sweeps.
2026-06-06T22:47:21ZRebuilt /Login oracle existence sweeps against Web Support and Forest Management core note-style attributesenum/oracle-exists-web-support-core.txt, enum/oracle-exists-forest-core.txtAll tested description / info / comment / adminDescription values returned NO for Web Support and Forest Management. This is current live-negative evidence for those specific attributes only; the oracle itself remained healthy.HighWiden to other allowed attributes before attempting extraction.
2026-06-06T22:52:24ZOracle existence sweeps against Security Helpdesk, Helpdesk Administrators, and Recruitment Managers phone attributesenum/oracle-exists-security-helpdesk-phones.txt, enum/oracle-exists-helpdesk-admins-phones.txt, enum/oracle-exists-recruitment-managers-phones.txttelephoneNumber returned MATCH across all tested users in the three priority classes, while mobile, pager, and ipPhone returned NO. This confirms the rebuilt oracle is live and selective on the current respawn.HighExtract a small masked sample to classify the telephoneNumber pattern and keep searching for higher-value attribute hits.
2026-06-06T23:10:36ZWeb Support phone-attribute existence sweep and masked greedy extraction samplesenum/oracle-exists-web-support-phones.txt, enum/oracle-greedy-stephen-phone.txt, enum/oracle-greedy-mark-phone.txttelephoneNumber also exists for all three Web Support users. Masked greedy extraction for stephen.m and mark.s produced ordinary office-number shape (+XX <secret redacted>), not an obvious credential pattern.MediumDo not convert phone values into guesses; finish the remaining high-value existence coverage.
2026-06-06T23:18:23ZFinal core note-style sweeps for Security Helpdesk, Helpdesk Administrators, and Recruitment Managers plus extension-attribute passesenum/oracle-exists-security-helpdesk-core.txt, enum/oracle-exists-helpdesk-admins-core-retry.txt, enum/oracle-exists-recruitment-managers-core.txt, enum/oracle-exists-*-extensions.txtCore note-style attributes stayed NO across all remaining priority classes. extensionAttribute1-15 were all NO where the site remained responsive; the stephen.m extension pass saw transient /Login HTTPS timeouts on attrs 1-8, which are transport noise rather than target-positive hits.HighCurrent oracle rebuild is validated but has not yet recovered an operator bridge; next pass should target mail/url/org attrs or a loot-scoped impacket LDAP sanity check once a valid ken.w TGT is re-established.
2026-06-06T23:35:18ZCompleted remaining allowed /Login oracle coverage for Forest Management, Web Support, Security Helpdesk, Helpdesk Administrators, and Recruitment Managersenum/oracle-exists-forest-mailweb.txt, enum/oracle-exists-forest-org.txt, enum/oracle-exists-web-support-mailweb.txt, enum/oracle-exists-web-support-org.txt, enum/oracle-exists-security-helpdesk-mailweb.txt, enum/oracle-exists-security-helpdesk-org.txt, enum/oracle-exists-helpdesk-admins-mailweb.txt, enum/oracle-exists-helpdesk-admins-org.txt, enum/oracle-exists-recruitment-managers-mailweb.txt, enum/oracle-exists-recruitment-managers-org.txtAll remaining mail, url, wWWHomePage, physicalDeliveryOfficeName, and title checks were live-negative. The only fresh hits were department on natalie.a and bob.w; masked extraction summaries classify both as ordinary org-style two-word values, not credential-shaped bridge material.HighPreserve raw department loot under loot/ and pivot to rebuilding fresh live ken.w authentication material before any impacket LDAP sanity pass.
2026-06-06T23:45:47ZKerberos revalidation attempt for preserved ken.w material on current respawnloot/live-ken-tgt-revalidate-199-current.txt, loot/ken-ccache-kvno-validate.txt, enum/evaluator-privesc-20260607T000011Z.txtThe currently mirrored loot/ken.w.pw no longer yields a TGT on <TARGET>, and the preserved remote ken.w.ccache is gone, so there is no current valid ken.w Kerberos material available for the planned impacket LDAP sanity check. This is a live blocker, not an LDAP-tooling result.HighDo not run ESC3 or the impacket LDAP helper yet; rebuild current live ken.w access first, then retry the Kerberos-backed sanity pass.
2026-06-07T00:50:48ZRestaged continuity workspace to replacement Pwnbox and ran remote preflight through htbctlenum/respawn-preflight-20260607.txtReplacement Pwnbox workspace is live, tun0 is <TARGET>, /etc/hosts resolves hercules.htb and dc.hercules.htb to <TARGET>, target pings, and HTTPS /Login responds normally.HighRun the narrow description-mutation reset branch that previously recovered ken.w.
2026-06-07T00:56:05ZRan target-aware description-mutation reset branch through htbctlenum/description-mutations-reset-20260607.txtThe narrow reset pass again recovered a fresh live ken.w credential/TGT on <TARGET>, restoring a valid low-privileged web/domain foothold from preserved material.HighUse the fresh ken.w ccache to run the loot-scoped authenticated LDAP sanity pass only against bridge-relevant users.
2026-06-07T01:03:31ZPatched and reran the impacket Kerberos LDAP helper against bridge-relevant users onlyloot/ldap-sanity-bridge-20260607d.txt, loot/ldap-bridge-*.jsonAuthenticated LDAP now works with the rebuilt ken.w TGT. The bridge-only pass confirms expected memberships and state: natalie.a is Web Support, bob.w is Recruitment Managers with ordinary department=Web Administrators, stephen.m is Security Helpdesk, auditor / nate.h / vincent.g are Forest Management, and fernando.r is still disabled in Smartcard Operators. No operator credential, secret-bearing attribute, or operator TGT was recovered.HighStop at a meaningful checkpoint; ESC3 remains gated until a supported operator bridge is recovered.
2026-06-07T01:30:52ZRan bounded FormsAuth bridge-name validation for natalie.a, bob.w, stephen.m, auditor, nate.h, and vincent.g against only /Home/Mail, /Home/Account, /Home/Downloads, /Home/Security, and /Home/Formsenum/formsauth-bridge-name-validation.txt, raw loot/formsauth-bridge-validation-20260607T013039Z/Forged ticket Names were reflected into the portal and changed per-user body hashes, but they yielded no new usernames beyond the forged principal, no downloadable filenames, no password/account-change bridge beyond the already-known web-admin reset view, and no operator-specific text. This closes the ticket-name FormsAuth gap negative.HighRefresh BloodHound with the fresh ken.w TGT and check only for current graph drift.
2026-06-07T01:33:20ZCollected fresh BloodHound data with the rebuilt ken.w TGT against <TARGET>, mirrored the refresh JSON, and ran a drift-focused parserenum/bloodhound-ken-refresh-20260607.txt, enum/bh-ken-refresh_20260606213256_*.json, enum/bloodhound-refresh-drift-analysis.txtFresh BloodHound shows no current path from owned ken.w to Web Support, Security Helpdesk, Recruitment Managers, Forest Management, or fernando.r. Group placement and key ACL relationships remain as previously validated: natalie.a in Web Support, bob.w in Recruitment Managers, stephen.m in Security Helpdesk, auditor/nate.h/vincent.g in Forest Management, fernando.r disabled in Smartcard Operators, Web Support still has inherited GenericWrite over web-department users such as bob.w, and Security Helpdesk / Helpdesk Administrators still have inherited ForceChangePassword over auditor, nate.h, vincent.g, and fernando.r. There is still no edge proving ken.w can currently reach any of those controlling groups or users.HighKeep ESC3 gated; seek a new narrow bridge lead instead of repeating covered web/oracle/BloodHound work.
2026-06-07T03:13:00ZRan the final authenticated LDAP secret-attribute audit with the live ken.w TGT across controlling-group members plus relevant Web Department context usersenum/ldap-secret-attr-audit-20260607-run.txt, enum/ldap-secret-audit-20260607-summary.json, raw loot/ldap-secret-audit-20260607/*.jsonAll controlling-group and Forest Management targets were negative for the requested note/<password redacted> secret attributes. The only credential-shaped hit was johnathan.j description with length 23 and SHA-256 <hash redacted>; no controlling-group credential or operator TGT was recovered from the audit itself.HighValidate the single allowed johnathan.j candidate once, then stop unless it directly yields a supported bridge.
2026-06-07T03:15:27ZValidated the current direct-LDAP johnathan.j description candidate exactly once via Kerberosenum/johnathan-j-ldap-description-single-validation-20260607.txt, enum/johnathan-j-ldap-description-single-validation-result.json, enum/johnathan-j-ldap-description-comparison.jsonThe current LDAP johnathan.j description candidate produced a valid TGT on first validation. It is a Web Department context credential, not a controlling-group or operator credential, and it does not match the preserved loot/oracle-current-prefix.txt material by length/hash. Per stop rules, this continuation does not reopen a broad johnathan.j branch or unblock ESC3.HighStop cleanly; request a narrow intended-transition hint into Helpdesk Administrators, Security Helpdesk, Web Support, Recruitment Managers, or Forest Management before any further action.
2026-06-07T04:36:52ZRan the single bounded forged-admin /Home/Forms upload validation with a minimal UNC-referencing ODT canary and a short SMB/Responder observation windowenum/admin-upload-canary-summary-20260607.txt, raw remote loot/admin-upload-canary-20260607T043541Z/ on the Pwnbox workspaceForged web_admin + Web Administrators reached the authenticated Forms POST path and returned the normal Forms page, but the bounded observation window recorded no outbound SMB authentication, no file fetch, no credential material, and no new user/control-group bridge. This closes the admin-upload / Bad-ODF / coerced-auth public-source delta negative for the current live state.HighStop autonomous work and ask for the exact narrow intended-transition hint from the decisive brief.

Validation Gate

AnchorExpectedStatusEvidence
Target reachable over HTB VPN<TARGET> liveMATCHEDPwnbox enum/ping-target.txt
Windows DC-like service setDNS/Kerberos/LDAP/SMB/RPC/WinRM SSLMATCHEDPwnbox nmap/services.nmap
Domainhercules.htbMATCHEDPwnbox enum/ldap-rootdse.txt, enum/https-cert.txt
Hostnamedc.hercules.htb / DCMATCHEDPwnbox enum/ldap-rootdse.txt, nmap/services.nmap
Web stackIIS/ASP.NET on 80/443MATCHEDPwnbox enum/http-headers.txt, enum/web-index-summary.txt
TLS certificateCN/SAN hercules.htbMATCHEDPwnbox enum/https-cert.txt
LDAP/SMB postureNTLM may be disabled/restrictedPARTIAL MATCHPwnbox enum/smb-null-guest.txt shows <secret redacted>; more auth testing needed
AD CS surfaceCA/templates<secret redacted>Requires credentials or deeper enumeration

Gate decision: 6+ core anchors matched. Public research is credible enough to use as advisory guidance, but every exploitation step still requires live proof.

Coordinator Update - 2026-06-10

  • User supplied fresh Pwnbox profex0r@<TARGET> and active target IP <TARGET>.
  • target-state.json was rebound to the new Pwnbox/target and marked pending_revalidation for route/attacker IP.
  • New research checkpoint added: narrow-hint-research-2026-06-10.md.
  • Fresh execution handoff added: agent-handoff-root-resume-2026-06-10.md.
  • Current root strategy is to act on the narrow hint: recover Web Support or Helpdesk Admin material, or prove direct <secret redacted>$ control. Reopen RBCD only for the specific <secret redacted>$ / SPN-less U2U session-key path.
  • htbctl check passed and lint_htb_state_secrets.py found no likely raw secrets in state files before agent launch.

Root Attempt Checkpoint - 2026-06-10

  • The upstream operator bridge was recovered live on target <TARGET>.
  • Proven chain: ken.w rebuild -> public candidate validation -> natalie.a -> Shadow Credentials on bob.w -> raw Kerberos LDAP ModifyDN move of stephen.m into Web Department -> Shadow Credentials on stephen.m -> auditor password reset -> Auditor TGT.
  • Auditor-driven ESC3 setup progressed through Forest Migration DACL grant, fernando.r enable/reset/TGT, and Fernando enrollment-agent PFX issuance.
  • <secret redacted>$ direct reset with Auditor was tested and failed with LDAP insufficientAccessRights; that narrow RBCD branch is not available from Auditor alone.
  • Existing Administrator-named PFX candidates were authenticated with bounded Certipy checks. All three failed as Administrator because their certificate identity is Fernando, not Administrator.
  • Current blocker is narrow ADCS OBO/PFX identity or retrieval tooling, not web/oracle/BloodHound rediscovery.
  • Sanitized checkpoint: checkpoint-root-blocker-20260610.md.

Pause / Resume Update - 2026-06-10

  • Work paused intentionally because the remaining ADCS tooling issue is likely more than a 30-minute task unless request retrieval immediately works.
  • Resume handoff added: resume-root-adcs-blocker-2026-06-10.md.
  • session-resume.md, memory-summary.md, attack-map.md, custom-exploit-notes.md, and dead-ends.md were updated so future work resumes from the ADCS OBO blocker only.
  • Resume target is not broad enumeration. Resume target is: produce a real Administrator identity/SID certificate, authenticate, and capture C:\Users\Administrator\Desktop\root.txt into loot/root.txt.

Root Capture Update - 2026-06-13

  • Sonnet 4.6 research was useful as an advisory chain, but local evidence corrected one point: Ashley OBO/certificate authentication had already been proven. The missing live bridge was the Forest Migration / IT SUPPORT delegation step before taking over IIS_Administrator.
  • Revalidated Ashley execution with pypsrp default-cache Kerberos: hercules\ashley.b, host dc, and aCleanup.ps1 on Ashley's Desktop. Evidence: enum/pypsrp-ashley-defaultcache-retry-20260613.txt.
  • Ran the intended cleanup path, granted IT SUPPORT control over Forest Migration through the already controlled operator path, reran cleanup, and validated Ashley/IT SUPPORT write rights over IIS_Administrator. Evidence: enum/ashley-cleanup-and-iis-bridge-validation-20260613.txt, enum/post-it-support-cleanup-iis-admin-validation-summary-20260613.txt.
  • Enabled/reset IIS_Administrator and validated a Kerberos TGT. Evidence: enum/iis-administrator-enable-reset-summary-20260613.txt, enum/iis-administrator-gettgt-summary-20260613.txt.
  • Reset <secret redacted>$, generated a suitable RC4-backed TGT, aligned the account hash to the ticket session key, and obtained an Administrator CIFS ticket through U2U/RBCD. Evidence: enum/iis-webserver-reset-gettgt-summary-20260613.txt, enum/iis-webserver-u2u-rbcd-root-summary-20260613.txt.
  • Captured C:\Users\Admin\Desktop\root.txt through the Administrator CIFS ticket. Raw flag is stored only at loot/root.txt and validates as a 32-character hexadecimal flag.

Attack Map

Hosts

IPHostnameOSStatusReachable From
<TARGET>dc.hercules.htb / DCWindows DClivePwnbox <TARGET>

Services

HostPortServiceVersionAuthNotes
dc.hercules.htb53DNSSimple DNS Plusn/aAXFR denied
dc.hercules.htb80HTTPMicrosoft IIS 10.0publicRedirects to HTTPS
dc.hercules.htb88KerberosMicrosoft Windows KerberosdomainClock skew about 4m30s
dc.hercules.htb389/636/3268/3269LDAP/GCActive Directory LDAPbind required for subtreeRootDSE anonymous allowed
dc.hercules.htb443HTTPSMicrosoft IIS 10.0 / ASP.NETpublicHercules Corp; /Login SSO form
dc.hercules.htb445SMBSMB2/3null/guest rejectedSigning required; <secret redacted> with null/guest
dc.hercules.htb5986WinRM SSLMicrosoft HTTPAPI 2.0creds requiredCandidate later auth surface
dc.hercules.htb9389ADWS.NET Message Framingcreds requiredAD management surface

Credentials

SourceUsernameSecretTypeTested OnResult

Attack Paths

#PathStatusEvidence
1ken.w -> natalie.a -> Shadow Creds on bob.w -> bob.w moves stephen.m -> Shadow Creds on stephen.m -> reset auditorproven live 2026-06-10loot/public-priority-validation-20260610.txt, loot/shadow-bob-from-natalie-20260610b.txt, loot/move-stephen-to-web-20260610.json, loot/shadow-stephen-from-natalie-20260610.txt, loot/live-auditor-tgt-20260610.txt
2auditor -> Forest Migration control -> fernando.r enable/reset/TGT -> EnrollmentAgent PFXproven live 2026-06-10loot/esc3-race-auditor-20260610b.txt, loot/fernando-ea-cert-retry-dynamic-20260610.txt
3fernando.r EnrollmentAgent PFX -> Ashley OBO cert -> Ashley pypsrp -> aCleanup.ps1 -> IT SUPPORT / Forest Migration bridge -> IIS_Administrator -> <secret redacted>$ -> U2U/RBCD Administrator CIFS -> rootsolved live 2026-06-13enum/pypsrp-ashley-defaultcache-retry-20260613.txt, enum/iis-webserver-u2u-rbcd-root-summary-20260613.txt, loot/root.txt

Trust Edges

  • natalie.a can abuse Shadow Credentials on bob.w and, after the move, stephen.m.
  • bob.w can move stephen.m into Web Department by Kerberos LDAP ModifyDN.
  • stephen.m can reset auditor.
  • auditor can prepare the Forest Migration / fernando.r ESC3 finish.
  • ashley.b can execute the cleanup script after ESC3 OBO/cert auth.
  • IT SUPPORT / Forest Migration delegation enables the IIS_Administrator bridge.
  • IIS_Administrator can reset <secret redacted>$; <secret redacted>$ is the RBCD delegatee on the DC.

Memory Summary

Scope

  • Platform: Hack The Box
  • Machine: Hercules
  • Difficulty/OS: Insane / Windows
  • Domain: hercules.htb
  • DC: dc.hercules.htb
  • Latest active target IP tracked locally: <TARGET>
  • Current completion state: <secret redacted>

This summary is sanitized. Raw flags, <password redacted>, hashes, tickets, PFX files, private keys, cookies, forged tokens, and credential material remain under loot/ only.

Current State

  • User flag was previously captured from the live target and stored under loot/ only.
  • Root flag has not been captured; loot/root.txt is missing.
  • The previous missing operator/control-group bridge is now solved for the 2026-06-10 run.
  • The current blocker is only the final ADCS ESC3 on-behalf-of certificate identity/retrieval step.

Validated 2026-06-10 Chain

The live chain reached the ADCS finish stage:

text
ken.w
-> natalie.a
-> Shadow Credentials on bob.w
-> bob.w Kerberos LDAP ModifyDN move of stephen.m into Web Department
-> Shadow Credentials on stephen.m
-> stephen.m resets auditor
-> auditor TGT
-> fernando.r enable/reset/TGT
-> fernando.r EnrollmentAgent PFX

High-signal evidence:

  • loot/public-priority-validation-20260610.txt
  • loot/shadow-bob-from-natalie-20260610b.txt
  • loot/live-bob-tgt-20260610b.txt
  • loot/move-stephen-to-web-20260610.json
  • loot/shadow-stephen-from-natalie-20260610.txt
  • loot/live-stephen-tgt-20260610.txt
  • loot/<password redacted>
  • loot/live-auditor-tgt-20260610.txt
  • loot/fernando-ea-cert-retry-dynamic-20260610.txt

Current Blocker

The remaining missing proof is:

text
real Administrator certificate/ccache/hash -> Administrator-equivalent access -> root.txt

Certipy on-behalf-of requests reached the CA but hit <secret redacted> during RPC retrieval. Some private-key artifacts were saved, but no confirmed Administrator PFX resulted from those attempts.

certi.py produced Administrator-named PFX files, but validation showed the contained identity was fernando.r, not administrator, so those files cannot be used for Administrator PKINIT.

Reference evidence:

  • checkpoint-root-blocker-20260610.md
  • loot/admin-pfx-auth-summary-20260610.json
  • loot/admin-pfx-auth-validation-20260610.txt
  • loot/remote-admin-artifact-list-20260610b.txt

Do Not Repeat

Do not repeat without contradictory evidence:

  • broad /Login oracle sweeps,
  • note-style LDAP attributes for controlling groups,
  • extensionAttribute1-15 sweeps,
  • mail, url, wWWHomePage, physicalDeliveryOfficeName, department, and title coverage,
  • phone-number extraction as credential guesses,
  • authenticated LDAP secret-attribute audit across controlling groups,
  • FormsAuth ticket-name validation against priority users,
  • fresh BloodHound drift from the same foothold,
  • forged-admin /Home/Forms upload plus Bad-ODF/coerced-auth canary,
  • web/LFI branch as a primary route,
  • stale prior-respawn johnathan.j material,
  • password spraying old candidates,
  • broad document macro/callback payload families,
  • old RBCD-to-DC branch,
  • issuing more Administrator-named PFX variants without changing the CMC/request-generation method.

Resume Guidance

Resume only from the narrow ADCS blocker:

  1. Confirm whether a Certipy request ID can be retrieved and paired with the saved Administrator private key.
  2. If not, use PForgeCert / pyForgeCert-style CMC generation, or Windows-native certreq/Certify.exe + Rubeus.
  3. Validate that the resulting PFX identity is actually Administrator before attempting root access.
  4. Capture C:\Users\Administrator\Desktop\root.txt to loot/root.txt.

Realistic remaining time: 45-90 minutes unless the retrieve-and-pair path works immediately.

Session Resume

Last updated: 2026-06-13T11:30:00Z

Current State

  • Completion state: COMPLETE.
  • Phase: COMPLETE.
  • Active target: <TARGET> / dc.hercules.htb / hercules.htb.
  • Active Pwnbox: profex0r@<TARGET>.
  • User flag: previously captured; raw value remains under loot/ only.
  • Root flag: captured and mirrored to local loot/root.txt; raw value remains under loot/ only.

2026-06-13 Root Capture

The old ADCS Administrator OBO blocker was bypassed by following the Ashley/IIS bridge and validating every transition:

text
fernando.r EnrollmentAgent PFX
-> ESC3 OBO for ashley.b
-> Ashley pypsrp Kerberos execution
-> aCleanup.ps1
-> IT SUPPORT / Forest Migration delegation
-> IIS_Administrator enable/reset/TGT
-> <secret redacted>$ reset/TGT
-> RC4 session-key/hash alignment
-> getST -u2u Administrator CIFS ticket
-> SMB C$ root.txt capture

Key evidence:

  • enum/pypsrp-ashley-defaultcache-retry-20260613.txt
  • enum/ashley-cleanup-and-iis-bridge-validation-20260613.txt
  • enum/post-it-support-cleanup-iis-admin-validation-summary-20260613.txt
  • enum/iis-administrator-enable-reset-summary-20260613.txt
  • enum/iis-administrator-gettgt-summary-20260613.txt
  • enum/iis-webserver-reset-gettgt-summary-20260613.txt
  • enum/iis-webserver-u2u-rbcd-root-summary-20260613.txt
  • loot/root.txt

Strict htbctl complete --strict-local-loot passed on 2026-06-13. Do not reopen exploitation branches unless a cleanup or writeup issue appears.

What Changed On 2026-06-10

The old missing-transition blocker was crossed. The live chain now reaches the ADCS finish stage:

text
ken.w access rebuilt
-> natalie.a recovered/validated
-> natalie.a Shadow Credentials on bob.w
-> bob.w Kerberos LDAP ModifyDN move of stephen.m into Web Department
-> natalie.a Shadow Credentials on stephen.m
-> stephen.m reset auditor
-> auditor TGT validated
-> Forest Migration DACL / fernando.r enable-reset-TGT
-> fernando.r EnrollmentAgent PFX issued

Important evidence:

  • loot/public-priority-validation-20260610.txt
  • loot/shadow-bob-from-natalie-20260610b.txt
  • loot/live-bob-tgt-20260610b.txt
  • loot/move-stephen-to-web-20260610.json
  • loot/shadow-stephen-from-natalie-20260610.txt
  • loot/live-stephen-tgt-20260610.txt
  • loot/<password redacted>
  • loot/live-auditor-tgt-20260610.txt
  • loot/fernando-ea-cert-retry-dynamic-20260610.txt

Current Narrow Blocker

Administrator-equivalent authentication is still missing.

The remaining issue is ADCS ESC3 on-behalf-of certificate identity/retrieval tooling, not the exploit chain.

Observed behavior:

  • Certipy RPC on-behalf-of requests reached the CA and produced request IDs, but retrieval failed with <secret redacted>.
  • Certipy saved private-key artifacts for Administrator-named requests, but no usable Administrator PFX was produced from those attempts.
  • certi.py generated Administrator-named PFX files, but validation showed the certificate identity is fernando.r, not administrator.
  • No Administrator ccache/hash was produced.
  • No root flag was read.

Latest blocker checkpoint:

  • checkpoint-root-blocker-20260610.md
  • loot/admin-pfx-auth-summary-20260610.json
  • loot/admin-pfx-auth-validation-20260610.txt
  • loot/remote-admin-artifact-list-20260610b.txt

Do Not Repeat

Do not reopen these unless new contradictory live evidence appears:

  • broad web/LFI work,
  • FormsAuth ticket-name validation,
  • /Login oracle sweeps,
  • BloodHound drift checks from the same foothold,
  • forged-admin upload / Bad-ODF / coerced-auth branch,
  • old bob.w-to-DC RBCD branch,
  • password spraying,
  • document macro/callback branches,
  • more Administrator-named PFX variants without a distinct CMC/request encoding change.

Resume Plan

Resume only from the ADCS OBO finish stage.

  1. Revalidate current artifacts and cleanup state:

- Pwnbox route and /etc/hosts.

- loot/auditor.ccache.

- loot/fernando.r.ccache.

- loot/fernando.r.pfx.

- saved Administrator private keys and request IDs from the Certipy logs.

  1. Try the shortest finish first:

- Retrieve issued request IDs only if the paired saved private key exists.

- Pair the retrieved certificate with the correct saved key.

- Validate the resulting PFX identity before authentication.

  1. If retrieval still fails:

- Replace the CMC/on-behalf-of generator with PForgeCert / pyForgeCert-style tooling, or equivalent, so the request explicitly produces an Administrator identity/SID certificate.

- Use fernando.r.pfx as the enrollment-agent certificate.

- Target hercules\administrator on template SmartcardLogon.

  1. If Linux-side CMC tooling remains unreliable:

- Use a stable Windows-native path (certreq/Certify.exe + Rubeus) through RDP or wmiexec.

- Avoid evil-winrm for certificate signing operations because prior evidence showed memory/runtime instability there.

  1. Once a real Administrator PFX or ccache exists:

- Authenticate via PKINIT.

- Read C:\Users\Administrator\Desktop\root.txt into loot/root.txt.

- Update target-state.json to <secret redacted>, then COMPLETE after docs and checks.

Time Estimate

  • Fast case: 15-30 minutes if request retrieval plus saved-key pairing works.
  • Realistic case: 45-90 minutes if a new CMC generator is needed.
  • Bad case: 2+ hours if Windows-native tooling has to be staged and stabilized.

Checks Before Stopping

Run:

bash
python3 scripts/htbctl.py check <TARGET>-Hercules
python3 scripts/lint_htb_state_secrets.py <TARGET>-Hercules

Latest known check status: both passed after the 2026-06-10 checkpoint.

Notes

State-Mutating Actions

Raw secrets and flags stay under loot/ only. This table records target-impacting actions without secret values.

Time UTCIntended ActionPre-State / GateResultReturn Path
2026-06-06T05:46:47ZRevalidate respawn anchors and prepare latest Certipy before timed ADCS ESC3 mutationLocal htbctl check passed; root path supported by prior live evidence; remote htbctl requires runtime Pwnbox password env varBlocked before SSH because <secret redacted> / SSHPASS is missing from the agent environment; no target mutation performedn/a
2026-06-06T22:33:11ZRebind continuity workspace to new Pwnbox/respawn and restage escaped-oracle helpersVerified replacement Pwnbox <TARGET> has VPN <TARGET> and reaches <TARGET>; no target mutation yetProceeding to recreate ~/htb/<TARGET>-Hercules on the fresh Pwnbox, sync oracle helpers, and run existence checks before any credential mutationNo target-side cleanup needed; workspace-only restage
2026-06-10T05:49:29ZShadow Credentials from natalie.a to bob.wnatalie.a recovered/validated; Web Support GenericWrite over Web Department usersSucceeded and produced bob.w authentication material under loot/Cleanup may restore object state on target reset; rerun only if artifacts expire.
2026-06-10T06:00:17ZKerberos LDAP ModifyDN moving stephen.m into Web Departmentbob.w TGT validated; pre-state captured in loot/stephen-dn-before-move-20260610b.txtFirst command returned nonzero, but follow-up state showed the move had taken effect.Target cleanup may move the object back; re-check DN before relying on it.
2026-06-10T06:01:22ZShadow Credentials from natalie.a to stephen.m after the movestephen.m now under Web Department inheritanceSucceeded and produced stephen.m authentication material under loot/Cleanup may invalidate state; rerun only from this precise point if needed.
2026-06-10T06:04:18Zstephen.m reset of auditorstephen.m TGT validated; auditor DN capturedSucceeded; auditor TGT validated immediately after.If cleanup resets password, rerun from stephen.m material or rebuild bridge chain.
2026-06-10T06:08:10ZAuditor-driven ESC3 race through fernando.rauditor TGT validated; Forest Migration/Smartcard Operators path liveAdvanced through fernando.r enable/reset/TGT and EnrollmentAgent PFX issuance. Administrator OBO failed at certificate identity/retrieval.Resume from ADCS OBO tooling only if current artifacts remain valid; otherwise rerun the minimum chain.

Exploit Iterations

Time UTCScript/TechniqueResultNext Adjustment
2026-05-07T22:27:17Zlogin_probe.py and targeted /Login LDAP filter injection probesAnti-CSRF aware login harness distinguishes MATCH vs NO via response text. description extraction is confirmed and partially recovered.Continue from saved prefix using small targeted probes. Avoid ldap_oracle_enum_fast.py because it caused noisy/rate-limit behavior.
2026-06-10T06:40:00ZADCS ESC3 final OBO certificate attemptsCertipy reached CA request IDs but hit <secret redacted> retrieval errors; certi.py created Administrator-named PFX files that validated as fernando.r, not Administrator.Stop issuing more variants with the same request path. Next attempt must retrieve/pair the saved Certipy key with the issued cert or use a different CMC generator such as PForgeCert/pyForgeCert or Windows-native certreq/Certify.exe.

Dead Ends

Time UTCPathEvidenceReasonRevisit Condition
2026-05-07T22:27:17ZBroad login-oracle character scansPwnbox enum/description-after-*The app slows under long scans and Pwnbox became unreachable during probing. Broad scans also waste requests once a likely prefix exists.Only resume with short targeted probes from loot/oracle-current-prefix.txt after Pwnbox health is stable.
2026-06-07T01:30:52ZBounded FormsAuth ticket-name validation for bridge identitiesenum/formsauth-bridge-name-validation.txt, raw loot/formsauth-bridge-validation-20260607T013039Z/Forged ticket Names for natalie.a, bob.w, stephen.m, auditor, nate.h, and vincent.g only reflected the forged identity into the same portal views. No new identity-specific mail/account/download/security/forms bridge, filename disclosure, operator text, or credential/reset path appeared.Revisit only if new source/live evidence shows additional portal routes or server-side lookup behavior beyond the five validated /Home/* paths.
2026-06-07T01:33:20ZFresh BloodHound drift check from rebuilt ken.w footholdenum/bloodhound-ken-refresh-20260607.txt, enum/bloodhound-refresh-drift-analysis.txtThe current live graph preserves the previously known Web Support -> web user GenericWrite and Security Helpdesk/Helpdesk Administrators -> operator ForceChangePassword relationships, but ken.w still has no path into those groups or users. No new drift edge reaches Web Support, Security Helpdesk, Recruitment Managers, Forest Management, or fernando.r.Revisit only after a new live foothold/credential or contradictory AD evidence appears; do not refresh BloodHound again as a primary action from the same ken.w state.
2026-06-07T03:13:00ZFinal authenticated LDAP secret-attribute audit from live ken.w into the controlling groupsenum/ldap-secret-attr-audit-20260607-run.txt, enum/ldap-secret-audit-20260607-summary.json, raw loot/ldap-secret-audit-20260607/*.jsonAll controlling-group and Forest Management targets were negative for the requested secret-bearing attributes. The only credential-shaped LDAP hit was johnathan.j description (length 23, SHA-256 <hash redacted>), which validated to a TGT once but is outside the controlling groups and did not itself recover an operator/control-group credential.Revisit only with a narrow hint or exact minimum bridge proof from johnathan.j or another Web Department user into bob.w, web_admin, or a supported operator. Do not rerun broad LDAP secret-attribute audits from the same ken.w state.
2026-06-07T04:36:52ZBounded forged-admin upload / Bad-ODF / coerced-auth validation from the exact /Home/Forms POST pathenum/admin-upload-canary-summary-20260607.txt, raw remote loot/admin-upload-canary-20260607T043541Z/ on the Pwnbox workspaceForged web_admin + Web Administrators reached the upload path and the server returned the normal authenticated Forms page, but the short SMB/Responder observation window recorded no outbound authentication, no file fetch, no credential material, and no new bridge. This was the last bounded public-source delta left open.Revisit only if a narrow hint or new live source evidence proves a different upload-processing component, route, or trigger beyond the exact validated /Home/Forms forged-admin POST path.
2026-06-10T06:40:00ZReusing existing Administrator-named certi.py PFX candidates for Administrator PKINITloot/admin-pfx-auth-summary-20260610.json, loot/admin-pfx-auth-validation-20260610.txtAll validated PFX candidates contained fernando.r identity material, not Administrator identity material, and produced no Administrator ccache/hash. The files are misleadingly named and should not be retried as-is.Revisit only if the PFX is regenerated with a corrected CMC/on-behalf-of request or if a retrieved Certipy-issued certificate is paired with the correct saved private key and validated as Administrator.
2026-06-13T06:10:18Zadcs-existing-admin-pfx-retry<secret redacted>dead-ends.mdExisting Administrator-named PFX candidates authenticated as Fernando rather than Administrator during prior validation.
2026-06-13T06:29:18Zadcs-certipy-rpc-obo<secret redacted>loot/admin-obo-cert-smartcardlogon-20260613.txtCertipy v5 OBO requests with both EnrollmentAgent and EnrollmentAgentOffline signing certs created request IDs but failed with <secret redacted>; matching retrieval failed with unknown 0x1 and no Administrator certificate/PFX was produced.
2026-06-13T06:54:45Zwindows-native-winrm-certreq<secret redacted>enum/winrm-kerberos-controlled-principals-exec-matrix-20260613.txtControlled principals do not have usable WinRM shell authorization over HTTPS Kerberos; Auditor reaches WSMan but receives AccessDenied, and no alternate controlled user succeeds.
2026-06-13T08:16:35Zdcom-cmc-requestername-obo<secret redacted>loot/dcom-cmc-obo-admin-attrs-20260613.txtCustom Certipy-style CMC requestername request submitted over Certi DCOM reached CA but returned <secret redacted> with no certificate, even after adding SAN request attributes.
2026-06-13T08:41:22Zdcom-cmc-adminuser-obo<secret redacted>enum/dcom-cmc-obo-adminuser-summary-20260613c.txtCustom DCOM CMC OBO for hercules\\admin reached CA after Fernando was re-enabled, but CA returned <secret redacted> / 0x80094009 with no certificate. This matches EnrollmentAgentRights restricting Smartcard Operators to Domain Employees targets, and Admin is not an eligible target.
2026-06-13T09:02:59Zadcs-ashley-execution<secret redacted>enum/winrm-ashley-default-cache-identity-20260613.txtAshley certificate-authenticated principal has SMB read access but live WinRM and WMI command execution are denied: WSMan AccessDenied and WMI <secret redacted>.
2026-06-13T09:08:19Zashley-cleanup-shortcut<secret redacted>enum/ashley-live-writable-acl-check-20260613.txtcleanup.lnk and notice.eml are valid clues, but aCleanup.ps1 is not embedded, not visible in Ashley's Desktop over Users share, not recoverable via exposed SMB snapshots, and live Ashley/IT Support permissions do not show an Admin/Administrator or high-value reset path.
2026-06-13T09:14:13Zadcs-webadmin-eligible-obo<secret redacted>enum/webadmin-users-file-interest-search-20260613.txtweb_admin certificate issuance and authentication worked, but the real Kerberos identity exposed only read-only common shares, no usable WinRM/admin execution, and no interesting files in the broader Users tree. Prior forged FormsAuth web_admin upload branch is already closed.
2026-06-13T09:16:08Zadcs-eligible-target-admin-san<secret redacted>enum/eligible-target-admin-san-obo-validation-20260613.txtAllowed-target/admin-SAN CMC OBO issued successfully but mapped the certificate back to the allowed target web_admin, not Administrator. The injected Administrator SAN/SID request attributes were not honored for PKINIT identity.
2026-06-13T09:33:18Zforest-migration-primarygroupid-helpdesk-test<secret redacted>enum/primarygroup-helpdesk-probe2-20260613.txtForest Migration temp user creation is possible after a temporary OU grant, but AD rejects setting primaryGroupID to Helpdesk Administrators unless the user is already a member of that group. The temp user and OU grant were cleaned up, and no <secret redacted>$ reset was attempted.
2026-06-13T09:41:20Zforest-migration-shadow-principal<secret redacted>enum/auditor-configuration-writable-20260613.txtPAM/shadow-principal objects exist in Configuration, but auditor has no writable Configuration naming-context objects. Forest Migration OU create-child rights do not provide write access to CN=Shadow Principal Configuration, so this escalation is unsupported by current live evidence.