Top Related Projects
Impacket is a collection of Python classes for working with network protocols.
Trying to tame the three-headed dog.
A Python based ingestor for BloodHound
Quick Overview
Certipy is a Python-based tool designed for offensive security testing and exploitation of Active Directory Certificate Services (AD CS). It provides a comprehensive set of features for enumerating, abusing, and managing AD CS, making it a valuable asset for penetration testers and security researchers.
Pros
- Offers a wide range of AD CS exploitation techniques in a single tool
- Regularly updated with new features and bug fixes
- Well-documented with detailed usage instructions
- Supports both offensive and defensive use cases
Cons
- Requires in-depth knowledge of AD CS to use effectively
- May be detected by some antivirus software as a potential threat
- Limited to Windows environments with AD CS deployed
- Potential for misuse if not handled responsibly
Code Examples
# Enumerate AD CS
certipy find -u user@domain.local -p Password123! -dc-ip 192.168.1.10
# Request a certificate
certipy req -u user@domain.local -p Password123! -ca CA-NAME -template User
# Exploit ESC1 vulnerability
certipy req -u user@domain.local -p Password123! -ca CA-NAME -template VulnerableTemplate -upn administrator@domain.local
Getting Started
-
Install Certipy:
pip install certipy-ad
-
Basic usage:
certipy -h
-
Enumerate AD CS:
certipy find -u user@domain.local -p Password123! -dc-ip 192.168.1.10
-
Request a certificate:
certipy req -u user@domain.local -p Password123! -ca CA-NAME -template User
Remember to use Certipy responsibly and only on systems you have permission to test.
Competitor Comparisons
Impacket is a collection of Python classes for working with network protocols.
Pros of Impacket
- Broader scope: Supports a wide range of protocols and attack techniques
- Mature project: Well-established with extensive documentation and community support
- Versatile: Can be used as a library or standalone tool
Cons of Impacket
- Complexity: Steeper learning curve due to its extensive feature set
- Language limitations: Written in Python, which may not be ideal for all use cases
- Maintenance: Large codebase can lead to slower updates and potential security issues
Code Comparison
Impacket (LDAP query example):
from impacket.ldap import ldap
ldap_connection = ldap.LDAPConnection(f'ldap://{target}')
ldap_connection.login(username, password)
results = ldap_connection.search(searchFilter='(objectClass=user)')
Certipy (Certificate request example):
from certipy import cert
cert_request = cert.CertificateRequest(target, username, password)
cert_request.request('user')
cert_request.save('user.pfx')
Summary
Impacket is a comprehensive toolkit for network protocol manipulation and penetration testing, offering a wide range of features but with increased complexity. Certipy focuses specifically on Active Directory Certificate Services (AD CS) abuse, providing a more specialized and potentially easier-to-use tool for certificate-related attacks.
Trying to tame the three-headed dog.
Pros of Rubeus
- More comprehensive Kerberos toolkit with a wider range of attack vectors
- Written in C#, allowing for easier integration with other Windows-based tools
- Supports both user and machine authentication scenarios
Cons of Rubeus
- Limited to Windows environments, reducing cross-platform compatibility
- Requires more setup and dependencies compared to Certipy
- Less focused on certificate-based attacks and vulnerabilities
Code Comparison
Rubeus (C#):
string userName = "user@domain.com";
string password = "password123";
Rubeus.Program.Main(new string[] { "asktgt", "/user:" + userName, "/password:" + password });
Certipy (Python):
from certipy import main
main(['req', '-u', 'user@domain.com', '-p', 'password123', '-target', 'dc.domain.com'])
Summary
Rubeus is a more comprehensive Kerberos toolkit for Windows environments, offering a wide range of attack vectors and authentication scenarios. However, it's limited to Windows and requires more setup. Certipy, on the other hand, is more focused on certificate-based attacks and offers better cross-platform compatibility, but with a narrower scope of functionality.
A Python based ingestor for BloodHound
Pros of BloodHound.py
- Focuses on Active Directory enumeration and visualization
- Integrates seamlessly with the BloodHound GUI for attack path analysis
- Supports various authentication methods, including Kerberos
Cons of BloodHound.py
- Limited to Active Directory environments
- Requires additional tools for comprehensive AD security assessment
- May trigger security alerts due to extensive enumeration
Code Comparison
BloodHound.py:
bloodhound = BloodHound(username, password, domain)
bloodhound.collect(collection_methods=['group', 'localadmin'])
bloodhound.write_output(filename='bloodhound_data.json')
Certipy:
certipy = Certipy(username, password, domain)
certipy.scan(target='dc.domain.com')
certipy.request('user@domain.com', 'template')
BloodHound.py is tailored for Active Directory enumeration and integrates with the BloodHound GUI, making it ideal for visualizing attack paths. However, it's limited to AD environments and may trigger security alerts.
Certipy, on the other hand, focuses on certificate-based attacks and provides a more comprehensive toolkit for AD Certificate Services exploitation. It offers a wider range of attack techniques but may require more expertise to use effectively.
Both tools are valuable for penetration testers and security professionals, with BloodHound.py excelling in AD enumeration and visualization, while Certipy specializes in certificate-based attacks and AD CS exploitation.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Certipy - AD CS Attack & Enumeration Toolkit
Certipy is a powerful offensive and defensive toolkit for enumerating and abusing Active Directory Certificate Services (AD CS). It helps red teamers, penetration testers, and defenders assess AD CS misconfigurations - including full support for identifying and exploiting all known ESC1-ESC16 attack paths.
[!WARNING] Use only in environments where you have explicit authorization. Unauthorized use may be illegal.
ð Features
- ð Discover Certificate Authorities and Templates
- ð© Identify misconfigurations
- ð Request and forge certificates
- ð Perform authentication using certificates
- ð¡ Relay NTLM authentication to AD CS HTTP(S)/RPC endpoints
- ðï¸ Support for Shadow Credentials, Golden Certificates, and Certificate Mapping Attacks
- ð§° And much more!
ð Full Wiki & Documentation
Read the full step-by-step usage guide, including installation, vulnerability explanations, examples, and mitigations in the ð Certipy Wiki.
âï¸ Installation
See the Installation Guide for instructions on how to install Certipy.
ð Quick Start
See the Quick Start Guide for a quick overview of the most common commands and usage examples.
ð¯ Supported AD CS Vulnerabilities
Certipy supports detection and exploitation of AD CS vulnerabilities across the full range of ESC1-ESC16.
For detailed explanations and exploitation steps, refer to the Certipy Wiki.
ð Resources
See the Resources for selection of key resources related to AD CS security.
ð¤ Contributing
Contributions are welcome! See CONTRIBUTING.md for guidelines on reporting issues, improving documentation, or submitting pull requests.
ð Sponsors
Thanks to these generous sponsors for supporting the development of this project. Your contributions help sustain ongoing work and improvements.





ð¤ Author
Developed by @ly4k, with valuable contributions from the community.
ð Wiki
ð Visit the Certipy Wiki for detailed documentation, usage examples, ESC vulnerability breakdowns, and mitigation advice.
Top Related Projects
Impacket is a collection of Python classes for working with network protocols.
Trying to tame the three-headed dog.
A Python based ingestor for BloodHound
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot