Skip to main content

Command Palette

Search for a command to run...

APT Weaver Ant tồn tại trong mạng lưới của một nhà cung cấp dịch vụ viễn thông trong hơn bốn năm

Updated
16 min read
APT Weaver Ant tồn tại trong mạng lưới của một nhà cung cấp dịch vụ viễn thông trong hơn bốn năm
T

Just a SOC Analyst ^^

Weaver Ant, một tác nhân đe dọa đến từ Trung Quốc được phát hiện đã xâm nhập vào một nhà cung cấp dịch vụ viễn thông lớn. Bằng cách sử dụng web shell và tunnel, những kẻ tấn công tồn tại và thực hiện hành vi gián điệp mạng trong suốt 4 năm.

Giới thiệu chung

Từ một vài cảnh báo đáng ngờ trong giai đoạn forensics, các nhà nghiên cứu bảo mật đã phát hiện một sự cố nghiêm trọng. Cụ thể, một tài khoản từng được nhóm tin tặc sử dụng đã bị vô hiệu hóa, nhưng sau đó lại được kích hoạt lại bởi một tài khoản dịch vụ. Đáng chú ý, hoạt động này bắt nguồn từ một máy chủ chưa từng được xác định là đã bị xâm nhập trước đó.

Quá trình điều tra sâu hơn đã phát hiện một biến thể của web shell China Chopper nằm trên một máy chủ nội bộ, máy chủ này đã bị xâm nhập trong nhiều năm. Có vẻ như việc loại bỏ nhóm tin tặc đầu tiên đã vô tình làm gián đoạn hoạt động của một nhóm tin tặc thứ hai, cũng có liên hệ với Trung Quốc, được các nhà bảo mật theo dõi dưới tên gọi Weaver Ant.

Phát hiện này đã thúc đẩy một cuộc điều tra pháp y số quy mô lớn, bao gồm việc săn tìm các biến thể web shell khác. Sử dụng YARA rule và các cơ chế làm giàu dữ liệu khác, nhóm điều tra đã xác định hàng chục web shell tương tự. Cuộc điều tra đã hé lộ toàn bộ một chiến dịch hoàn chỉnh phụ thuộc hoàn toàn vào web shell để duy trì quyền truy cập lâu dài (persistent), cho phép thực thi mã từ xa (remote code execution) và di chuyển ngang (lateral movement) thông qua kỹ thuật tunneling phức tạp.

Phân tích Web Shell

Trong quá trình truy vết web shell, hàng loạt mẫu web shell đã được phát hiện, khiến nhóm điều tra phải thực hiện phân loại kỹ lưỡng. Phân tích cho thấy nhóm tin tặc chủ yếu sử dụng hai loại web shell khác nhau: một loại được phân loại là Encrypted China Chopper, còn loại thứ hai không có bất kỳ tham chiếu công khai nào và được Sygnia đặt tên là web shell INMemory.

Encrypted China Chopper

Đặc điểm web shell Encrypted China Chopper

Web shell China Chopper là một công cụ nhỏ gọn cho phép kẻ tấn công truy cập từ xa và kiểm soát các máy chủ web bị xâm nhập. Được phát triển bởi các nhóm tin tặc Trung Quốc, công cụ này cung cấp các chức năng như quản lý file, thực thi command và trích xuất dữ liệu. Kích thước nhỏ và khả năng ẩn mình khiến China Chopper trở thành công cụ lý tưởng để duy trì quyền truy cập lâu dài, hỗ trợ khai thác sâu hơn, và lẩn tránh các giải pháp phòng thủ. Thêm vào đó, tính linh hoạt và dễ sử dụng đã khiến nó trở thành một lựa chọn phổ biến để thực hiện nhiều hoạt động độc hại trên các hệ thống mục tiêu.

Web shell được nhóm tin tặc sử dụng là một biến thể China Chopper hỗ trợ mã hóa payload bằng thuật toán AES. Mặc dù có chức năng đơn giản và dễ sử dụng, web shell này rất hiệu quả trong việc vượt qua các cơ chế phát hiện payload độc hại bằng Web Application Firewall - WAF.

Web shell China Chopper mã hóa chủ yếu được triển khai trên các máy chủ có tiếp xúc với Internet, và được viết bằng nhiều ngôn ngữ lập trình khác nhau như ASPX và PHP. Những máy chủ bị xâm nhập này đóng vai trò là điểm truy cập, cho phép kẻ tấn công xâm nhập vào mạng nạn nhân và thiết lập quyền truy cập lâu dài.

Hình 1. China Chopper Encrypted phiên bản viết bằng ASPX

Hình 2. China Chopper Encrypted phiên bản viết bằng PHP

Thách thức điều tra với China Chopper mã hóa

Hai đặc điểm của web shell mã hóa gây khó khăn trong quá trình điều tra pháp y:

  • Lẩn tránh dựa trên keyword: Kẻ tấn công đã cố tình sử dụng các keyword cụ thể làm tên tham số trong payload như 'password', 'key', và 'pass'. Kỹ thuật này giúp né tránh phát hiện, vì nhiều hệ thống WAF sẽ tự động ẩn hoặc làm mờ các từ này trong log. Do đó, nội dung thực của payload bị che giấu, khiến việc giám sát hoặc phân tích dữ liệu trở nên khó khăn.

  • Cắt ngắn payload: Kích thước payload vượt quá giới hạn ký tự mà WAF có thể ghi nhận, dẫn đến việc dữ liệu bị ghi log không đầy đủ. Điều này cản trở quá trình tái dựng đầy đủ payload, khiến cuộc điều tra thêm phức tạp.

Web shell INMemory

Đặc điểm web shell INMemory

Loại web shell thứ hai được quan sát trong cuộc tấn công này cho phép thực thi các mô-đun độc hại trực tiếp trong bộ nhớ.

Web shell này hoạt động bằng cách giải mã một chuỗi Base64 đã nén GZIP thành một tệp thực thi (PE) có tên 'eval.dll' và thực thi hoàn toàn trong bộ nhớ để né tránh bị phát hiện. Quy trình thực thi trong bộ nhớ gồm các bước sau:

  1. Giải mã chuỗi mã hóa Base64 thành mảng byte.

  2. Tạo một luồng bộ nhớ để lưu các byte đã mã hóa (memoryStream2).

  3. Giải nén luồng bộ nhớ thành luồng GZIP.

  4. Ghi các byte đã giải nén vào một luồng bộ nhớ mới và chuyển đổi thành mảng byte.

  5. Tải mảng byte đã giải mã và giải nén bằng 'Assembly.Load', thực thi payload mà không ghi ra ổ đĩa.

Để né tránh phát hiện, web shell còn làm rối mã bằng các chuỗi được mã hóa Base64. Một hàm có tên 'invoke' được thực thi trong web shell bằng cách sử dụng hai chuỗi mã hóa:

  • 'RVZBTC5lYW5kbGVy' → Giải mã thành 'EVAL.Handler' (trong đó 'EVAL' là namespace, 'Handler' là class).

  • 'SW52b2tl' → Giải mã thành 'Invoke', là hàm cụ thể trong payload độc hại.

Hình 3. ‘INMemory’ phiên bản viết bằng ASPX

Thực thi bằng 'eval.dll'

Web shell INMemory thực thi mã C# chứa trong tệp thực thi 'eval.dll', nó sẽ được chạy khi có payload gửi đến thông qua HTTP request. PE này được nhúng trong web shell dưới dạng chuỗi GZIP Base64 và lưu trong biến 'b'.

Khi được thực thi, web shell gọi hàm 'Invoke', truyền các tham số từ HTTP request cùng với một mã băm SHA256 cố định. Hàm này thực hiện các bước sau:

  1. Khớp băm SHA256:

    a. Hàm 'Invoke' tính toán SHA256 từ mỗi HTTP request header.

    b. So sánh giá trị tính được với giá trị SHA256 cố định.

  2. Mã hóa & Thực thi payload:

    a. Nếu HTTP request header khớp, nội dung sẽ được mã hóa hai lớp:

    i. Giai đoạn 1: mã hóa Base64

    ii. Giai đoạn 2: mã hóa UTF-8

    b. Cuối cùng, nội dung đã mã hóa sẽ được thực thi bằng hàm 'JScriptEvaluate' từ thư viện JScript, cho phép payload chạy động.

Việc sử dụng xác thực header dựa trên SHA256 và mã hóa đa tầng giúp tăng khả năng né tránh của web shell, khiến việc điều tra kỹ thuật số trở nên khó khăn. Hàm 'JScriptEvaluate' càng làm tăng độ phức tạp vì nó cho phép thực thi mã obfuscated hoặc payload động trong môi trường bị xâm phạm mà không cần ghi ra ổ đĩa.

Theo dõi hành vi kẻ tấn công

