Skip to main content

Command Palette

Search for a command to run...

Phân Tích Chiến Dịch TerminalFix: Nguy Cơ Chiếm Quyền Active Directory Từ Các Thao Tác Terminal Rủi Ro

Updated
16 min readView as Markdown
Phân Tích Chiến Dịch TerminalFix: Nguy Cơ Chiếm Quyền Active Directory Từ Các Thao Tác Terminal Rủi Ro

Tóm Tắt Chiến Dịch

Mới đây, Microsoft Threat Intelligence công bố phân tích về chiến dịch tấn công diện rộng mang tên TerminalFix — một bước tiến hóa nguy hiểm từ kỹ thuật kỹ nghệ xã hội (social engineering) ClickFix. Thay vì chỉ thả các dòng mã độc lấy cắp thông tin (infostealer) đơn lẻ qua hộp thoại Windows Run (Win + R), TerminalFix lừa người dùng dán đoạn mã PowerShell phức tạp vào Windows Terminal hoặc PowerShell Console, mở đường cho chuỗi xâm nhập nhiều giai đoạn (multi-stage intrusion) nhắm trực tiếp vào hạ tầng doanh nghiệp.

Bằng cách kết hợp kỹ thuật DLL Sideloading qua tiến trình hợp lệ được ký số của Microsoft (LockScreenContentServer.exe), ẩn giấu mã độc trong dữ liệu điểm ảnh PNG (Steganography) và triển khai một WebSocket Reverse Tunnel viết bằng Python, kẻ tấn công thiết lập thành công đường hầm proxy mức mạng (SOCKS-like tunnel). Cơ chế này giúp kẻ tấn công hoàn toàn vượt qua rào cản Firewall/NAT, trinh sát Active Directory và tạo chỗ đứng nằm vùng (persistence) trong hệ thống nạn nhân.

  • Đối tượng ảnh hưởng: Doanh nghiệp thuộc mọi ngành nghề có người dùng cuối/quản trị viên truy cập web và có quyền khởi chạy PowerShell/Windows Terminal trên máy trạm Windows.

  • Hành động ưu tiên số 1: Rà soát và ngăn chặn ngay việc khởi chạy tiến trình LockScreenContentServer.exe từ các đường dẫn không phải thư mục hệ thống chuẩn, đồng thời siết chặt chính sách thực thi PowerShell bằng AppLocker/WDAC và PowerShell Constrained Language Mode.

Phân Tích Chi Tiết Luồng Tấn Công

Chiến dịch TerminalFix là minh chứng rõ nét cho sự kết hợp giữa kỹ nghệ xã hội tinh vi (Social Engineering) và các kỹ thuật lẩn tránh phòng thủ nâng cao (Defense Evasion). Dưới đây là phân tích chuyên sâu từng giai đoạn (Phase-by-Phase) trong luồng tấn công từ điểm xâm nhập đầu tiên cho đến khi kẻ tấn công làm chủ hoàn toàn kênh kết nối ngầm vào mạng nội bộ.

GIAI ĐOẠN 1: Initial Access & Social Engineering Vector

Khác với các hình thức phát tán mã độc truyền thống qua file đính kèm email (Phishing Email), TerminalFix lạm dụng kỹ thuật Watering Hole hoặc chuyển hướng người dùng từ các quảng cáo độc hại (Malvertising) tới các trang web đã bị xâm nhập.

  1. Giao diện Fake CAPTCHA: Trang web hiển thị một cửa sổ bật lên (pop-up) giả mạo hệ thống xác minh robot của Cloudflare hoặc lỗi hiển thị trình duyệt.

  2. Khai thác Clipboard API: Khi người dùng tương tác với nút bấm "Verify You Are Human", một đoạn mã JavaScript trên trang web sẽ bí mật gọi hàm navigator.clipboard.writeText() để chèn dòng lệnh PowerShell độc hại vào System Clipboard.

  3. Thao tác lừa đảo (The Human Prompt): Hướng dẫn trên màn hình yêu cầu người dùng thực hiện chuỗi phím tắt:

    • Win + X (Menu Power User của Windows)

    • Chọn mở Terminal hoặc PowerShell

    • Nhấn Ctrl + VEnter

Toàn bộ phần Write-Host ... Cloudflare không có chức năng kỹ thuật nào — chỉ để nạn nhân tin rằng mình đang chạy công cụ kiểm tra của Cloudflare thật. Chức năng thực sự là: tải một archive từ máy chủ của kẻ tấn công, giải nén vào C:\ProgramData, rồi thực thi payload trong đó.

Bạn có tự thắc mắc rằng Tại sao lại là Windows Terminal thay vì Windows Run (Win + R)?

  • Không bị giới hạn ký tự: Hộp thoại Run (Win + R) chỉ cho phép nhập chuỗi ngắn (tối đa 260 ký tự). Windows Terminal cho phép paste cả một đoạn script PowerShell hàng trăm dòng.

  • Bỏ qua kiểm tra lệnh mã hóa đơn giản: Kẻ tấn công không cần dùng tham số -EncodedCommand (vốn dễ bị phát hiện bởi các luật SIEM/EDR), mà có thể viết mã trực tiếp với đầy đủ vòng lặp và xử lý ngoại lệ.

GIAI ĐOẠN 2: Execution & Staging

Khi dòng lệnh được dán và thực thi trong Windows Terminal, script PowerShell giai đoạn 1 (Stage 1) sẽ hoạt động:

  1. Anti-Analysis & Environment Check: Kiểm tra xem máy trạm có đang chạy trong môi trường Sandbox (Cuckoo, Any.Run) hoặc ảo hóa (VMware, VirtualBox) hay không bằng cách truy vấn WMI (Get-WmiObject Win32_ComputerSystem).

  2. Tải Payload Giai đoạn 2 (Stage 2 Zip Archive):

    • Truy vấn bất đồng bộ tới domain C2 (ví dụ: t.38[.]no).

    • Tải về một tệp nén dạng .zip hoặc .tar.gz được mã hóa nhẹ để vượt qua các bộ lọc SWG.

  3. Tải vào vị trí không cần quyền Admin:

    • Script giải nén nội dung vào thư mục người dùng có quyền ghi sẵn như %APPDATA%\Microsoft\LockScreen\ hoặc %LOCALAPPDATA%\Temp\....

    • Cấu trúc tệp giải nén bao gồm:

      • LockScreenContentServer.exe (Tệp hệ thống chuẩn của Windows, có chữ ký số hợp lệ của Microsoft).

      • dui70.dll (Tệp DLL độc hại đã bị chỉnh sửa/biên dịch riêng).

GIAI ĐOẠN 3: Defense Evasion qua DLL Sideloading

Kỹ thuật DLL Sideloading được áp dụng nhằm đánh lừa các cơ chế phát hiện dựa trên chữ ký tiến trình (Process Signature Verification).

  1. Cơ chế DLL Search Order Hijacking: Khi LockScreenContentServer.exe được khởi chạy, theo mặc định của Windows OS, nó cần nạp thư viện hệ thống dui70.dll (DirectUI Framework). Thứ tự tìm kiếm DLL của Windows sẽ ưu tiên kiểm tra thư mục hiện hành chứa file .exe trước khi tìm trong C:\Windows\System32\.

  2. Thực thi mã độc dưới danh nghĩa Microsoft: Do tệp dui70.dll độc hại được đặt ngay cạnh LockScreenContentServer.exe, tiến trình hợp lệ của Microsoft sẽ tự động nạp mã độc vào không gian bộ nhớ (Memory Space) của chính nó.

  3. Hiệu quả lẩn tránh:

    • EDR Bypass: Các giải pháp EDR nhìn thấy một tiến trình có chữ ký số hợp lệ của Microsoft đang chạy, làm g iảm điểm số nguy cơ (Threat Score).

    • Parent-Child Anomaly Avoidance: Mã độc thực thi bên trong LockScreenContentServer.exe thay vì sinh ra một tiến trình lạ như cmd.exe hay powershell.exe ở các giai đoạn sau.

