Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

From Vulnerability to Control — Active Directory Attack-Path Analysis on GOAD

Graduation thesis project — Offensive Security / Active Directory

Status Lab Scope Methodology Findings License

Important

Authorized academic engagement in a fully isolated lab. This repository documents a penetration test against GOAD (Game of Active Directory) — a deliberately-vulnerable AD lab published by Orange Cyberdefense for training. All work ran inside a host-only VirtualBox network (192.168.56.0/24); no traffic ever left the subnet, and no real system was ever touched. Every credential shown is a GOAD default lab value (public in the GOAD project). Read the DISCLAIMER before anything else.


What this is

A complete, evidence-backed walk from zero access to Domain Admin on the north.sevenkingdoms.local child domain — then a demonstration of what that control actually enables. The engagement is documented as a reproducible package: a consolidated report, seven per-phase manifests, 122 screenshots, 61 raw command logs, every helper script, and every loot artifact.

Note

Screen recordings are not in this repository. The engagement produced 61 attack recordings (~7 GB, 1080p HEVC) that are retained offline for the thesis committee. This public repository carries the documentation, stills, logs and loot — 32 MB, everything needed to follow and verify the work without the video bulk. See methodology for how the recordings were produced.

Headline outcome: Full Domain Admin on north.sevenkingdoms.local via three independent compromise paths, six cracked plaintext credentials, complete post-compromise capability demonstrations. Forest root (sevenkingdoms.local) was not reached — two real hardening controls (Print Spooler mitigation + AD CS Web-Enrollment EPA) blocked the ESC8 chain. The defenses that held are documented as carefully as the attacks that succeeded.


Target topology

flowchart TB
    subgraph FOREST1["🏰 sevenkingdoms.local — forest root"]
        KL["KINGSLANDING · 192.168.56.10<br/>Server 2019 · DC + IIS + AD CS<br/>🛡️ ESC8 chain blocked here"]
    end

    subgraph CHILD["❄️ north.sevenkingdoms.local — child domain"]
        WF["WINTERFELL · 192.168.56.11<br/>Server 2019 · DC + GC + DNS<br/>🎯 Domain Admin achieved"]
        CB["CASTELBLACK · 192.168.56.22<br/>Server 2019 · member + MSSQL"]
    end

    subgraph FOREST2["🐉 essos.local — separate forest"]
        MR["MEEREEN · 192.168.56.12<br/>Server 2016 · DC"]
        BR["BRAAVOS · 192.168.56.23<br/>Server 2016 · member + MSSQL"]
    end

    KL ---|parent-child trust| WF
    WF --- CB
    MR --- BR
    FOREST1 <-->|bi-directional inter-forest trust| FOREST2

    ATT["💀 Kali · 192.168.56.1<br/>attacker workstation"]
    ATT -.->|host-only, isolated| KL

    style FOREST1 fill:#3d2b1e,stroke:#d9a94a,color:#fff
    style CHILD fill:#1e3a5f,stroke:#4a90d9,color:#fff
    style FOREST2 fill:#3d1e2b,stroke:#d94a7a,color:#fff
    style WF fill:#5f1e1e,stroke:#d94a4a,color:#fff
    style KL fill:#1e5f2b,stroke:#4ad96a,color:#fff
    style ATT fill:#333,stroke:#888,color:#fff
Loading

5 GOAD VMs across two forests joined by a bi-directional trust — the trust is what turns a single foothold into cross-forest reach.


The kill chain

Mapped to PTES and MITRE ATT&CK. Each phase has its own manifest with the full command index, detection signals, and mitigations.

Phase What happened Key result Detail
4.1 Recon Host discovery, SMB/LDAP/Kerberos enumeration 5 hosts, 22 valid accounts, domain SID manifest
4.2 Initial access AS-REP roasting → offline crack 2 footholds: brandon.stark, missandei manifest
4.3 Priv-esc Kerberoasting, BloodHound, AD CS enum jon.snow cracked; ESC8 identified manifest
4.4 Lateral movement Constrained-delegation abuse, MSSQL xp_cmdshell WINTERFELL (north DC) compromised manifest
4.5 Domain dominance DCSync, Golden Ticket persistence Full north DA; krbtgt extracted manifest
4.6 Domain fun SYSVOL & LSA secret harvesting 2 more independent creds; RDP proof manifest
4.7 Capability demos "What can you actually DO with DA?" 7 reversible post-compromise demos manifest

📄 The full narrative is in GOAD-DOC/FINAL_REPORT.md.


The three compromise paths

What makes this engagement more than a linear walkthrough: three independent routes to privileged access, so removing any one control would not have saved the domain.

  1. Delegation pathjon.snow (Kerberoasted) has constrained delegation to the DC itself → impersonate Administrator on WINTERFELL → DCSync.
  2. SQL pathjon.snow is sysadmin on CASTELBLACK MSSQL → xp_cmdshell as north\sql_svc.
  3. SYSVOL path — plaintext credentials in a logon script (jeor.mormont) → local admin on CASTELBLACK → LSA secrets → the sql_svc password we couldn't crack, sitting in cleartext.

Findings & defense

41 findings (F-01 … F-41), each rated and mapped to a mitigation. Crucially, this includes the controls that worked:

Defense that held Where Effect
Print Spooler PrinterBug mitigation KINGSLANDING Blocked ESC8 coercion
AD CS Web-Enrollment EPA over HTTP KINGSLANDING Rejected the relayed machine account (401)
Account-restrictions GPO on built-in Administrator WINTERFELL Blocked RDP pass-the-hash
Hardened anonymous SMB all DCs Denied null-session enumeration

➡️ Full register in FINDINGS.md · defensive recommendations in FINAL_REPORT §8.

This is why the project reads as security research, not an attack tutorial: every offensive step is paired with its detection signal (Windows event IDs) and its mitigation, and the engagement honestly records where it was stopped.


Repository layout

.
├── README.md                    ← you are here
├── DISCLAIMER.md                authorization, scope, ethics
├── FINDINGS.md                  consolidated finding register (F-01…F-41)
├── METHODOLOGY.md               PTES mapping + evidence pipeline
├── LICENSE                      CC BY-NC-ND 4.0
├── CITATION.cff
└── GOAD-DOC/
    ├── FINAL_REPORT.md          the consolidated engagement report
    └── 4.1 … 4.7/               per-phase packages
        ├── MANIFEST.md          command index · findings · detection/mitigation
        ├── images/              screenshots (before/after each step)
        ├── logs/                raw command output
        ├── _loot/               harvested artifacts (GOAD lab data)
        ├── _helpers/            wrapper scripts used during the phase
        └── _wordlists/          user/password lists (GOAD defaults)

Tooling

nmap · netexec (nxc) · enum4linux-ng · kerbrute · impacket (GetNPUsers, GetUserSPNs, getTGT, getST, secretsdump, ticketer) · BloodHound · certipy-ad · hashcat · john · evil-winrm · xfreerdp · smbclient — all standard, publicly-available security tooling on Kali Linux.


Author & citation

Ahmad Al-Ahmad — Al-Jazeera Private University. Graduation thesis, "From Vulnerability to Control." Cite via CITATION.cff.

License

Documentation, findings, screenshots and logs: CC BY-NC-ND 4.0. Helper scripts are thin wrappers around public tools, provided as-is for educational reference. See DISCLAIMER.

About

Full kill-chain pentest against GOAD — AS-REP roasting, Kerberoasting, constrained-delegation abuse, DCSync and Golden Ticket. Three independent paths to Domain Admin on north.sevenkingdoms.local. 41 findings mapped to MITRE ATT&CK with detection signals and mitigations. Graduation thesis.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages