Hercules
Hercules is a sanitized machine note from the local HTB archive, organized for quick review by category, difficulty, evidence flow, and reusable operator
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.
Walkthrough flow
Confirm whether a Certipy request ID can be retrieved...
If not, use PForgeCert / pyForgeCert-style CMC...
Validate that the resulting PFX identity is actually...
Capture C:\Users\Administrator\Desktop\root.txt to...
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.
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-lootpassed 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:
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 setupThe 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:
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.txtKey sanitized evidence:
enum/pypsrp-ashley-defaultcache-retry-20260613.txtenum/ashley-cleanup-and-iis-bridge-validation-20260613.txtenum/post-it-support-cleanup-iis-admin-validation-summary-20260613.txtenum/iis-administrator-enable-reset-summary-20260613.txtenum/iis-administrator-gettgt-summary-20260613.txtenum/iis-webserver-reset-gettgt-summary-20260613.txtenum/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 UTC | Command / Action | Output File | Finding | Confidence | Next Action |
|---|---|---|---|---|---|
| 2026-05-07T18:19:10Z | Created workspace and advisory pre-research | Hercules-PreResearch/research.md | Public claims recorded as unvalidated | Medium | Validate live anchors from Pwnbox |
| 2026-05-07T18:21:00Z | Pwnbox setup + ping target | Pwnbox enum/pwnbox-interfaces.txt, enum/ping-target.txt | Pwnbox VPN IP <TARGET>; target reachable with TTL 127 | High | Run validation scans |
| 2026-05-07T18:21:00Z | Expected-port TCP scan | Pwnbox nmap/expected-quick.nmap | AD/DC expected ports open: 53, 80, 88, 135, 139, 389, 443, 445, 464, 593, 636, 3268, 3269, 5986, 9389 | High | Validate domain and web stack |
| 2026-05-07T18:25:00Z | HTTP/TLS/LDAP/SMB baseline | Pwnbox enum/http-headers.txt, enum/https-cert.txt, enum/ldap-rootdse.txt, enum/smb-null-guest.txt | IIS 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> | High | Add hosts and fingerprint web |
| 2026-05-07T18:28:00Z | Service/version scan | Pwnbox nmap/services.nmap | Host DC, Windows, AD LDAP/Kerberos, WinRM SSL, high RPC; clock skew ~4m30s | High | Proceed with advisory chain as validated hypothesis |
| 2026-05-07T18:28:00Z | Web baseline | Pwnbox enum/https-index.html, enum/web-index-summary.txt, enum/web-quick-paths.txt | Hercules Corp ASP.NET/IIS app; /Login exposes Hercules SSO with anti-CSRF token and client username regex | High | Build controlled login/LDAP injection oracle tests |
| 2026-05-07T22:27:17Z | /Login LDAP oracle extraction | Pwnbox enum/description-*, local loot/oracle-current-prefix.txt | Double-encoded LDAP filter injection confirmed. description prefix extraction produced a credential-like value; exact value still incomplete. | High | Resume from saved prefix, avoid broad scans, continue targeted extraction after Pwnbox returns |
| 2026-05-07T22:27:17Z | Pwnbox health check | SSH to <TARGET> | Pwnbox SSH timed out; local machine has no route to <TARGET>. Live exploitation paused on infrastructure, not target logic. | High | Restart/restore Pwnbox or provide new IP |
| 2026-06-06T05:46:47Z | python3 scripts/htbctl.py check ./<TARGET>-Hercules | terminal / target-state.json | Local harness check passed with zero errors and zero warnings. | High | Revalidate respawn anchors through Pwnbox. |
| 2026-06-06T05:46:47Z | Security context verification | terminal only | Security context loaded; authorization and practitioner profile verified without exposing PII. | High | Continue within authorized HTB scope. |
| 2026-06-06T05:46:47Z | htbctl remote preflight attempt | enum/evaluator-mutation-20260606T054647Z.txt | Remote execution did not start because <secret redacted> / SSHPASS is absent from the current agent environment. No target action or mutation occurred. | High | Export runtime Pwnbox secret in environment and rerun preflight. |
| 2026-06-06T07:35:39Z | htbctl run remote respawn preflight | enum/remote-respawn-preflight.txt | Pwnbox <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. | High | Restage corrected parser helpers and rerun the forge step from the Pwnbox workspace. |
| 2026-06-06T07:36:24Z | Restaged parse_lfi_and_forge.py and aspxauth_hmacsha256.js, then reran parser/forge through htbctl | enum/lfi-parse-forge-rerun.txt | Corrected parser worked: selected live root web.config, extracted live machineKey, parsed emails.json, and forged multiple FormsAuth variants under loot/. | High | Validate forged-role behavior against the five target routes by access effects only. |
| 2026-06-06T07:37:16Z | FormsAuth role validation with loot-scoped output | loot/formsauth-role-validation.txt | Forged 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. | High | Pivot back to the validated ESC3 chain and revalidate required auditor / fernando.r artifacts before mutation. |
| 2026-06-06T07:38:34Z | htbctl evaluate before ESC3 pivot | enum/evaluator-mutation-20260606T073834Z.txt | Decision Validate first: ESC3 remains the strongest path, but the current Pwnbox workspace lacks fresh auditor / fernando.r loot artifacts needed for the timed chain. | High | Rebuild or restage the minimal pre-ESC3 credential path, then rerun live ADCS anchor validation with loot-scoped output. |
| 2026-06-06T07:55:57Z | Current/prior Pwnbox loot inventory via htbctl run | enum/loot-inventory-current.txt, enum/loot-inventory-prior.txt | Current 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. | High | Determine whether the minimal pre-ESC3 chain can be rebuilt from current live foothold plus mirrored evidence. |
| 2026-06-06T08:06:00Z | Mirrored and parsed live BloodHound collection from the current Pwnbox workspace | enum/bloodhound-chain-interest.txt | Live 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. | High | Stop 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:57Z | Live ADCS anchor revalidation with latest Certipy and ken.w Kerberos | enum/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. | High | ESC3 finish remains valid once auditor authentication material is rebuilt; current checkpoint is blocked only on that prerequisite. |
| 2026-06-06T08:20:00Z | Local coordinator validation and finisher script hardening | auditor-rebuild-brief-2026-06-06.md, exploits/esc3_finish.py | Validated 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. | High | Rebuild the live path to auditor, then run the patched ESC3 finisher. |
| 2026-06-06T08:41:30Z | Remote helper TGT revalidation for ken.w | loot/live-ken-tgt-revalidate.txt | ken.w still obtains a fresh TGT; the current foothold remains live. | High | Use current live state to audit the natalie.a timing overlap and direct operator-recovery branch. |
| 2026-06-06T08:42:25Z | Remote LDAP attribute helper attempts for bridge/operator users | loot/live-operator-ldap-check.txt, loot/live-bridge-operator-attrs.txt | GSSAPI ldapsearch and plaintext bloodyAD attribute pulls both failed due remote auth-mechanism/tooling limits; no target mutation occurred. | High | Fall back to the current BloodHound JSON already collected from the live target. |
| 2026-06-06T08:45:17Z | Parsed current live BloodHound user/group JSON for timestamps and memberships | enum/bh-ken_20260606025008_users.json, enum/bh-ken_20260606025008_groups.json | natalie.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. | High | Stop with checkpoint before broader rediscovery; resume only from a precise live-supported operator recovery lead. |
| 2026-06-06T09:06:31Z | Prepared older escaped-oracle helpers locally and attempted remote restage/verification via scp and htbctl | enum/remote-exploits-list.txt | The 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. | High | Recheck Pwnbox SSH, then sync helpers and rerun the narrow existence sweeps. |
| 2026-06-06T09:20:08Z | Remote SSH recheck and first rebuilt oracle batch attempts | enum/oracle-exists-web-support-core.txt, enum/oracle-exists-forest-core.txt, enum/pwnbox-ssh-recheck.txt | The 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. | High | After SSH recovery, rerun the impacket helper with loot-scoped output and then start the narrow existence sweeps. |
| 2026-06-06T22:33:11Z | Direct SSH check against replacement Pwnbox and current target respawn | enum/pwnbox-ssh-recheck-<TARGET>.txt | New 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. | High | Rebind 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:21Z | Rebuilt /Login oracle existence sweeps against Web Support and Forest Management core note-style attributes | enum/oracle-exists-web-support-core.txt, enum/oracle-exists-forest-core.txt | All 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. | High | Widen to other allowed attributes before attempting extraction. |
| 2026-06-06T22:52:24Z | Oracle existence sweeps against Security Helpdesk, Helpdesk Administrators, and Recruitment Managers phone attributes | enum/oracle-exists-security-helpdesk-phones.txt, enum/oracle-exists-helpdesk-admins-phones.txt, enum/oracle-exists-recruitment-managers-phones.txt | telephoneNumber 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. | High | Extract a small masked sample to classify the telephoneNumber pattern and keep searching for higher-value attribute hits. |
| 2026-06-06T23:10:36Z | Web Support phone-attribute existence sweep and masked greedy extraction samples | enum/oracle-exists-web-support-phones.txt, enum/oracle-greedy-stephen-phone.txt, enum/oracle-greedy-mark-phone.txt | telephoneNumber 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. | Medium | Do not convert phone values into guesses; finish the remaining high-value existence coverage. |
| 2026-06-06T23:18:23Z | Final core note-style sweeps for Security Helpdesk, Helpdesk Administrators, and Recruitment Managers plus extension-attribute passes | enum/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.txt | Core 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. | High | Current 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:18Z | Completed remaining allowed /Login oracle coverage for Forest Management, Web Support, Security Helpdesk, Helpdesk Administrators, and Recruitment Managers | enum/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.txt | All 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. | High | Preserve 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:47Z | Kerberos revalidation attempt for preserved ken.w material on current respawn | loot/live-ken-tgt-revalidate-199-current.txt, loot/ken-ccache-kvno-validate.txt, enum/evaluator-privesc-20260607T000011Z.txt | The 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. | High | Do 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:48Z | Restaged continuity workspace to replacement Pwnbox and ran remote preflight through htbctl | enum/respawn-preflight-20260607.txt | Replacement 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. | High | Run the narrow description-mutation reset branch that previously recovered ken.w. |
| 2026-06-07T00:56:05Z | Ran target-aware description-mutation reset branch through htbctl | enum/description-mutations-reset-20260607.txt | The 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. | High | Use the fresh ken.w ccache to run the loot-scoped authenticated LDAP sanity pass only against bridge-relevant users. |
| 2026-06-07T01:03:31Z | Patched and reran the impacket Kerberos LDAP helper against bridge-relevant users only | loot/ldap-sanity-bridge-20260607d.txt, loot/ldap-bridge-*.json | Authenticated 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. | High | Stop at a meaningful checkpoint; ESC3 remains gated until a supported operator bridge is recovered. |
| 2026-06-07T01:30:52Z | Ran 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/Forms | enum/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. | High | Refresh BloodHound with the fresh ken.w TGT and check only for current graph drift. |
| 2026-06-07T01:33:20Z | Collected fresh BloodHound data with the rebuilt ken.w TGT against <TARGET>, mirrored the refresh JSON, and ran a drift-focused parser | enum/bloodhound-ken-refresh-20260607.txt, enum/bh-ken-refresh_20260606213256_*.json, enum/bloodhound-refresh-drift-analysis.txt | Fresh 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. | High | Keep ESC3 gated; seek a new narrow bridge lead instead of repeating covered web/oracle/BloodHound work. |
| 2026-06-07T03:13:00Z | Ran the final authenticated LDAP secret-attribute audit with the live ken.w TGT across controlling-group members plus relevant Web Department context users | enum/ldap-secret-attr-audit-20260607-run.txt, enum/ldap-secret-audit-20260607-summary.json, raw loot/ldap-secret-audit-20260607/*.json | All 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. | High | Validate the single allowed johnathan.j candidate once, then stop unless it directly yields a supported bridge. |
| 2026-06-07T03:15:27Z | Validated the current direct-LDAP johnathan.j description candidate exactly once via Kerberos | enum/johnathan-j-ldap-description-single-validation-20260607.txt, enum/johnathan-j-ldap-description-single-validation-result.json, enum/johnathan-j-ldap-description-comparison.json | The 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. | High | Stop 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:52Z | Ran the single bounded forged-admin /Home/Forms upload validation with a minimal UNC-referencing ODT canary and a short SMB/Responder observation window | enum/admin-upload-canary-summary-20260607.txt, raw remote loot/admin-upload-canary-20260607T043541Z/ on the Pwnbox workspace | Forged 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. | High | Stop autonomous work and ask for the exact narrow intended-transition hint from the decisive brief. |
Validation Gate
| Anchor | Expected | Status | Evidence |
|---|---|---|---|
| Target reachable over HTB VPN | <TARGET> live | MATCHED | Pwnbox enum/ping-target.txt |
| Windows DC-like service set | DNS/Kerberos/LDAP/SMB/RPC/WinRM SSL | MATCHED | Pwnbox nmap/services.nmap |
| Domain | hercules.htb | MATCHED | Pwnbox enum/ldap-rootdse.txt, enum/https-cert.txt |
| Hostname | dc.hercules.htb / DC | MATCHED | Pwnbox enum/ldap-rootdse.txt, nmap/services.nmap |
| Web stack | IIS/ASP.NET on 80/443 | MATCHED | Pwnbox enum/http-headers.txt, enum/web-index-summary.txt |
| TLS certificate | CN/SAN hercules.htb | MATCHED | Pwnbox enum/https-cert.txt |
| LDAP/SMB posture | NTLM may be disabled/restricted | PARTIAL MATCH | Pwnbox enum/smb-null-guest.txt shows <secret redacted>; more auth testing needed |
| AD CS surface | CA/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.jsonwas rebound to the new Pwnbox/target and markedpending_revalidationfor 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 checkpassed andlint_htb_state_secrets.pyfound 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.wrebuild -> public candidate validation ->natalie.a-> Shadow Credentials onbob.w-> raw Kerberos LDAP ModifyDN move ofstephen.minto Web Department -> Shadow Credentials onstephen.m->auditorpassword reset -> Auditor TGT. - Auditor-driven ESC3 setup progressed through Forest Migration DACL grant,
fernando.renable/reset/TGT, and Fernando enrollment-agent PFX issuance. <secret redacted>$direct reset with Auditor was tested and failed with LDAPinsufficientAccessRights; 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, anddead-ends.mdwere 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.txtintoloot/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, hostdc, andaCleanup.ps1on 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_Administratorand 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.txtthrough the Administrator CIFS ticket. Raw flag is stored only atloot/root.txtand validates as a 32-character hexadecimal flag.
Attack Map
Hosts
| IP | Hostname | OS | Status | Reachable From |
|---|---|---|---|---|
| <TARGET> | dc.hercules.htb / DC | Windows DC | live | Pwnbox <TARGET> |
Services
| Host | Port | Service | Version | Auth | Notes |
|---|---|---|---|---|---|
| dc.hercules.htb | 53 | DNS | Simple DNS Plus | n/a | AXFR denied |
| dc.hercules.htb | 80 | HTTP | Microsoft IIS 10.0 | public | Redirects to HTTPS |
| dc.hercules.htb | 88 | Kerberos | Microsoft Windows Kerberos | domain | Clock skew about 4m30s |
| dc.hercules.htb | 389/636/3268/3269 | LDAP/GC | Active Directory LDAP | bind required for subtree | RootDSE anonymous allowed |
| dc.hercules.htb | 443 | HTTPS | Microsoft IIS 10.0 / ASP.NET | public | Hercules Corp; /Login SSO form |
| dc.hercules.htb | 445 | SMB | SMB2/3 | null/guest rejected | Signing required; <secret redacted> with null/guest |
| dc.hercules.htb | 5986 | WinRM SSL | Microsoft HTTPAPI 2.0 | creds required | Candidate later auth surface |
| dc.hercules.htb | 9389 | ADWS | .NET Message Framing | creds required | AD management surface |
Credentials
| Source | Username | Secret | Type | Tested On | Result |
|---|
Attack Paths
| # | Path | Status | Evidence |
|---|---|---|---|
| 1 | ken.w -> natalie.a -> Shadow Creds on bob.w -> bob.w moves stephen.m -> Shadow Creds on stephen.m -> reset auditor | proven live 2026-06-10 | loot/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 |
| 2 | auditor -> Forest Migration control -> fernando.r enable/reset/TGT -> EnrollmentAgent PFX | proven live 2026-06-10 | loot/esc3-race-auditor-20260610b.txt, loot/fernando-ea-cert-retry-dynamic-20260610.txt |
| 3 | fernando.r EnrollmentAgent PFX -> Ashley OBO cert -> Ashley pypsrp -> aCleanup.ps1 -> IT SUPPORT / Forest Migration bridge -> IIS_Administrator -> <secret redacted>$ -> U2U/RBCD Administrator CIFS -> root | solved live 2026-06-13 | enum/pypsrp-ashley-defaultcache-retry-20260613.txt, enum/iis-webserver-u2u-rbcd-root-summary-20260613.txt, loot/root.txt |
Trust Edges
natalie.acan abuse Shadow Credentials onbob.wand, after the move,stephen.m.bob.wcan movestephen.minto Web Department by Kerberos LDAP ModifyDN.stephen.mcan resetauditor.auditorcan prepare the Forest Migration /fernando.rESC3 finish.ashley.bcan execute the cleanup script after ESC3 OBO/cert auth.- IT SUPPORT / Forest Migration delegation enables the
IIS_Administratorbridge. IIS_Administratorcan 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.txtis 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:
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 PFXHigh-signal evidence:
loot/public-priority-validation-20260610.txtloot/shadow-bob-from-natalie-20260610b.txtloot/live-bob-tgt-20260610b.txtloot/move-stephen-to-web-20260610.jsonloot/shadow-stephen-from-natalie-20260610.txtloot/live-stephen-tgt-20260610.txtloot/<password redacted>loot/live-auditor-tgt-20260610.txtloot/fernando-ea-cert-retry-dynamic-20260610.txt
Current Blocker
The remaining missing proof is:
real Administrator certificate/ccache/hash -> Administrator-equivalent access -> root.txtCertipy 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.mdloot/admin-pfx-auth-summary-20260610.jsonloot/admin-pfx-auth-validation-20260610.txtloot/remote-admin-artifact-list-20260610b.txt
Do Not Repeat
Do not repeat without contradictory evidence:
- broad
/Loginoracle sweeps, - note-style LDAP attributes for controlling groups,
extensionAttribute1-15sweeps,mail,url,wWWHomePage,physicalDeliveryOfficeName,department, andtitlecoverage,- 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/Formsupload plus Bad-ODF/coerced-auth canary, - web/LFI branch as a primary route,
- stale prior-respawn
johnathan.jmaterial, - 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:
- Confirm whether a Certipy request ID can be retrieved and paired with the saved Administrator private key.
- If not, use
PForgeCert/ pyForgeCert-style CMC generation, or Windows-nativecertreq/Certify.exe+Rubeus. - Validate that the resulting PFX identity is actually Administrator before attempting root access.
- Capture
C:\Users\Administrator\Desktop\root.txttoloot/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 underloot/only.
2026-06-13 Root Capture
The old ADCS Administrator OBO blocker was bypassed by following the Ashley/IIS bridge and validating every transition:
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 captureKey evidence:
enum/pypsrp-ashley-defaultcache-retry-20260613.txtenum/ashley-cleanup-and-iis-bridge-validation-20260613.txtenum/post-it-support-cleanup-iis-admin-validation-summary-20260613.txtenum/iis-administrator-enable-reset-summary-20260613.txtenum/iis-administrator-gettgt-summary-20260613.txtenum/iis-webserver-reset-gettgt-summary-20260613.txtenum/iis-webserver-u2u-rbcd-root-summary-20260613.txtloot/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:
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 issuedImportant evidence:
loot/public-priority-validation-20260610.txtloot/shadow-bob-from-natalie-20260610b.txtloot/live-bob-tgt-20260610b.txtloot/move-stephen-to-web-20260610.jsonloot/shadow-stephen-from-natalie-20260610.txtloot/live-stephen-tgt-20260610.txtloot/<password redacted>loot/live-auditor-tgt-20260610.txtloot/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.pygenerated Administrator-named PFX files, but validation showed the certificate identity isfernando.r, notadministrator.- No Administrator ccache/hash was produced.
- No root flag was read.
Latest blocker checkpoint:
checkpoint-root-blocker-20260610.mdloot/admin-pfx-auth-summary-20260610.jsonloot/admin-pfx-auth-validation-20260610.txtloot/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,
/Loginoracle 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.
- 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.
- 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.
- 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.
- 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.
- 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:
python3 scripts/htbctl.py check <TARGET>-Hercules
python3 scripts/lint_htb_state_secrets.py <TARGET>-HerculesLatest 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 UTC | Intended Action | Pre-State / Gate | Result | Return Path |
|---|---|---|---|---|
| 2026-06-06T05:46:47Z | Revalidate respawn anchors and prepare latest Certipy before timed ADCS ESC3 mutation | Local htbctl check passed; root path supported by prior live evidence; remote htbctl requires runtime Pwnbox password env var | Blocked before SSH because <secret redacted> / SSHPASS is missing from the agent environment; no target mutation performed | n/a |
| 2026-06-06T22:33:11Z | Rebind continuity workspace to new Pwnbox/respawn and restage escaped-oracle helpers | Verified replacement Pwnbox <TARGET> has VPN <TARGET> and reaches <TARGET>; no target mutation yet | Proceeding to recreate ~/htb/<TARGET>-Hercules on the fresh Pwnbox, sync oracle helpers, and run existence checks before any credential mutation | No target-side cleanup needed; workspace-only restage |
| 2026-06-10T05:49:29Z | Shadow Credentials from natalie.a to bob.w | natalie.a recovered/validated; Web Support GenericWrite over Web Department users | Succeeded 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:17Z | Kerberos LDAP ModifyDN moving stephen.m into Web Department | bob.w TGT validated; pre-state captured in loot/stephen-dn-before-move-20260610b.txt | First 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:22Z | Shadow Credentials from natalie.a to stephen.m after the move | stephen.m now under Web Department inheritance | Succeeded and produced stephen.m authentication material under loot/ | Cleanup may invalidate state; rerun only from this precise point if needed. |
| 2026-06-10T06:04:18Z | stephen.m reset of auditor | stephen.m TGT validated; auditor DN captured | Succeeded; auditor TGT validated immediately after. | If cleanup resets password, rerun from stephen.m material or rebuild bridge chain. |
| 2026-06-10T06:08:10Z | Auditor-driven ESC3 race through fernando.r | auditor TGT validated; Forest Migration/Smartcard Operators path live | Advanced 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 UTC | Script/Technique | Result | Next Adjustment |
|---|---|---|---|
| 2026-05-07T22:27:17Z | login_probe.py and targeted /Login LDAP filter injection probes | Anti-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:00Z | ADCS ESC3 final OBO certificate attempts | Certipy 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 UTC | Path | Evidence | Reason | Revisit Condition |
|---|---|---|---|---|
| 2026-05-07T22:27:17Z | Broad login-oracle character scans | Pwnbox 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:52Z | Bounded FormsAuth ticket-name validation for bridge identities | enum/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:20Z | Fresh BloodHound drift check from rebuilt ken.w foothold | enum/bloodhound-ken-refresh-20260607.txt, enum/bloodhound-refresh-drift-analysis.txt | The 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:00Z | Final authenticated LDAP secret-attribute audit from live ken.w into the controlling groups | enum/ldap-secret-attr-audit-20260607-run.txt, enum/ldap-secret-audit-20260607-summary.json, raw loot/ldap-secret-audit-20260607/*.json | All 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:52Z | Bounded forged-admin upload / Bad-ODF / coerced-auth validation from the exact /Home/Forms POST path | enum/admin-upload-canary-summary-20260607.txt, raw remote loot/admin-upload-canary-20260607T043541Z/ on the Pwnbox workspace | Forged 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:00Z | Reusing existing Administrator-named certi.py PFX candidates for Administrator PKINIT | loot/admin-pfx-auth-summary-20260610.json, loot/admin-pfx-auth-validation-20260610.txt | All 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:18Z | adcs-existing-admin-pfx-retry | <secret redacted> | dead-ends.md | Existing Administrator-named PFX candidates authenticated as Fernando rather than Administrator during prior validation. |
| 2026-06-13T06:29:18Z | adcs-certipy-rpc-obo | <secret redacted> | loot/admin-obo-cert-smartcardlogon-20260613.txt | Certipy 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:45Z | windows-native-winrm-certreq | <secret redacted> | enum/winrm-kerberos-controlled-principals-exec-matrix-20260613.txt | Controlled 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:35Z | dcom-cmc-requestername-obo | <secret redacted> | loot/dcom-cmc-obo-admin-attrs-20260613.txt | Custom 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:22Z | dcom-cmc-adminuser-obo | <secret redacted> | enum/dcom-cmc-obo-adminuser-summary-20260613c.txt | Custom 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:59Z | adcs-ashley-execution | <secret redacted> | enum/winrm-ashley-default-cache-identity-20260613.txt | Ashley 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:19Z | ashley-cleanup-shortcut | <secret redacted> | enum/ashley-live-writable-acl-check-20260613.txt | cleanup.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:13Z | adcs-webadmin-eligible-obo | <secret redacted> | enum/webadmin-users-file-interest-search-20260613.txt | web_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:08Z | adcs-eligible-target-admin-san | <secret redacted> | enum/eligible-target-admin-san-obo-validation-20260613.txt | Allowed-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:18Z | forest-migration-primarygroupid-helpdesk-test | <secret redacted> | enum/primarygroup-helpdesk-probe2-20260613.txt | Forest 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:20Z | forest-migration-shadow-principal | <secret redacted> | enum/auditor-configuration-writable-20260613.txt | PAM/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. |