Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
SharpDPAPI — SharpDPAPI는 일부 Mimikatz DPAPI 기능의 C# 포트입니다. | Kitploit
도구/GitHubGitHub/ghostpack/sharpdpapi
Password CrackingEncryption/Decryption ToolsPersistence MechanismsExploitationData ExfiltrationPost-ExploitationPenetration TestingRed TeamingPersistence Mechanisms #8위
1.4k249222년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHub
ghostpack/sharpdpapi

SharpDPAPI

SharpDPAPI는 일부 Mimikatz DPAPI 기능의 C# 포트입니다.

저장소 보기

SharpDPAPI


SharpDPAPI는 @gentilkiwi의 Mimikatz 프로젝트에 있는 일부 DPAPI 기능의 C# 포트입니다.

이 로직은 제가 만든 것이 아니며, 단순히 Mimikatz에서 포팅한 것으로, 과정을 더 잘 이해하고 워크플로에 맞게 운영화하기 위함입니다.

SharpChrome 하위 프로젝트는 @gentilkiwi와 @djhohnstein의 작업, 특히 그의 SharpChrome 프로젝트를 각색한 것입니다. 그러나 이 버전의 SharpChrome은 잠금 없이 열기를 지원하는 C# SQL 라이브러리의 다른 버전을 사용합니다. SharpChrome은 사용된 SQLite 라이브러리의 크기 때문에 SharpDPAPI 내에서 별도 프로젝트로 빌드됩니다.

Chrome 및 더 새로운 Chromium 기반 Edge 브라우저 모두 SharpChrome으로 분석할 수 있습니다.

SharpChrome은 MIT 라이선스로 공개된 @AArnott의 BCrypt P/Invoke 코드의 축소된 버전도 사용합니다.

DPAPI에 익숙하지 않다면, 이 글에서 배경 정보를 확인하세요. 자격 증명 및 보관소(Valut)에 관한 DPAPI에 대한 자세한 내용은 Benjamin의 위키 항목을 확인하세요.

@harmj0y가 이 포트의 주요 작성자입니다.

SharpDPAPI는 BSD 3-Clause 라이선스로 제공됩니다.

목차

  • SharpDPAPI
    • 목차
    • 배경
      • SharpDPAPI 명령줄 사용법
      • SharpChrome 명령줄 사용법
      • 운영 사용법
        • SharpDPAPI
        • SharpChrome
    • SharpDPAPI 명령어
      • 사용자 분석
        • 마스터키
        • 자격 증명
        • 보관소
        • rdg
        • keepass
        • 인증서
        • 종합 분석
      • 시스템 분석
        • 시스템 마스터키
        • 시스템 자격 증명
        • 시스템 보관소
        • 인증서 /machine
        • 시스템 종합 분석
      • 기타
        • ps
        • blob
        • 백업키
        • 검색
        • SCCM
    • SharpChrome 명령어
      • 로그인
      • 쿠키
      • 상태키
      • 백업키
    • 컴파일 방법
      • 다른 .NET 버전 대상
      • 참고: PowerShell을 통한 SharpDPAPI 실행
        • 참고 참고: PSRemoting을 통한 SharpDPAPI 실행

배경

SharpDPAPI 명령줄 사용법

  __                 _   _       _ ___
 (_  |_   _. ._ ._  | \ |_) /\  |_) |
 __) | | (_| |  |_) |_/ |  /--\ |  _|_
                |
  v1.20.0

도메인 컨트롤러의 DPAPI 백업 키를 가져옵니다. 선택적으로 DC와 출력 파일을 지정할 수 있습니다.

  SharpDPAPI backupkey [/nowrap] [/server:SERVER.domain] [/file:key.pvk]

*search* 명령은 레지스트리, 파일, 폴더 및 base64 blob에서 잠재적인 DPAPI blob을 검색합니다.

    search /type:registry [/path:HKLM\path\to\key] [/showErrors]
    search /type:folder /path:C:\path\to\folder [/maxBytes:<numOfBytes>] [/showErrors]
    search /type:file /path:C:\path\to\file [/maxBytes:<numOfBytes>]
    search /type:base64 [/base:<base64 string>]

시스템/SYSTEM 분석:

    machinemasterkeys       -   접근 가능한 모든 시스템 마스터키 파일 분석 (SYSTEM 권한으로 상승하여 DPAPI_SYSTEM LSA 비밀 검색)
    machinecredentials      -   'machinemasterkeys'를 사용한 후 시스템 자격 증명 파일 분석
    machinevaults           -   'machinemasterkeys'를 사용한 후 시스템 보관소 분석
    machinetriage           -   'machinecredentials' 및 'machinevaults' 명령 실행

