Posts
Penetration testing notes, methodology, and technical write-ups. CVE analyses are published under Research.
Assessing Active Directory (GOAD Pentest Series)
Step-by-step penetration testing walkthrough of the five-server GOAD lab, moving from zero credentials to full Domain Controller compromise.

GOAD Part 1: From Zero Credentials to the Attack Graph
Walking through the GOAD Active Directory lab from a single Kali host: zero-knowledge host discovery, SMB signing checks, forest and trust mapping, unauthenticated user enumeration, AS-REP Roasting, SMB/SYSVOL secret hunting, and BloodHound graph analysis.

GOAD Part 2: Owning the NORTH Domain Controller
Moving from a low-privileged user account to Domain Admin on DC02 in north.sevenkingdoms.local: Kerberoasting a service account, abusing constrained delegation with S4U2Self and S4U2Proxy, and injecting a SYSTEM scheduled task through a writable GPO.

GOAD Part 3: Walking the ACL Chain to the Forest Root
Eight misconfigured ACLs stand between a single recovered password and Domain Admin on the sevenkingdoms.local forest root. Each edge is a different right and forces a different technique. This is every hop, every tool, and the two places it tried to fail.

GOAD Part 4: Owning essos.local Across the Forest Trust
The forest trust into essos.local enforces SID filtering, so a forged ExtraSids ticket will not carry Domain Admin across the boundary. What does cross is foreign group nesting, a three-hop ACL chain, LAPS, and an AD CS CA full of ESC templates.
Active Directory Certificate Services (AD CS)
Deep dive into AD CS misconfigurations, ESC abuse primitives, certificate enrollment, and domain escalation paths.

AD CS Part 1: Architecture, Template Semantics, and the ESC Taxonomy
Deconstructing the Active Directory Certificate Services attack surface: template attributes, PKINIT credential exchange, EKU semantics, identity mapping, and the ESC taxonomy mapped by root cause.

AD CS Part 2: ESC1 Exploitation: RPC Targeting, PKINIT Authentication, and Forest Compromise
Weaponizing the ESC1 certificate template on ESSOS-CA: MS-WCCE RPC endpoint resolution, PKINIT Kerberos TGT issuance via weak UPN mapping, and full forest takeover using DRSUAPI DCSync.

AD CS Part 3: ESC4 and ESC6 — Creating the Vulnerability Yourself
Part 2 exploited ESC1, a template that was already vulnerable. This part creates the vulnerability: ESC4 edits a template you have GenericAll over into an ESC1, and ESC6 abuses the CA-wide User Specified SAN flag to stuff a Subject Alternative Name into any Client Authentication template.

AD CS Part 4: The Rest of the Catalog and How to Lock It Down
Closing the AD CS series: ESC2's any-purpose EKU, ESC3's enrollment-agent escalation, the identity-mapping weaknesses of ESC9, and the relay-based ESC8/ESC11 — then the four-question hardening checklist that ties the whole taxonomy back together.
Active Directory Architecture & Internals
Companion engineering notes examining how multi-forest partitions, trusts, DNS forwarding, Kerberos delegation, and object ACLs work under the hood.

Multi-Forest Active Directory Architecture: How Forests, Trusts, DNS, and Tiered Services Actually Work
Looking at the five-server GOAD environment from the systems side before running an exploit: why organizations split forests and child domains, how directory partitions replicate, how DNS forwarders and Trusted Domain Objects route cross-forest authentication, and where normal Windows features turn into attack paths.

Inside Kerberos Delegation: Why Multi-Tier Windows Apps Need It (and Why It Breaks)
Walking through the Kerberos double-hop problem and the three generations of delegation in Windows: how Unconstrained, Constrained (S4U2Self / S4U2Proxy), and Resource-Based Constrained Delegation (RBCD) look in LDAP across the GOAD lab.

Active Directory as a Directed Graph: How Security Descriptors and Object ACLs Actually Work
Active Directory stores every user, group, computer, and GPO as an LDAP object with a binary nTSecurityDescriptor. Walking the eight-hop escalation chain in GOAD's sevenkingdoms.local domain shows how ACE masks, Extended Rights GUIDs, and ownership changes turn helpdesk permissions into Domain Controller compromise.
Standalone Write-ups & Primitives
Technical write-ups covering container boundaries, binary exploitation, and domain attack primitives.

iOS Application Security in Practice: Auditing 30 OWASP MASVS Vulnerabilities with Frida and LLDB
Hands-on iOS penetration testing and secure coding: auditing Keychain misuse, bypassing client-side biometric checks with Frida, defeating SSL pinning, and mapping 30 real-world vulnerabilities to OWASP MASVS v2.

Resilient Out-of-Band C2 Pipelines: Framing, AEAD Encryption, and Covert Channels in Go
Designing fault-tolerant, out-of-band command-and-control pipelines for authorized security testing: forward error correction via XOR parity, P-256 ECDHE session encryption, and 9 covert transport protocols in ghostlink.

Kernel-Level Packet Sniffing with eBPF/XDP: Real-Time Credential Extraction and Exposure Auditing
How eBPF and XDP bypass userspace packet-capture bottlenecks to intercept authentication handshakes, NetNTLMv2 hashes, and cleartext credentials at line rate: architecture, protocol dissectors, and exposure auditing with driftnet2.

macOS Hardening in Practice: Auditing 54 Controls, Detecting Drift, and Remediating Without Dependencies
A deep dive into macOS endpoint security architecture: auditing SIP, Gatekeeper, TCC, LaunchDaemons, BPF packet filters, and plaintext secret leakage using native Zsh primitives, zero third-party dependencies, and OASIS SARIF v2.1.0.

Breaking AI Agent Boundaries: From Prompt Injection to Remote Code Execution via Model Context Protocol (MCP)
How untrusted context in modern AI pipelines forces autonomous agents to execute arbitrary operating system commands through Model Context Protocol (MCP) server tools: indirect injection, ambient authority, and deterministic execution brokers.

Container Escape: Docker Socket, Privileged Mode, and the Boundary That Moves
A container is a namespace, a cgroup, and a set of capabilities — not a boundary. When one of those is handed to you, the host is a mount away. The Docker socket and --privileged are demonstrated live, and the cgroup v1 trick that modern systems already killed is called out.

Stack Buffer Overflow: From Segfault to RIP Control (Ret2win)
The non-AD half of the journey: a 64-byte stack buffer, an unbounded read, and the exact steps that turn a segfault into control of the instruction pointer. Compiled live in a Linux container, with the one gotcha — the return address is not where the naive math says it is.

DNSAdmins and Backup Operators: Privileged Group Abuse to SYSTEM on the DC
The last two GOAD techniques are not exploits but groups: DNSAdmins loads a DLL into the DNS service, Backup Operators reads what the OS would rather hide. One is demonstrated end to end, one is documented honestly with the remote-registry wrinkle, and the relay gap that neither covers is called out.

Skeleton Key: A Master Password for Every Account in the Domain
After Domain Admin, the game changes from getting in to staying in. The Skeleton Key patches the Domain Controller's KDC in memory so the single password 'mimikatz' unlocks every account — demonstrated live against KINGSLANDING, alongside the memory SSP and why DSRM does not apply in this lab.

Offline Domain Dump: Shadow Copies and NTDS.dit
DCSync is the online way to pull hashes — but it needs replication rights. The offline way asks for nothing from the DC: take a shadow copy of C:, copy the NTDS.dit database and SYSTEM hive out, and dump every credential on your own machine with no Domain Controller cooperation.

Forging Kerberos Tickets: Golden and Silver Tickets in GOAD
DCSync handed us the krbtgt hashes and service-account hashes. This is what they are actually for: forging a Golden Ticket for the whole forest, and a Silver Ticket for one SPN — logging in as Administrator without a password, and why the two differ.

Cross-Forest Pivoting via SQL Server Linked Servers: Bypassing Kerberos Trust Boundaries
Deconstructing SQL Server linked-server lateral movement in GOAD: from a cracked service account (jon.snow) to xp_cmdshell execution as north\sql_svc, pivoting through sa-mapped linked servers into essos\sql_svc without Kerberos trust authentication.

Pass-the-Hash and Overpass-the-Hash: Moving with Hashes, Not Passwords
DCSync left us holding NTLM hashes but no passwords. Pass-the-hash feeds the raw hash straight into NTLM; overpass-the-hash turns that same hash into a Kerberos TGT. Both log in as Administrator without ever cracking anything — and they answer two different problems.

Force-Set SPN: Targeted Kerberoasting with GenericWrite
Kerberoasting normally waits for a service account to already have an SPN. With GenericWrite over a user you can add the SPN yourself and Kerberoast them on demand — turning any weak-password user you can write to into a crackable target.

Password Spraying: One Password, Every Account
The lockout-aware credential attack: one common password tried across every account in the domain, respecting the lockout threshold so nothing trips. GOAD's north domain shows the whole dance — from reading the password policy to the one account that reused Winter2022.

Building the GOAD Lab: A Two-Forest Active Directory on a Laptop
The foundation post for the whole series: how a two-forest, three-domain Active Directory lab is provisioned from bare metal on a ThinkPad, what Vagrant and Ansible actually do, the VMware quirks that had to be patched, and how the lab is started, snapshotted, and reached from Kali.
Substack
Longer research pieces are also published on Substack.