Trong quá trình truy quét web shell, rõ ràng là nhóm Weaver Ant vẫn đang hoạt động trong mạng lưới đã bị xâm nhập. Để điều tra một mối đe dọa mà không làm gián đoạn tiến trình hay khiến nhóm tin tặc cảnh giác, nhóm điều tra đã triển khai hình thức giám sát ngầm (stealth monitoring).

Việc giám sát không được thực hiện trực tiếp trên các máy bị xâm nhập, vì việc triển khai công cụ giám sát có thể khiến nhóm tin tặc phát hiện. Thay vào đó, nhóm điều tra sử dụng kỹ thuật nhân bản cổng (port mirroring) và thiết kế kiến trúc tự động hóa quá trình giải mã và giải đóng gói lưu lượng web shell.

Bằng cách hợp nhất dữ liệu thời gian thực từ nhiều nguồn log khác nhau — bao gồm cả HTTP request và raw response — nhóm điều tra đã xác định được nhiều payload do nhóm tin tặc triển khai và phát hiện một chiến dịch quy mô lớn, sử dụng cơ chế duy trì truy cập trên hàng chục máy chủ.

Nhóm tin tặc triển khai các web shell đơn giản lên máy chủ bị xâm nhập — thường chỉ là một dòng mã duy nhất, chẳng hạn phiên bản chỉnh sửa của China Chopper — và các web shell này chỉ đóng vai trò trung gian để thực thi các payload phức tạp hơn. Nhóm điều tra phát hiện nhiều loại payload khác nhau với mục đích riêng biệt, trong đó đáng chú ý nhất là công cụ tunneling HTTP dạng đệ quy.

Công cụ tunneling HTTP đệ quy

Công cụ này hoạt động như một web shell giai đoạn hai, cho phép tunneling HTTP để truy cập tài nguyên nội bộ. Nó chuyển tiếp các request tới các web server khác và hỗ trợ cả phiên bản ASPX lẫn PHP, đảm bảo khả năng tương thích rộng.

Công cụ sẽ giải mã các tham số (ví dụ: 'p1', 'p2', 'f') để tạo và thực thi các lệnh cURL một cách động dựa trên dòng thực thi.

Các bước trong cơ chế tunneling gồm:

  • Giải mã payload đã được mã hóa bởi công cụ tunneling đệ quy

  • Giải mã các tham số 'p1' và 'p2' từ Base64

  • Phân tích tham số để tái tạo các request HTTP hoặc lệnh cURL

  • Xây dựng và thực thi payload một cách động dựa trên đầu vào

  • Trả về phản hồi từ máy chủ sau khi chuyển tiếp request

Cơ chế tunneling thích ứng này cho phép nhóm tin tặc dễ dàng điều hướng giữa các môi trường web khác nhau và duy trì sự linh hoạt trong vận hành.

Hình 4. Đoạn mã trích từ công cụ tunneling HTTP đệ quy phiên bản PHP.

Tunneling trong web shell là gì?

Web shell thường được dùng để duy trì quyền truy cập hoặc thực thi mã trên hệ thống bị xâm nhập. Tuy nhiên, chúng cũng có thể được sử dụng để di chuyển ngang và kiểm soát điều khiển hệ thống. Kỹ thuật này gọi là Web Shell Tunneling.

Tunneling bằng web shell là kỹ thuật dùng nhiều web shell làm “máy chủ proxy”, chuyển tiếp lưu lượng HTTP đến một web shell khác trên máy chủ khác để thực thi payload. Cách này cho phép nhóm Weaver Ant hoạt động trên nhiều máy chủ thuộc nhiều phân đoạn mạng khác nhau — thường là máy chủ nội bộ không trực tiếp kết nối internet — bằng cách lợi dụng máy chủ công khai làm gateway.

Kỹ thuật này từng được nhiều nhóm tin tặc sử dụng, như Elephant Beetle. Lợi thế chính của kỹ thuật này là giúp nhóm tấn công di chuyển ngang trong hệ thống bị xâm nhập mà không cần triển khai thêm công cụ trên các máy chủ đích.

 Figure 7: Web Shell Tunneling flow.

Hình 5. Luồng hoạt động Web Shell Tunneling

Một lợi ích khác là lưu lượng được gửi qua HTTP/S, khiến hoạt động của chúng trông hợp lệ, vì máy chủ bị xâm nhập thường phục vụ dịch vụ web và việc có lưu lượng vào là điều bình thường.