사용자 분석:

    'masterkeys' 명령의 인수:

        /target:FILE/folder     -   특정 마스터키 또는 마스터키가 있는 폴더 분석 (지정하지 않으면 로컬 마스터키 분석)
        /pvk:BASE64...          -   Base64로 인코딩된 DPAPI 도메인 개인 키 파일을 사용하여 접근 가능한 사용자 마스터키를 먼저 복호화
        /pvk:key.pvk            -   DPAPI 도메인 개인 키 파일을 사용하여 접근 가능한 사용자 마스터키를 먼저 복호화
        /password:X             -   일반 텍스트 비밀번호를 사용하여 대상 사용자의 마스터키 복호화 (원격 가능)
        /ntlm:X                 -   NTLM 해시를 사용하여 대상 사용자의 마스터키 복호화 (원격 가능)
        /credkey:X              -   DPAPI credkey (도메인 또는 로컬 SHA1)를 사용하여 대상 사용자의 마스터키 복호화 (원격 가능)
        /rpc                    -   도메인 컨트롤러에 요청하여 대상 사용자의 마스터키 복호화
        /server:SERVER          -   원격 서버 분석 (관리자 권한 필요)
        /hashes                 -   사용자 마스터키 파일 '해시'를 JTR/Hashcat 형식으로 출력 (복호화 없음)

    credentials|vaults|rdg|keepass|triage|blob|ps 명령의 인수:

        복호화:
            /unprotect          -   'ps', 'rdg' 또는 'blob' 명령에 대해 CryptUnprotectData() 강제 사용
            /pvk:BASE64...      -   Base64로 인코딩된 DPAPI 도메인 개인 키 파일을 사용하여 접근 가능한 사용자 마스터키를 먼저 복호화
            /pvk:key.pvk        -   DPAPI 도메인 개인 키 파일을 사용하여 접근 가능한 사용자 마스터키를 먼저 복호화
            /password:X         -   일반 텍스트 비밀번호를 사용하여 대상 사용자의 마스터키 복호화 (원격 가능)
            /ntlm:X             -   NTLM 해시를 사용하여 대상 사용자의 마스터키 복호화 (원격 가능)
            /credkey:X          -   DPAPI credkey (도메인 또는 로컬 SHA1)를 사용하여 대상 사용자의 마스터키 복호화 (원격 가능)
            /rpc                -   도메인 컨트롤러에 요청하여 대상 사용자의 마스터키 복호화
            GUID1:SHA1 ...      -   하나 이상의 GUID:SHA1 마스터키를 사용하여 복호화
            /mkfile:FILE        -   하나 이상의 GUID:SHA1 마스터키가 포함된 파일 사용

        대상 지정:
            /target:FILE/folder -   특정 'Credentials', '.rdg|RDCMan.settings', 'blob' 또는 'ps' 파일 위치, 또는 'Vault' 폴더 분석
            /server:SERVER      -   원격 서버 분석 (관리자 권한 필요)
                                    참고: /pvk:KEY 또는 /password:X와 함께 사용해야 함
                                    참고: 'blob' 또는 'ps' 명령에는 적용되지 않음

인증서 분석:

    'certificates' 명령의 인수:
        /showall                                        -   설치된 인증서와 연결된 것뿐만 아니라 모든 복호화된 개인 키 파일 표시 (기본값)
        /machine                                        -   로컬 시스템 저장소를 사용하여 인증서 분석
        /mkfile | /target                               -   /machine 분석용
        [위의 사용자 분석에서 모든 복호화 인수]

참고: 대부분의 경우 사용자 DPAPI 비밀을 대상으로 하면 *triage*를, SYSTEM DPAPI 비밀을 대상으로 하면 *machinetriage*를 사용하세요.
      이 함수들은 자동으로 실행 가능한 다른 모든 함수를 래핑합니다.

SharpChrome 명령줄 사용법

  __                 _
 (_  |_   _. ._ ._  /  |_  ._ _  ._ _   _
 __) | | (_| |  |_) \_ | | | (_) | | | (/_ 
                |
  v1.9.0

도메인 컨트롤러의 DPAPI 백업 키를 가져옵니다. 선택적으로 DC와 출력 파일을 지정할 수 있습니다.

  SharpChrome backupkey [/nowrap] [/server:SERVER.domain] [/file:key.pvk]

'cookies', 'logins', 'statekeys' 명령의 전역 인수:

    복호화:
        /unprotect          -   CryptUnprotectData() 강제 사용 (권한 없는 실행의 기본값)
        /pvk:BASE64...      -   Base64로 인코딩된 DPAPI 도메인 개인 키 파일을 사용하여 접근 가능한 사용자 마스터키를 먼저 복호화
        /pvk:key.pvk        -   DPAPI 도메인 개인 키 파일을 사용하여 접근 가능한 사용자 마스터키를 먼저 복호화
        /password:X         -   일반 텍스트 비밀번호를 사용하여 대상 사용자의 마스터키 복호화 (원격 가능)
        /ntlm:X             -   NTLM 해시를 사용하여 대상 사용자의 마스터키 복호화 (원격 가능)
        /prekey:X           -   DPAPI prekey (도메인 또는 로컬 SHA1)를 사용하여 대상 사용자의 마스터키 복호화 (원격 가능)
        /rpc                -   도메인 컨트롤러에 요청하여 대상 사용자의 마스터키 복호화
        GUID1:SHA1 ...      -   하나 이상의 GUID:SHA1 마스터키를 사용하여 복호화
        /statekey:X         -   복호화된 AES 상태 키 ('statekey' 명령에서 가져온 것)

    대상 지정:
        /target:FILE        -   특정 'Cookies', 'Login Data' 또는 'Local State' 파일 위치 분석
        /target:C:\Users\X\ -   지정된 명령에 대해 특정 사용자 폴더 분석
        /server:SERVER      -   원격 서버 분석 (관리자 권한 필요) (참고: /pvk:KEY와 함께 사용해야 함)
        /browser:X          -   'chrome'(기본값), (Chromium 기반) 'edge' 또는 'slack' 분석

    출력:
        /format:X           -   'csv'(기본값) 또는 'table' 표시
        /showall            -   null 비밀번호가 있는 Login Data 항목 및 만료된 쿠키를 필터링하지 않고 표시 (기본값은 필터링)
        /consoleoutfile:X   -   모든 콘솔 출력을 디스크 파일로 출력

'cookies' 명령 특정 인수:
도구 다운로드