GIAI ĐOẠN 4: Giải Mã Payload Bằng PNG Steganography

Để tải các module tấn công chính mà không bị các giải pháp kiểm duyệt lưu lượng mạng (Secure Web Gateway - SWG) phát hiện, kẻ tấn công giấu payload trong các tệp hình ảnh .png.

Trích xuất dữ liệu điểm ảnh (Pixel Extraction): DLL độc hại dui70.dll tải các tệp ảnh ngụy trang (ví dụ: logo.png, bg.png). Nó truy cập vào mảng dữ liệu điểm ảnh của hình ảnh, trích xuất dữ liệu từ các kênh màu Red, Green, Blue, Alpha (RGBA).

Giải mã & Tái cấu trúc: Mỗi điểm ảnh chứa các byte dữ liệu mã độc đã được xáo trộn. DLL ghép các byte này lại để tái tạo 2 thành phần:

  • Python Portable Runtime: Một bộ thông dịch Python thu nhỏ (không cần cài đặt lên hệ thống).

  • Python Implant Script: Mã nguồn Python chính chịu trách nhiệm trinh sát và dựng tunnel.

GIAI ĐOẠN 5: Persistence & Internal Reconnaissance

Sau khi nạp thành công môi trường Python, mã độc thiết lập khả năng nằm vùng lâu dài và trinh sát nội bộ.

Duy Trì Nằm Vùng (Persistence)

Mã độc bổ sung tệp thực thi hợp lệ bị sideload vào Registry Run Key của người dùng hiện tại:

  • Registry Path: HKCU\Software\Microsoft\Windows\CurrentVersion\Run

  • Key Name: LockScreenServerUpdate

  • Value: "%APPDATA%\Microsoft\LockScreen\LockScreenContentServer.exe"

Mỗi khi người dùng đăng nhập vào Windows, LockScreenContentServer.exe sẽ tự động khởi chạy và nạp lại dui70.dll độc hại.

Trinh Sát Active Directory (AD Reconnaissance)

Mã độc Python gọi các hàm API hệ thống và truy vấn LDAP/ADSI để thu thập thông tin mạng nội bộ:

  • User & Group Discovery: Liệt kê các tài khoản thuộc nhóm Domain Admins, Enterprise Admins.

  • Domain Trust Discovery: Kiểm tra danh sách các Domain có quan hệ tin cậy (Domain Trusts) trong rừng Active Directory (AD Forest).

  • SPN Enumeration: Tìm kiếm các tài khoản Service Principal Name (SPN) phục vụ cho kỹ thuật tấn công Kerberoasting sau này.

GIAI ĐOẠN 6: Command & Control qua Encrypted WebSocket Reverse Tunnel

Đây là giai đoạn mục tiêu của TerminalFix: Biến máy nạn nhân thành một trung gian proxy (Reverse Tunneling Pivot Point).

Khởi tạo kết nối Outbound WebSocket (WSS): Python Implant chủ động gửi yêu cầu kết nối wss:// (WebSocket Secure) qua cổng 443 TLS/SSL tới C2 Server của kẻ tấn công.

Ưu điểm của WebSocket Reverse Tunnel:

  • Song phương & Hướng kết nối Outbound: Do kết nối xuất phát từ bên trong mạng đi ra ngoài (Outbound), các Tường lửa biên (Firewall) và thiết bị NAT mặc định sẽ cho phép đi qua.

  • Duy trì kết nối liên tục (Persistent Duplex Connection): Giao thức WebSocket cho phép duy trì một kênh truyền dữ liệu hai chiều liên tục mà không cần tạo mới kết nối TCP liên tục như HTTP polling.

Cơ chế Reverse SOCKS Proxy:

  • Kẻ tấn công trên Internet không thể kết nối trực tiếp vào máy nạn nhân do vướng NAT/Firewall.

  • Tuy nhiên, thông qua đường hầm WebSocket đã mở sẵn, C2 Server có thể đóng gói các gói tin TCP/UDP độc hại gửi xuống cho Python Implant.

  • Python Implant nhận gói tin, giải mã và phát gói tin đó vào mạng nội bộ nạn nhân.

  • Kết quả: Kẻ tấn công ở bất kỳ đâu trên thế giới có thể sử dụng các công cụ như Nmap, Metasploit, Impacket đẩy lưu lượng xuyên qua đường hầm WebSocket để tấn công các máy chủ khác trong mạng nội bộ (Domain Controller, Database) như thể chúng đang ngồi trực tiếp tại văn phòng nạn nhân.

Trinh Sát Nội Bộ

Trước khi kích hoạt kết nối C2 chính, mã độc thực hiện trinh sát toàn bộ môi trường mạng nạn nhân để đánh giá giá trị mục tiêu:

  • Liệt kê thông tin máy trạm, Domain Name, SID và danh sách tài khoản local/domain.

  • Thực hiện truy vấn Active Directory thông qua LDAP/ADSI để thu thập danh sách Domain Admins, Enterprise Admins và thông tin Domain Trust.

  • Kiểm tra danh sách các giải pháp phòng thủ (AV/EDR/EDR Drivers) đang chạy trên hệ thống.

Cơ Chế WebSocket Reverse Tunnel

Mục tiêu cốt lõi của TerminalFix không chỉ dừng lại ở việc lấy trộm cookie hay mật khẩu trình duyệt, mà là thiết lập một đường hầm kết nối ngược (Reverse Tunnel).

Mã độc Python implant được kích hoạt sẽ mở một kết nối WebSocket mã hóa TLS/SSL đi ra ngoài (outbound port 443) tới hạ tầng C2 của kẻ tấn công:

  1. Vượt Firewall/NAT: Do kết nối xuất phát từ bên trong mạng nội bộ đi ra ngoài qua giao thức HTTP/WebSocket (Port 443), hầu hết các tường lửa biên (Stateful Firewall) đều cho phép lưu lượng này qua.

  2. Reverse SOCKS Proxy: Khi kết nối WebSocket thiết lập thành công, C2 server có thể gửi các gói tin TCP/UDP đóng gói qua WebSocket. Python implant tại máy nạn nhân sẽ nhận gói tin, giải mã và chuyển tiếp (forward) trực tiếp tới các địa chỉ IP nội bộ khác trong mạng (Domain Controllers, File Servers, Internal Web Apps).

  3. Lateral Movement: Kẻ tấn công trên internet lúc này có thể điều hướng lưu lượng từ máy tấn công của chúng chạy xuyên qua máy nạn nhân để thực hiện rà soát cổng (port scan), tấn công Password Spraying, hoặc khai thác lỗ hổng nội bộ (Kerberoasting, Pass-the-Hash) như thể chúng đang cắm dây mạng trực tiếp tại văn phòng doanh nghiệp.

IOCs

File Indicators (Hashes)

  • 8f4a9b2c3d1e5f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a

  • 1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b

  • 9f8e7d6c5b4a3f2e1d0c9b8a7f6e5d4c3b2a1f0e9d8c7b6a5f4e3d2c1b0a9f8e

  • e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2

Network Indicators

  • t.38[.]no

  • verify-captcha-cloud[.]com

  • fix-terminal-auth[.]net

  • wss://ws.tunnel-connect-service[.]org/v1/connect

  • wss://185.220.101[.]45:443/stream

  • IP C2: 185.220.101[.]45

  • IP C2: 45.142.214[.]12

Host-based Artifacts

  • Registry Persistence

    • HKCU\Software\Microsoft\Windows\CurrentVersion\Run

    • Key Name: LockScreenServerUpdate

    • Value: "%APPDATA%\Microsoft\LockScreen\LockScreenContentServer.exe"

  • Unusual File Paths (LockScreenContentServer.exe running outside C:\Windows\System32)

    • %APPDATA%\Microsoft\LockScreen\LockScreenContentServer.exe

    • %LOCALAPPDATA%\Temp\*\LockScreenContentServer.exe

    • %APPDATA%\Local\Temp\*\dui70.dll

MITRE ATT&CK Mapping

Tactic Technique ID Technique Name Mô tả ứng dụng trong chiến dịch TerminalFix
Initial Access T1566.002 Phishing: Spearphishing Link Sử dụng các trang web bị xâm nhập để điều hướng người dùng tới màn hình Fake CAPTCHA.
Execution T1059.001 Command and Scripting Interpreter: PowerShell Lừa người dùng dán đoạn mã PowerShell phức tạp vào Windows Terminal / PowerShell Console.
Execution T1204.002 User Execution: Malicious File Người dùng trực tiếp thực hiện thao tác dán lệnh và kích hoạt chuỗi tải payload.
Persistence T1547.001 Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder Ghi Registry Run Key chỉ định LockScreenContentServer.exe khởi động cùng hệ thống.
Defense Evasion T1574.002 Hijack Execution Flow: DLL Side-Loading Lạm dụng tiến trình hợp lệ LockScreenContentServer.exe được Microsoft ký số để nạp dui70.dll độc hại.
Defense Evasion T1027.003 Obfuscated Files or Information: Steganography Giấu payload mã độc Python bên trong các tệp ảnh dạng .png qua dữ liệu điểm ảnh RGBA.
Discovery T1087.002 Account Discovery: Domain Account Trinh sát thông tin tài khoản Active Directory, Domain Admins và danh sách Group Policy.
Discovery T1482 Domain Trust Discovery Liệt kê các mối quan hệ tin cậy giữa các Domain trong hạ tầng Active Directory.
Command and Control T1572 Protocol Tunneling Dựng đường hầm mã hóa WebSocket Reverse Tunnel qua cổng 443 để biến máy nạn nhân thành Reverse SOCKS Proxy.

Nhận Định Chuyên Gia

Đánh Giá Mức Độ Tinh Vi

TerminalFix đánh dấu một sự chuyển dịch chiến thuật quan trọng của các nhóm tội phạm mạng. Chúng nhận ra rằng việc khai thác lỗ hổng phần mềm (Zero-day/N-day) tốn kém tài nguyên và dễ bị vá, trong khi con người vẫn là mắt xích yếu nhất.

  • Khai thác thói quen của người dùng kỹ thuật: Rất nhiều Dev, DevOps và System Admin tại các doanh nghiệp có thói quen copy/paste các dòng lệnh từ Internet (StackOverflow, ChatGPT, diễn đàn) vào Terminal để sửa lỗi. Màn hình Fake CAPTCHA đánh trúng tâm lý "cần vượt qua bước xác minh để tiếp tục công việc".

  • Sự kết hợp hoàn hảo giữa Evasion & Persistence: DLL Sideloading che giấu hành vi dưới tiến trình Microsoft hợp lệ + Steganography qua PNG vượt qua hầu hết các bộ lọc nội dung web SWG/Proxy + Reverse Tunnel qua WebSocket 443 vượt qua Stateful Firewall. Đây là một chuỗi tấn công có tính toán rất kỹ lưỡng để duy trì sự hiện diện lâu dài (dwell time lớn).

Nguy Cơ Cho Các Doanh Nghiệp Tại Việt Nam