Để triển khai phương pháp này, kẻ tấn công cần khả năng tạo lưu lượng HTTP/S từ máy chủ bị xâm nhập — thông qua các chức năng có sẵn trong web shell hoặc thông qua payload được thiết kế riêng. Khi đạt được điều này, web shell có thể hoạt động như proxy server, chuyển tiếp lưu lượng lệnh đã được đóng gói tới các máy chủ khác.

Bóc tách hành vi độc hại

Lưu lượng được truyền qua kỹ thuật tunneling bằng web shell đã được mã hóa. Để hỗ trợ điều tra pháp y, nhóm điều tra sử dụng kỹ thuật port mirroring để thu lại toàn bộ các gói dữ liệu đi qua một trong các máy chủ bị xâm nhập. Nhờ vậy, họ có thể tái tạo toàn bộ lưu lượng nhận được từ nhóm Weaver Ant ở dạng đã giải mã, cho phép lần theo hành vi của các payload.

Vì các payload được mã hóa đối xứng với khóa hardcoded nhúng trong web shell, nhóm ứng phó sự cố (IR) đã phát triển hệ thống tự động hóa để giải mã mọi payload mới mà web shell nhận được.

Cơ chế này cho phép "bóc tách" từng lớp mã hóa và làm rối trong mã của payload, từ đó khôi phục được lệnh hoặc mã nhị phân mà nhóm tin tặc muốn thực thi trên máy chủ. Weaver Ant đôi khi chỉ gửi tham số 'p1', nhưng cũng có lúc gửi cả 'p1' và 'p2' — với 'p2' đóng vai trò truyền tải một payload thứ hai đến máy chủ web khác, tạo nên chuỗi chuyển tiếp giữa các web shell.

Phương pháp của nhóm tin tặc được ví như một con búp bê Matryoshka, trong đó mỗi lớp giấu đi một lớp quan trọng hơn bên trong. Trong trường hợp này, các payload độc hại được bọc nhiều lớp mã hóa và làm rối, với mỗi lớp được bóc tách bởi web shell kế tiếp để mở ra payload kế tiếp. Cách phân lớp này giúp nhóm tin tặc che giấu ý đồ cho đến khi payload cuối cùng được mở, giống như con búp bê nhỏ nhất nằm sâu trong bộ búp bê lồng nhau.

Sau khi bóc tách toàn bộ, nhóm điều tra nhận ra rằng Weaver Ant triển khai nhiều payload khác nhau với những chức năng riêng biệt. Những payload này thể hiện mức độ tinh vi và khả năng ẩn mình của nhóm tấn công, giúp họ đạt được mục tiêu mà vẫn tránh được phát hiện và duy trì quyền truy cập lâu dài trong hệ thống.

Lẩn tránh qua ETW Patch & AMSI Bypass

Để tránh bị phát hiện, Weaver Ant sử dụng các kỹ thuật lẩn tránh mỗi khi chúng hoạt động trên hệ thống bị xâm nhập, bằng cách nạp các mô-đun độc hại trực tiếp vào bộ nhớ.

  • ETW (Event Tracing for Windows) là cơ chế ghi log cấp kernel của Windows dùng để theo dõi các sự kiện hệ thống. Nhóm tấn công đã chỉnh sửa các tiến trình theo dõi này, gây nhiễu hoặc loại bỏ log quan trọng như Sysmon, giúp chúng ẩn mình khỏi giám sát.

  • AMSI (Antimalware Scan Interface) là giao diện cho phép ứng dụng tích hợp với phần mềm chống mã độc. Nhóm tin tặc đã ghi đè hàm AmsiScanBuffer trong module amsi.dll, khiến các giải pháp bảo mật như EDR và antivirus mất hiệu lực, cho phép các lệnh PowerShell độc hại được thực thi mà không bị cản trở.

PowerShell mà không cần PowerShell

Weaver Ant còn sử dụng kỹ thuật tận dụng module Windows System.Management.Automation.dll để thực thi các lệnh PowerShell mà không khởi chạy tiến trình PowerShell.exe. Đây là thành phần cốt lõi điều khiển hoạt động của PowerShell trong Windows.

Nhờ vậy, kẻ tấn công có thể thực hiện các tác vụ trinh sát, di chuyển ngang và trích xuất dữ liệu mà không kích hoạt các công cụ giám sát vốn dựa vào việc phát hiện tiến trình PowerShell.exe. Điều này giúp nhóm tin tặc vượt qua các biện pháp bảo vệ dựa trên hành vi và signature, giảm đáng kể nguy cơ bị phát hiện.

