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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
dumpguard_bof — 최신 Windows 시스템의 세션에서 NTLMv1 해시를 추출하는 DumpGuard의 Beacon Object File (BOF) 포트 | Kitploit
도구/GitHubGitHub/0xedh/dumpguard_bof
Password AttacksExploitationPost-ExploitationPenetration TestingAuthenticationRed Teaming
GitHub0xedh/dumpguard_bof

dumpguard_bof

최신 Windows 시스템의 세션에서 NTLMv1 해시를 추출하는 DumpGuard의 Beacon Object File (BOF) 포트

저장소 보기
222247개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

DumpGuard BOF

최신 Windows 시스템에서 세션으로부터 NTLMv1 해시를 추출하는 DumpGuard의 Beacon Object File (BOF) 포트입니다.

Demo

이 프로젝트에 대하여

이 저장소는 원래 C#/.NET 구현에서 순수 C로 포팅된 DumpGuard의 Beacon Object File (BOF) 구현을 포함하며, Havoc 및 BOF 실행을 지원하는 다른 C2 프레임워크에서 사용할 수 있습니다.

이는 개념 증명(PoC)이자 학습 연습입니다.

이 BOF 포트는 원격 자격 증명 가드(Remote Credential Guard) 프로토콜, Kerberos 인증 흐름 및 기본 Windows 보안 메커니즘의 세부 사항을 이해하기 위한 개인적인 학습 과정의 일부로 만들어졌습니다. 이 도구를 C#에서 순수 C로 포팅하여 BOF로 실행하는 과정은 주로 교육적인 목적이었습니다.

다음 사항에 유의하십시오:

  • 이 코드에는 버그, 오류 또는 불완전한 구현이 포함될 수 있습니다.
  • 모든 Windows 버전이나 구성에서 광범위하게 테스트되지 않았습니다.
  • 일부 경계 사례나 프로토콜 미묘한 차이가 제대로 처리되지 않을 수 있습니다.
  • 구현이 원본과 다를 수 있어 신뢰성에 영향을 줄 수 있습니다.
  • 이는 프로덕션 준비 코드가 아닙니다. 사용자는 스스로 위험을 감수하십시오 Ü.

문제를 발견하거나 개선 사항이 있다면 기여를 환영합니다. 견고하고 잘 테스트된 구현을 위해서는 원본 DumpGuard 도구를 참조하십시오.

원본 연구

이 BOF는 SpecterOps의 @bytewreck의 연구 및 도구를 기반으로 합니다:

  • 원본 도구: github.com/bytewreck/DumpGuard
  • 블로그 게시물: Catching Credential Guard Off Guard

개요

DumpGuard는 Windows 원격 자격 증명 가드(RCG)를 이용하여 로그인한 사용자로부터 LSASS 메모리를 건드리지 않고 관리자 권한 없이 NTLMv1 해시를 추출합니다. Credential Guard가 활성화된 경우에도 작동합니다.

작동 방식

  1. 로컬에서 CredSSP/RDP 서버를 가장합니다. BOF가 가짜 RDP 서버 역할을 합니다.
  2. Windows SSPI를 속여 전체 Kerberos + CredSSP 인증을 수행하도록 합니다.
  3. 사용자의 자격 증명을 TSRemoteGuardCreds로 래핑된 형태로 수신합니다.
  4. LSA의 TSSSP 패키지를 호출하여 알려진 챌린지로 NTLMv1 응답을 계산합니다.

4라운드 CredSSP 댄스

4라운드 이후, 암호화된 자격 증명 Blob을 얻습니다. TSSSP 패키지로 LsaCallAuthenticationPackage를 호출할 때 마법이 일어납니다. LSA는 RDPEAR -> TSRemoteGuard -> MSV1_0을 통해 요청을 라우팅하여 비밀을 해독하고 NTLMv1 응답을 계산합니다.

배경

Credential Guard는 NTLM 및 Kerberos 비밀을 안전한 VBS 공간(LsaIso.exe)에 격리하여 Mimikatz와 같은 직접 메모리 액세스 공격을 방지합니다. 그러나 Credential Guard는 여전히 합법적인 인증을 위해 이러한 비밀을 사용해야 합니다. 이 기술이 바로 그 인터페이스를 악용합니다.

전체 기술 심층 분석은 다음을 참조하십시오: Catching Credential Guard Off Guard

구현

이 BOF 포트는 원본 DumpGuard 도구의 "Self" 모드만 구현합니다. "All" 모드는 이 버전에서 구현되지 않았습니다.

Self 모드

원격 자격 증명 가드 프로토콜을 통해 현재 프로세스 사용자의 NTLMv1 해시를 덤프합니다.

  • 권한 요구 사항: 없음 (현재 사용자 컨텍스트에서 실행)
  • Credential Guard 상태: Credential Guard 활성화 여부와 관계없이 작동
  • 요구 사항: 등록된 SPN이 있는 계정의 자격 증명

다른 사용자 해시 추출

이 BOF는 "self" 모드만 구현하지만, 예를 들어 해당 사용자로 실행 중인 프로세스에 주입하여 다른 사용자의 NTLMv1 해시를 추출할 수 있습니다. 예를 들어, 관리자 권한이 있는 경우 BOF를 다른 로그인 사용자가 소유한 프로세스에 주입하여 해당 해시를 얻을 수 있습니다.

