August 10, 2026 · 5 min read

CVE-2025-33073-PoC

PoC · CVE-2025-33073

Tóm tắt

CVE-2025-33073 là một lỗ hổng kiểm soát truy cập không đúng cách trong Windows SMB (Server Message Block). Nó cho phép kẻ tấn công được ủy quyền nâng cao đặc quyền qua mạng. Lỗ hổng này cho phép kẻ tấn công truy cập thông tin nhạy cảm trong bộ nhớ của một quy trình hợp lệ (NT AUTHORITY\SYSTEM).

Introduction

1. CVE-2025-33073 Là Gì?

CVE-2025-33073 là một lỗ hổng leo thang đặc quyền (Privilege Escalation) cực kỳ nghiêm trọng được phát hiện trên các hệ thống Windows. Lỗ hổng này cho phép kẻ tấn công bypass (vượt qua) thành công các biện pháp giảm thiểu (mitigations) hiện có đối với kỹ thuật NTLM reflection. Còn được biết đến với tên gọi khác là "Reflective Kerberos Relay Attack" hoặc "NTLM Reflection SMB Flaw", lỗ hổng này cho phép kẻ tấn công đã xác thực (authenticated attackers) chiếm đoạt đặc quyền cao nhất – SYSTEM-level privileges – trên bất kỳ máy Windows nào chưa bật tính năng SMB signing.

2. NTLM Reflection Problem Là Gì?

Về bản chất, NTLM reflection là một dạng đặc biệt của NTLM authentication relay attack. Trong kịch bản này, luồng xác thực (authentication) không bị chuyển tiếp sang một máy mục tiêu khác, mà lại bị relay ngược trở lại chính máy khởi tạo phiên xác thực đó.

3. Lịch Sử Cuộc Chiến "Whack-a-Mole" Của Microsoft

Trong nhiều năm qua, Microsoft đã phải liên tục chơi trò đuổi bắt ("whack-a-mole") để ngăn chặn các biến thể khác nhau của dạng tấn công này qua từng phiên bản:

  • MS08-068 (2008): Ngăn chặn kỹ thuật NTLM reflection từ SMB sang SMB.
  • MS09-013 (2009): Khắc phục lỗ hổng reflection từ HTTP sang SMB.
  • MS15-076 (2015): Vá lỗ hổng reflection từ DCOM sang DCOM. Mặc dù hàng loạt bản vá đã được phát hành, sự xuất hiện của CVE-2025-33073 cho thấy NTLM reflection vẫn là một bài toán hóc chuẩn mực trong kiến trúc bảo mật của Windows khi chưa thể giải quyết triệt để vấn đề gốc rễ.

How it works?

Bước 1: Thao tác trên DNS Record (DNS Record Manipulation)

Cuộc tấn công bắt đầu bằng việc tạo một DNS record độc hại có chứa thông tin mục tiêu đã được đóng gói (marshalled target information). Kỹ thuật này — ban đầu được nghiên cứu và công bố bởi James Forshaw — cho phép mã hóa thêm dữ liệu phụ vào trong tên miền DNS. Kẻ tấn công sẽ tạo một DNS record dạng: srv11UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA Hoặc phổ biến hơn: localhost1UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA Tên DNS này bao gồm hai phần chính: Hostname part: srv1 hoặc localhost Marshalled data: 1UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA

Bước 2: Xử lý Target Name (Target Name Processing)

Khi hệ điều hành Windows xử lý tên mục tiêu này cho quá trình xác thực: Initial target name: cifs/srv11UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA After marshalled data removal: cifs/srv1 Hostname extraction: srv1 Hàm LsapCheckMarshalledTargetInfo sẽ loại bỏ phần dữ liệu marshalled, chỉ để lại hostname duy nhất.

Bước 3: Logic phát hiện Localhost (Localhost Detection Logic)