Di chuyển ngang thông qua SMB

Dựa vào kỹ thuật PowerShell không cần PowerShell, nhóm tin tặc sử dụng module PowerShell Invoke-SMBClient để trinh sát và di chuyển ngang từ máy chủ web bị xâm nhập sang các máy chủ khác trong mạng nội bộ.

  • Invoke-SMBClient là module cho phép tương tác với các chia sẻ SMB, thực hiện các tác vụ như liệt kê chia sẻ, tải lên tệp và thực thi lệnh từ xa.

Điều này giúp nhóm tin tặc cài đặt thêm web shell lên nhiều máy chủ web khác, mở rộng vùng xâm nhập và tạo các điểm truy cập mới trong mạng nội bộ.

  • Chúng sử dụng thông tin xác thực hợp lệ, tận dụng các tài khoản có đặc quyền cao hoặc mật khẩu không thay đổi trong thời gian dài. Thay vì mật khẩu ở dạng plaintext, nhóm này sử dụng NTLM hash để kích hoạt công cụ.

Trong quá trình di chuyển, chúng thu thập log truy cập và file cấu hình như web.config, applicationHost.config từ các máy chủ IIS. Mục tiêu là thu thập thông tin đăng nhập ở dạng rõ, hiểu được cách hoạt động của máy chủ và xác định xem nó có phục vụ người dùng bên ngoài hay không.

Hình 6. Chuỗi triển khai web shell

Hoạt động trinh sát (Reconnaissance)

Weaver Ant sử dụng các lệnh Invoke-SharpView để trinh sát các Domain Controller trong cùng một Active Directory (AD) Forest. Ví dụ:

  • Get-DomainUserEvent

  • Get-DomainSubnet

  • Get-DomainUser

  • Get-NetSession

Mục tiêu chính là liệt kê môi trường AD bị xâm nhập, xác định tài khoản có đặc quyền cao và các máy chủ quan trọng, rồi đưa vào danh sách mục tiêu.

Kết quả các lệnh thường được lưu dưới dạng file trong C:\ProgramData, sau đó nén bằng hàm PowerShell Invoke-ZIP trước khi trích xuất ra ngoài.

Khuyến nghị để truy vết Weaver Ant

  • Bật logging IIS và chuyển log vào hệ thống SIEM, cấu hình header X-Forwarded-For (XFF)

    • Giám sát các hành vi gián đoạn hoặc dừng trong việc thu thập log
  • Giám sát quá trình tạo trang web từ các tiến trình máy chủ (như w3wp.exe, tomcat6.exe)

  • Giám sát việc thực thi lệnh từ các tiến trình máy chủ web (w3wp.exe, tomcat6.exe)

  • Giám sát các HTTP request có payload bất thường lớn

  • Giám sát các tham số bất thường trong HTTP request

  • Bật transcript logging cho PowerShell để ghi nhận và phân tích hành vi đáng ngờ

Khuyến nghị

Phía FPT Threat Intelligence khuyến nghị tổ chức và cá nhân một số cách để phòng chống chiến dịch tấn công này:

  • Giới hạn quyền: Hạn chế quyền của tài khoản dịch vụ web xuống mức tối thiểu cần thiết.

  • Kiểm soát lưu lượng quản trị: Dùng ACL và firewall để hạn chế lưu lượng quản trị giữa web server và hệ thống nội bộ (đặc biệt là SMB và HTTP/S).

  • Đảm bảo vệ sinh tài khoản: Triển khai LAPS, gMSA hoặc giải pháp PIM để thay đổi mật khẩu định kỳ.

  • Tăng cường phát hiện: Triển khai EDR/XDR để giám sát bộ nhớ cho các hoạt động độc hại, bao gồm cả web shell trong bộ nhớ.

  • Củng cố bảo mật web: Tinh chỉnh WAF và hệ thống log để phát hiện mã độc rối và hành vi bất thường liên quan đến China Chopper hoặc INMemory web shell.

  • Sao lưu dữ liệu an toàn: Đảm bảo có các bản sao lưu ngoại tuyến định kỳ để phục hồi dữ liệu trong trường hợp bị mã hóa hoặc mất mát dữ liệu do mã độc.

  • Cập nhật hệ thống: Luôn cập nhật các bản vá bảo mật hệ điều hành, ứng dụng và firmware để bảo vệ thiết bị khỏi các lỗ hổng đã biết.

Tham khảo

Newsletters

Part 1 of 50

More from this blog

F

FPT IS Security

761 posts

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