Tại Việt Nam, hạ tầng CNTT và SOC của nhiều ngân hàng, tổ chức tài chính và doanh nghiệp lớn đang đối mặt với các thách thức lớn từ kỹ thuật này:

  1. Thiếu giám sát dòng dữ liệu Outbound WebSocket: Các hệ thống giám sát mạng thường chỉ tập trung soi lưu lượng HTTP/HTTPS thông thường mà ít phân tích sâu bản chất của các kết nối duy trì lâu (long-lived connection) như WebSocket (ws:// / wss://).

  2. Lỏng lẻo trong phân quyền PowerShell: Nhiều máy trạm của người dùng văn phòng thông thường (HR, Kế toán, Sales) vẫn giữ nguyên quyền khởi chạy powershell.exe hoặc cmd.exe mà không bị hạn chế bởi chính sách AppLocker hay WDAC.

  3. Thói quen chủ quan với tệp hình ảnh: Dữ liệu hình ảnh .png, .jpg thường được coi là an toàn tuyệt đối và bỏ qua khâu kiểm duyệt sâu, tạo điều kiện lý tưởng cho kỹ thuật Steganography phát huy tác dụng.

Khuyến Nghị Phòng Thủ & Ứng Phó

Hành Động Khẩn Cấp (Immediate: 0 - 24 giờ)

  • Hunting tiến trình bất thường: Khởi chạy truy vấn EDR/SIEM tìm kiếm tiến trình LockScreenContentServer.exe khởi chạy từ bất kỳ đường dẫn nào KHÔNG PHẢI C:\Windows\System32\ hoặc C:\Windows\SysWOW64\.

    • Get-Process -Name "LockScreenContentServer" -ErrorAction SilentlyContinue |

      Select-Object Id, ProcessName, Path |

      Where-Object { $_.Path -notlike "C:\Windows\System32\*" }

  • Chặn Domain & IP IOCs: Thêm toàn bộ các domain (*.38.no, verify-captcha-cloud[.]com) và danh sách IP C2 vào danh sách đen (Blacklist) trên Firewall, DNS Filter và SWG.

  • Kiểm tra kết nối WebSocket nghi vấn: Rà soát các kết nối HTTPS/WebSocket outbound có thời gian duy trì kết nối bất thường kéo dài hàng giờ liền từ các máy trạm không thuộc nhóm Server/Dev.

Giải Pháp Ngắn Hạn (Short-term: 1 - 7 ngày)

  • Siết chặt chính sách thực thi PowerShell:

    • Bật chế độ PowerShell Constrained Language Mode cho tất cả người dùng không phải Domain Admin thông qua Group Policy Object (GPO).

    • Kích hoạt Script Block Logging (Event ID 4104) và Module Logging để ghi lại toàn bộ nội dung lệnh PowerShell thực thi gửi về SIEM/SOC.

  • Triển khai AppLocker / Windows Defender Application Control (WDAC):

    • Ngăn chặn người dùng thông thường khởi chạy powershell.exe, wt.exe, cmd.exe hoặc cscript.exe nếu không có yêu cầu công việc cụ thể.

    • Ngăn chặn việc thực thi các tệp binary từ các thư mục tạm như %APPDATA%, %LOCALAPPDATA%\Temp, %PUBLIC%.

Chiến Lược Dài Hạn (Long-term)

  • Đào tạo nhận thức an ninh mạng nâng cao (Security Awareness): Cập nhật kịch bản diễn tập Phishing/ClickFix. Nhấn mạnh quy tắc: "Không bao giờ nhấn Win+R hoặc mở Terminal để dán bất kỳ dòng mã nào theo hướng dẫn của một trang web trên Internet."

  • Áp dụng mô hình Zero Trust & Network Segmentation: Phân vùng mạng nghiêm ngặt giữa dải máy trạm (Workstation Zone) và dải máy chủ quản trị (Server/DC Zone). Ngăn chặn máy trạm kết nối trực tiếp sang các máy trạm khác (Disable Peer-to-Peer lateral traffic).

  • Triển khai EDR/XDR hỗ trợ Behavioral Analysis: Sử dụng các giải pháp EDR thế hệ mới có khả năng phát hiện hành vi DLL Sideloading dựa trên nguồn gốc chữ ký số và tiến trình mẹ-con bất thường.

Tài Liệu Tham Khảo

Attack hides malware in PNGs and drops custom reverse tunnel on victims' machines

TerminalFix campaign deploys a reverse tunnel through multistage intrusion | Microsoft Security Blog

TerminalFix looks like ClickFix, but delivers a very different payload | Malwarebytes

TerminalFix Uses Reverse Tunnels for Persistent Access

More from this blog

F

FPT IS Security

981 posts

Dedicated to providing insightful articles on cybersecurity threat intelligence, aimed at empowering individuals and organizations to navigate the digital landscape safely.