Hàm SspIsTargetLocalhost sau đó sẽ so sánh hostname vừa trích xuất được với các thông số sau:FQDN của máy (Ví dụ: SRV1.REFLECTION.THM)Hostname của máy (Ví dụ: SRV1) $\rightarrow$ Trùng khớp! (Match found)Chuỗi ký tự localhostVì hostname trùng khớp, Windows đưa ra kết luận rằng đây là một yêu cầu xác thực nội bộ (local authentication request).

Bước 4: Ép buộc xác thực (Authentication Coercion)

Kẻ tấn công sử dụng các kỹ thuật như PetitPotam để ép buộc một dịch vụ chạy dưới quyền SYSTEM (thường là lsass.exe) thực hiện xác thực tới máy chủ do chúng kiểm soát. PetitPotam khai thác protocol MS-EFSRPC để cưỡng ép xác thực mà không cần tương tác từ người dùng (user interaction).

Bước 5: Bỏ qua xác thực nội bộ (Local Authentication Bypass)

Khi SMB client kết nối tới máy chủ của kẻ tấn công: Credential negotiation: Client yêu cầu xác thực tới target. Target name evaluation: Hàm msv1_0!SspIsTargetLocalhost trả về giá trị TRUE. Local auth conditions met: Target xuất hiện dưới dạng localhost. Không có explicit credentials nào được chỉ định. Không yêu cầu một NULL session. Local auth triggered: Client đính kèm workstation và domain names vào gói tin NTLM_NEGOTIATE. Server response: Máy chủ của kẻ tấn công thiết lập flag "Negotiate Local Call". Token insertion: SYSTEM token được đưa vào server context.

Bước 6: Relay Token và Giả dạng (Token Relay & Impersonation)

Máy chủ relay của kẻ tấn công sẽ tiến hành: Nhận thông tin xác thực NTLM chứa SYSTEM token. Relay phiên xác thực này ngược trở lại máy mục tiêu thông qua giao thức SMB. Máy mục tiêu chấp nhận phiên xác thực này là cục bộ (local) nhờ flag "Negotiate Local Call". Kẻ tấn công chính thức chiếm được quyền truy cập cấp SYSTEM trên máy mục tiêu.

Khai thác Kerberos Subkey (Kerberos Subkey Exploitation)

Trong trường hợp sử dụng Kerberos thay vì NTLM: Subkey creation: Hàm KerbMakeKeyEx khởi tạo một AES subkey ngẫu nhiên. SYSTEM privilege check: Nếu người dùng là NT AUTHORITY\SYSTEM, hàm KerbCreateSKeyEntry sẽ lưu trữ subkey và token. Machine account verification: Server kiểm tra xem client name có trùng với machine name hay không. Subkey validation: Hàm KerbDoesSKeyExist xác nhận subkey tồn tại và thuộc về SYSTEM. Token elevation: Hàm KerbMakeTokenInformationV3 tạo ra một SYSTEM token đi kèm đặc quyền local admin.

PoC

Nmap scan

Bắt đầu bằng việc scan các port và dịch vụ trên target:

nmap -sCV -T5 TARGET_IP 

alt text

Coercion Check

Kiểm tra trạng thái SMB signing và các lỗ hổng coercion:

netexec smb TARGET_IP -u sawan -p R3flect0r -M coerce_plus 

img

DNS Registration

Dùng user domain bình thường để tạo một record DNS có chứa IP của máy attacker.

python3 dnstool.py -u 'reflection.thm'\\'sawan' -p 'R3flect0r' --action add --record localhost1UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA --data ATTACKER_IP TARGET_IP

img

References

https://www.synacktiv.com/en/publications/ntlm-reflection-is-dead-long-live-ntlm-reflection-an-in-depth-analysis-of-cve-2025 https://zedpwnweb.fr/WU-CVE-2025-33073.html https://nvd.nist.gov/vuln/detail/CVE-2025-33073 https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-33073