사전 요구 사항

SPN 활성화 계정

이 기술을 사용하려면 SPN(서비스 사용자 이름)이 등록된 계정의 자격 증명이 필요합니다. 이를 위한 한 가지 방법은 컴퓨터 계정을 만들고 SPN을 추가하는 것입니다.

1단계: 컴퓨터 계정 만들기

Impacket 사용:

root@kitploit:~
python3 addcomputer.py -computer-name 'YOURCOMPUTER$' domain.local/user:password -dc-ip <DC_IP>

출력 예시:

root@kitploit:~
[*] Successfully added machine account YOURCOMPUTER$ with password <random_password>.

2단계: 컴퓨터 계정에 SPN 추가

krbrelayx의 addspn.py 사용:

root@kitploit:~
python3 addspn.py -u domain.local\\YOURCOMPUTER\$ -p '<password>' -s host/yourspn.domain.local --target-type samname <DC_IP>

3단계: SPN 확인 (원하는 경우)

pywerview 사용:

root@kitploit:~
python3 pywerview.py get-adobject -d domain.local -u YOURCOMPUTER\$ -p '<password>' -t <DC_IP> --sam-account-name YOURCOMPUTER\$

출력에서 serviceprincipalname: host/yourspn.domain.local을 찾으십시오.

사용법

Havoc C2

root@kitploit:~
inline-execute /path/to/dumpguard.x64.o x <domain> <username> <password> <spn>

참고: x 매개변수는 도메인 앞에 필요한 자리 표시자/더미 인수입니다. 이는 향후 버전(있는 경우)에서 해결될 수 있습니다.

예시:

root@kitploit:~
inline-execute /tmp/dumpguard.x64.o x sevenkingdoms.local EVIL_COMPUTER$ MXj070PQpCkNmZiYsRbIu8YYwgDKPD2r host/EVILSPN.sevenkingdoms.local

출력 예시:

root@kitploit:~
[DG] Domain: sevenkingdoms.local
[DG] User: EVIL_COMPUTER$
[DG] SPN: host/EVILSPN.sevenkingdoms.local
[DG] checkpoint 1: init APIs
[DG] SSPI init OK
[DG] checkpoint 2: acquire creds
[DG] checkpoint 3: starting SSPI loop
[DG] Round 1
[DG] AS-REQ: LTK derived, etype=18 len=32
[DG] AS-REQ: sending to KDC...
[DG] Round 2
[DG] Round 3
[DG] NTLMv1: SEVENKINGDOMS\EVIL_COMPUTER$::GOAD-WIN2025::6D270E39AD2DE48B561895C3257D7123FE84F1438B147E2A:1122334455667788

중요: 추출된 NTLMv1 해시는 BOF 프로세스를 실행 중인 사용자에게 속하며, 인증에 사용된 컴퓨터 계정(EVIL_COMPUTER$)이 아닙니다. 컴퓨터 계정 자격 증명은 KDC에 인증하고 원격 자격 증명 가드 세션을 설정하는 데만 사용됩니다.

출력은 hashcat 호환 NTLMv1 형식입니다:

root@kitploit:~
DOMAIN\user::HOSTNAME::NTRESPONSE:CHALLENGE

빌드

root@kitploit:~
make clean && make

출력: build/dumpguard.x64.o

요구 사항

  • 대상은 도메인에 가입된 Windows 시스템이어야 함
  • SPN이 활성화된 계정의 자격 증명이 필요함 (사전 요구 사항 참조)
  • BOF는 현재 프로세스 사용자의 컨텍스트에서 실행됨

참고 자료

Microsoft 문서

  • Credential Guard Overview
  • Remote Credential Guard
  • AcquireCredentialsHandle
  • InitializeSecurityContext
  • AcceptSecurityContext
  • LsaRegisterLogonProcess
  • LsaConnectUntrusted
  • LsaCallAuthenticationPackage

Microsoft 프로토콜

  • MS-RDPEAR - Remote Desktop Protocol: Authentication Redirection Virtual Channel Protocol
  • MS-CSSP - Credential Security Support Provider Protocol

연구 논문 및 블로그 게시물

  • Catching Credential Guard Off Guard - Valdemar Caroe, SpecterOps (2025)
  • Pass the Challenge: Defeating Windows Defender Credential Guard - Oliver Lyak (2022)
  • Windows Exploitation Tricks: Exploiting Arbitrary File Writes for Local Elevation of Privilege - James Forshaw, Project Zero (2018)
  • The LSA Whisperer Project - Evan McBroom, SpecterOps

라이선스

BSD 3-Clause 라이선스

원본 DumpGuard 도구는 BSD 3-Clause 라이선스에 따라 라이선스가 부여되며, 저작권 (c) 2025 Valdemar Carøe입니다. 이 BOF 포트는 동일한 라이선스 조건을 유지합니다.


질문, 버그 신고 또는 기여는 GitHub에 이슈를 열어 주십시오.

도구 다운로드
RoundClient -> ServerServer -> Client
1SPNEGO + TGT-REQTGT-REPLY (실제 KDC로부터)
2AP-REQ (서비스 티켓)AP-REP + MIC
3PubKeyAuth (바인딩 해시)서버 바인딩 해시
4AuthInfo (TSRemoteGuardCreds)N/A