Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Certify — Active Directory Certificate Services (AD CS)의 잘못된 구성을 열거하고 악용하여 인증서 템플릿 남용, 권한 상승 및 도메인 지속성을 가능하게 하는 C# 도구입니다. | Kitploit
도구/GitHubGitHub/ghostpack/certify
Authentication & AuthorizationPrivilege EscalationVulnerability AnalysisExploitationPenetration TestingRed Teaming
GitHubghostpack/certify

Certify

Active Directory Certificate Services (AD CS)의 잘못된 구성을 열거하고 악용하여 인증서 템플릿 남용, 권한 상승 및 도메인 지속성을 가능하게 하는 C# 도구입니다.

저장소 보기
2.0k2828일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Certify

Certify는 Active Directory Certificate Services(AD CS)의 잘못된 구성을 열거하고 악용하기 위한 C# 도구입니다.

@harmj0y와 @tifkin_은 Certify 및 관련 AD CS 연구(블로그 및 백서)의 주요 저자입니다.

목차

  • Certify
    • Usage
    • Defensive Considerations
    • Compile Instructions
      • Sidenote: Running Certify Through PowerShell
        • Sidenote Sidenote: Running Certify Over PSRemoting
    • Reflections
    • Acknowledgments

사용법

명령 개요와 포괄적인 사용법 세부 사항은 위키에서 확인할 수 있습니다.

방어 고려 사항

Certify는 Black Hat 2021에서 "Certified Pre-Owned: Abusing Active Directory Certificate Services" 발표와 함께 공개되었습니다.

예방 및 탐지 지침은 백서를 참조하세요.

컴파일 지침

Certify의 바이너리를 공개할 계획은 없으므로 직접 컴파일해야 합니다 :)

Certify는 .NET 4.7.2를 대상으로 빌드되었으며 Visual Studio 2022 Community Edition과 호환됩니다. 프로젝트 .sln 파일을 열고 "Release"를 선택한 후 빌드하기만 하면 됩니다.

참고: PowerShell을 통한 Certify 실행

PowerShell 래퍼를 통해 Certify를 메모리에서 실행하려면 먼저 Certify를 컴파일하고 결과 어셈블리를 base64로 인코딩합니다.

root@kitploit:~
[Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\Temp\Certify.exe")) | Out-File -Encoding ASCII C:\Temp\Certify.txt

그런 다음 다음 코드를 사용하여 PowerShell 스크립트에 Certify를 로드할 수 있습니다. ("aa..."는 base64로 인코딩된 Certify 어셈블리 문자열로 대체됩니다.)

root@kitploit:~
$CertifyAssembly = [System.Reflection.Assembly]::Load([Convert]::FromBase64String("aa..."))

Main() 메서드와 인수는 다음과 같이 호출할 수 있습니다.

root@kitploit:~
[Certify.Program]::Main("enum-templates --filter-enabled --filter-vulnerable".Split())

참고 참고: PSRemoting을 통한 Certify 실행

PSRemoting이 출력을 처리하는 방식 때문에 stdout을 문자열로 리디렉션하여 반환해야 합니다. 다행히 Certify에는 이를 도와주는 함수가 있습니다.

참고: PowerShell을 통한 Certify 실행의 지침에 따라 Certify.ps1을 만든 후, 스크립트에 다음과 같은 내용을 추가합니다.

root@kitploit:~
[Certify.Program]::MainString("enum-templates --filter-enabled --filter-vulnerable")

그러면 다음과 같이 PSRemoting을 통해 Certify를 실행할 수 있습니다.

root@kitploit:~
$s = New-PSSession dc.theshire.local
Invoke-Command -Session $s -FilePath C:\Temp\Certify.ps1

또는 Certify의 /outfile:C:\FILE.txt 인수를 사용하면 모든 출력 스트림이 지정된 파일로 리디렉션됩니다.

고찰

공개적 공개에 관해, 우리는 조직이 Active Directory Certificate Services 관련 문제를 처리할 기회를 갖도록, 백서를 게시한 후 약 45일 동안 공격 도구(Certify 및 ForgeCert)의 공개를 자발적으로 연기했습니다. 또한 두 프로젝트에 대한 Yara 규칙/IOC를 사전에 공개하고 백서와 함께 방어 중심의 PSPKIAudit PowerShell 프로젝트를 공개했습니다. 그러나 조직과 공급업체는 누군가가 개념 증명을 통해 공격이 가능하다는 것을 입증할 때까지 종종 "이론적" 공격에 대한 문제를 수정하거나 탐지를 구축하지 않는 경향이 있음을 발견했습니다.

감사의 말

Certify는 온라인에서 찾은 몇 가지 자료를 참조 및 영감으로 사용했습니다.

  • C#에서 인증서를 요청하는 방법에 대한 이 게시물.
  • SAN 사양에 대한 이 gist.
  • 개인 키 내보내기에 대한 이 StackOverflow 게시물.
  • pkiExpirationPeriod 변환에 대한 이 PKISolutions 게시물.
  • 등록 에이전트 보안 DACL을 설명하는 MS-CSRA의 이 섹션.

AD CS 작업은 여러 다른 사람들의 작업을 기반으로 구축되었습니다. 백서에 완전한 설명이 나와 있지만, 요약하면 다음과 같습니다.

  • Benjamin Delpy – Mimikatz 및 Kekeo를 사용한 스마트 카드/인증서에 대한 광범위한 작업.
  • PKI Solutions – Active Directory의 PKI에 대한 훌륭한 게시물 및 당사 감사 도구 키트의 기반이 되는 PSPKI PowerShell 모듈.
  • Brian Komar의 저서 "Windows Server 2008 – PKI and Certificate Security".
  • Microsoft에서 제공하는 다음 공개 기술 사양:
    • [MS-CERSOD]: 인증서 서비스 프로토콜 개요
    • [MS-CRTD]: 인증서 템플릿 구조
    • [MS-CSRA]: 인증서 서비스 원격 관리 프로토콜
    • [MS-ICPR]: ICertPassage 원격 프로토콜
    • [MS-WCCE]: Windows 클라이언트 인증서 등록 프로토콜
  • Christoph Falta의 GitHub 저장소 – 가상 스마트 카드를 포함한 인증서 템플릿 공격 및 ACL 기반 남용 아이디어에 대한 세부 정보.
  • CQURE의 "The tale of Enhanced Key (mis)Usage" 게시물 – 주체 대체 이름 남용에 대한 내용.
  • Keyfactor의 2016년 게시물 "Hidden Dangers: Certificate Subject Alternative Names (SANs)".
  • @Elkement의 게시물 "Sizzle @ hackthebox – Unintended: Getting a Logon Smartcard for the Domain Admin!" 및 "Impersonating a Windows Enterprise Admin with a Certificate: Kerberos PKINIT from Linux" – 인증서 템플릿 잘못된 구성에 대한 세부 정보.
  • Carl Sörqvist – 이러한 잘못된 구성 중 일부가 어떻게 발생하는지에 대한 상세하고 그럴듯한 시나리오를 "Supply in the Request Shenanigans"라는 제목으로 작성했습니다.
  • Ceri Coburn – 2020년에 "Attacking Smart Card Based Active Directory Networks"라는 제목의 훌륭한 게시물을 공개하여 스마트 카드 남용 및 Certify 추가 기능을 자세히 설명했습니다.
  • Brad Hill – 보안 관점에서 Kerberos/PKINIT에 대한 좋은 배경 지식을 제공하는 "" 백서를 발표했습니다.
도구 다운로드
Weaknesses and Best Practices of Public Key Kerberos with Smart Cards