
Passive AD CS auditor detecting ESC1–ESC16 and Shadow Credentials via read-only LDAP/ACL/registry checks, with prioritized remediation and SIEM-ready output.
Active Directory Certificate Services Auditor
ESCepcion is an open-source tool for auditing and assessing vulnerabilities in Active Directory Certificate Services (AD CS) infrastructures. It is designed to automate the detection of privilege escalation paths (ESC) with a strict focus on reducing false positives in corporate and hybrid environments.
Unlike other tools, ESCepcion does not exploit, modify, or write any object to Active Directory. All its operations are based exclusively on read-only LDAP queries and optional registry reads via MS-RRP (using --deep-scan).
The community has excellent reference tools such as Certipy and Certify, whose main focus is on Red Team operations and active exploitation (requesting certificates, issuing them, forcing authentications, etc.).
ESCepcion does not seek to replace them, but to complement them from a defensive perspective: While Certipy/Certify are your arsenal for exploiting and demonstrating technical impact, ESCepcion focuses exclusively on passive auditing and false positive validation. ESCepcion cross-references LDAP configuration data, ACL permissions, and Registry validations automatically to generate prioritized reports ready for remediation.
msDS-KeyCredentialLink, differentiating real risks from legitimate configurations (Windows Hello for Business, FIDO2).EXPLOITABLE, NEAR_MISS, POTENTIAL, NOT_SCANNED, or SAFE, avoiding ambiguity.ESCepcion uses a proprietary risk model that goes beyond classic severity scores:
You can read the full documentation of our risk model at: 🔗 hackwarts12.github.io/ESCepcion/risk-model
requirements.txt (includes libraries such as impacket, ldap3, among others).Clone the repository and install the required Python dependencies:
git clone https://github.com/YOUR-USERNAME/ESCepcion.git
cd ESCepcion
pip install -r requirements.txt
(Optional) If a specific PowerShell environment exists, you can run install.ps1.
To run a basic authenticated scan against a Domain Controller:
python main.py -d mydomain.local -dc-ip 192.168.1.100 -u user -p 'password'
Add the --deep-scan parameter to run extra checks via MS-RRP (Remote Registry) and obtain a higher confidence level in the coverage of specific ESCs:
python main.py -d mydomain.local -dc-ip 192.168.1.100 -u user -p 'password' --deep-scan
Authentication using the NTLM hash (Pass-the-Hash):
python main.py -d mydomain.local -dc-ip 192.168.1.100 -u user -H 'LMHASH:NTHASH'
ESCepcion generates two files after each scan:
HTML Dashboard: An interactive report that includes:
--deep-scan.JSON File: A structured output ideal for:
ESCepcion/
├── main.py # Main CLI of the tool
├── auth/ # Connection modules (LDAP, RPC, etc.)
├── modules/ # Check modules (ESC1-16, Shadow Credentials, etc.)
├── utils/ # Utilities (Report generator, ACL parsing)
├── output/ # Directory where JSON/HTML reports are generated
│
# Frontend Files (Landing Page / Documentation)
├── index.html # Main Web page
├── styles.css # Corporate web styles
└── risk-model.html # Interactive documentation of the risk model
ESCepcion's deductive and detection logic is strongly built upon the exceptional research work of the cybersecurity community:
Only for authorized security testing. ESCepcion must be used solely and exclusively on infrastructures for which you have explicit written authorization to audit.
The project is distributed under the MIT License. See the LICENSE file for more details.