Mục lục:
- Giới thiệu
- Chuỗi lây nhiễm
- Cây quy trình
- Chiến dịch 1:
– Sự kiên trì
– Tệp hàng loạt
– Tập lệnh PowerShell
– Người nạp
– Xworm/Remcos - Chiến dịch 2
- Kết luận
- IOCS
- Phát hiện
- TTP tấn công MITRE
Giới thiệu:
Các chiến dịch đe dọa gần đây đã tiết lộ việc sử dụng các trình tải dựa trên BAT để phát tán Trojan Truy cập Từ xa, bao gồm XWorm và Remcos. Các chiến dịch này thường bắt đầu bằng một tệp ZIP, thường được lưu trữ trên các nền tảng đáng tin cậy như ImgKit, và được thiết kế để xuất hiện dưới dạng nội dung hợp pháp nhằm thu hút sự tương tác của người dùng.
Sau khi giải nén, tệp ZIP chứa một tập lệnh BAT được mã hóa cao, đóng vai trò là giai đoạn đầu của chuỗi lây nhiễm. Các tệp BAT này sử dụng các kỹ thuật tiên tiến để tránh bị phát hiện tĩnh và chịu trách nhiệm thực thi các trình tải dựa trên PowerShell để đưa trực tiếp mã độc RAT vào bộ nhớ. Phương pháp này cho phép thực thi không cần tệp, một xu hướng ngày càng tăng trong phần mềm độc hại hiện đại nhằm vượt qua các biện pháp phòng thủ điểm cuối.
Một diễn biến đáng chú ý trong chiến dịch này là việc sử dụng các tệp SVG để phát tán các tập lệnh BAT độc hại. Các tệp SVG này chứa JavaScript nhúng, kích hoạt chuỗi thực thi khi được hiển thị trong môi trường dễ bị tấn công hoặc được nhúng trong các trang lừa đảo. Kỹ thuật này nhấn mạnh sự chuyển dịch sang sử dụng các định dạng tệp phi truyền thống để phát tán phần mềm độc hại, khai thác khả năng viết tập lệnh của chúng để tránh bị phát hiện.
Chuỗi nhiễm trùng:

Cây quy trình:

Chiến dịch 1:
Trong quá trình phân tích Chiến dịch 1, chúng tôi đã xác định được nhiều tập lệnh BAT liên quan đến chiến dịch, cho thấy bối cảnh mối đe dọa đang phát triển. Một số tập lệnh này dường như đang được phát triển tích cực, chứa mã một phần hoặc mã giai đoạn thử nghiệm, trong khi những tập lệnh khác hoạt động đầy đủ và có khả năng thực hiện toàn bộ chuỗi tấn công, bao gồm tải xuống và thực thi payload.
Hình ảnh bên dưới giới thiệu hai tệp BAT:
- Phương pháp 1: Gửi trực tiếp dưới dạng tệp đính kèm qua EML (tệp email).
- Phương pháp 2: Tải xuống thông qua URL được lưu trữ trên nền tảng ImageKit.
Sự thay đổi trong phương thức phát tán này cho thấy kẻ tấn công đang thử nghiệm nhiều cách tiếp cận khác nhau để cải thiện tỷ lệ lây nhiễm thành công và trốn tránh cơ chế phát hiện.

Sự bền bỉ:
Phần mềm độc hại duy trì hoạt động bằng cách tạo một tệp BAT trong thư mục Khởi động Windows. Điều này đảm bảo rằng tập lệnh độc hại sẽ tự động được thực thi bất cứ khi nào người dùng khởi động hệ thống hoặc đăng nhập vào tài khoản của họ.

Các tập tin hàng loạt:
Hình bên dưới hiển thị tập lệnh BAT ở dạng mã hóa cùng với phiên bản mã hóa đã được giải mã.

Tập lệnh PowerShell:
Hình dưới đây hiển thị cửa sổ tiến trình PowerShell và các đối số dòng lệnh được sử dụng trong quá trình thực thi. Điều này cung cấp cái nhìn sâu sắc về cách phần mềm độc hại lợi dụng PowerShell để phân phối tải trọng trong bộ nhớ. Chúng tôi sẽ phân tích chi tiết tập lệnh PowerShell trong các phần sau để hiểu vai trò của nó trong việc triển khai XWorm.


Lệnh PowerShell này chạy tập lệnh bằng cách giải mã một chuỗi được mã hóa Base64 và thực thi nó trong bộ nhớ. Nó sử dụng -nop để tránh tải hồ sơ người dùng, -w hidden để ẩn cửa sổ và iex (Invoke-Expression) để chạy nội dung đã giải mã.
Tập lệnh đã giải mã:

Chúng tôi đã chia kịch bản đã được giải mã thành hai phần. Phần đầu tiên của kịch bản PowerShell được thiết kế để định vị và thực thi một đoạn mã bị mã hóa được nhúng trong một tệp bó (aoc.bat) nằm trong thư mục hồ sơ người dùng hiện tại. Đầu tiên, nó lấy tên người dùng từ các biến môi trường để xây dựng đường dẫn đầy đủ đến aoc.bat. Nó đọc tất cả các dòng bằng mã hóa UTF-8 và lặp qua từng dòng, đặc biệt tìm kiếm các dòng bắt đầu bằng tiền tố chú thích ba dấu hai chấm (:::), theo sau là một chuỗi được mã hóa Base64. Khi tìm thấy một dòng như vậy, nó cố gắng giải mã chuỗi Base64 thành một mảng byte, sau đó chuyển đổi nó thành một chuỗi Unicode được gán cho biến $ttzhae. Chuỗi được giải mã này ($ttzhae) chứa một lớp kịch bản PowerShell bổ sung, sau đó được thực thi trong bộ nhớ bằng cách sử dụng Invoke-Expression. Điều này cho phép kẻ tấn công nhúng và thực thi logic PowerShell độc hại phức tạp hoặc nhiều giai đoạn một cách bí mật trong một chú thích tệp bó có vẻ vô hại, cho phép thực thi lén lút và không cần tệp.

Đoạn mã này tự động vô hiệu hóa hai cơ chế bảo mật quan trọng của Windows là AMSI (Giao diện quét phần mềm độc hại) và ETW (Theo dõi sự kiện cho Windows) để tránh bị phát hiện. Nó tận dụng phản chiếu .NET và việc tạo ủy quyền động để giải quyết các hàm gốc như GetProcAddress, GetModuleHandle, VirtualProtect và AmsiInitialize. Sử dụng các hàm này, nó định vị và vá hàm AmsiScanBuffer trong bộ nhớ bằng lệnh (mov eax, 0; ret), từ đó bỏ qua quá trình quét AMSI. Tương tự, nó vô hiệu hóa việc theo dõi sự kiện bằng cách ghi đè lên phần đầu của EtwEventWrite bằng lệnh return. Những sửa đổi trong bộ nhớ này cho phép hoạt động PowerShell độc hại được thực thi một cách lén lút, mà không bị ghi nhật ký hoặc quét bởi hệ thống. endpoint protection giải pháp.

Trong phần thứ hai của kịch bản PowerShell, trước tiên nó lấy tên người dùng hiện tại từ môi trường và tạo đường dẫn đến một tệp có tên aoc.bat nằm trong thư mục hồ sơ người dùng. Sau đó, nó tiến hành thực thi các payload được nhúng dưới dạng các assembly .NET được mã hóa và nén ẩn bên trong tệp batch này. Kịch bản tìm kiếm cụ thể một dòng chú thích có tiền tố ::, chứa một chuỗi payload được mã hóa Base64. Chuỗi này sau đó được tách thành hai phần bằng cách sử dụng dấu gạch chéo ngược (\) làm dấu phân cách. Mỗi phần trải qua quá trình giải mã Base64, giải mã AES bằng khóa và IV được mã hóa cứng (ở chế độ CBC với phần đệm PKCS7), tiếp theo là giải nén GZIP như minh họa trong các hình kèm theo. Kết quả là hai assembly .NET riêng biệt, cả hai đều được tải và thực thi trực tiếp trong bộ nhớ. Assembly đầu tiên được gọi mà không có bất kỳ đối số nào, trong khi assembly thứ hai được thực thi với '%*' được truyền dưới dạng đầu vào dòng lệnh mô phỏng.

Tải trọng thứ hai đóng vai trò quan trọng hơn. Nó hoạt động như một trình tải chịu trách nhiệm thực thi phần mềm độc hại cuối cùng, đó là trojan truy cập từ xa (RAT) XWorm.

Loader
Trình tải được thiết kế để tránh bị phát hiện, vô hiệu hóa ghi nhật ký sự kiện và thực thi các payload nhúng trực tiếp trong bộ nhớ. Nó đạt được điều này bằng cách giải mã và chạy các tệp thực thi .NET thông qua Assembly.Load hoặc thực thi shellcode đã giải mã bằng VirtualProtect và các delegate.



Khả năng của bộ nạp:
- Tránh bị phát hiện

- Vô hiệu hóa ghi nhật ký sự kiện

- Trích xuất và thực thi các tải trọng nhúng
Ở đây, chúng tôi đã xác định được nhiều trình tải sử dụng kỹ thuật thực thi trong bộ nhớ để tránh bị phát hiện và tồn tại một cách lén lút. Một số trình tải này chứa các tệp thực thi .NET được mã hóa, được giải mã khi chạy và thực thi trực tiếp từ bộ nhớ bằng Assembly.Load, tiếp theo là .EntryPoint. Invoke, cho phép trình tải chạy mã được quản lý mà không cần ghi tệp thực thi vào đĩa.
Ngược lại, các biến thể khác sử dụng shellcode được mã hóa thay vì mã nhị phân. Các biến thể này giải mã shellcode, sửa đổi các biện pháp bảo vệ bộ nhớ bằng VirtualProtect để cho phép thực thi, sau đó thực thi shellcode bằng một đại biểu được tạo thông qua Marshal.GetDelegateForFunctionPointer. Như minh họa trong hình bên dưới,

- Persistence

Xworm
Trước đó vào đầu năm nay, chúng tôi đã đưa tin về XWorm và Remcos , cung cấp phân tích chuyên sâu về chức năng cốt lõi, các khả năng nâng cao như ghi lại thao tác bàn phím, thực thi lệnh từ xa, đánh cắp dữ liệu, cũng như các phương pháp duy trì và né tránh sự phát hiện của chúng.

Ngoài XWorm, một số biến thể trong cùng chiến dịch cũng sử dụng Remcos , một loại Trojan truy cập từ xa (RAT) thương mại nổi tiếng, cung cấp nhiều khả năng, bao gồm truy cập máy tính từ xa, ghi lại thao tác bàn phím, thực thi lệnh, thao tác tập tin, chụp ảnh màn hình và đánh cắp dữ liệu.
Chiến dịch 2:
Chiến dịch 2 giới thiệu một bước chuyển đáng chú ý trong việc phát tán phần mềm độc hại bằng cách tận dụng các tệp SVG (Đồ họa vectơ có thể mở rộng) được nhúng JavaScript, vốn chủ yếu được sử dụng trong các cuộc tấn công lừa đảo. Các tệp SVG độc hại này được thiết kế để xuất hiện dưới dạng tệp hình ảnh hợp pháp và được hiển thị trong các môi trường phần mềm dễ bị tấn công (chẳng hạn như trình xem ảnh hoặc ứng dụng email lỗi thời) hoặc được nhúng trong các trang web lừa đảo được thiết kế để dụ dỗ người dùng thiếu cảnh giác. Giờ đây, JavaScript nhúng trong tệp SVG hoạt động như một cơ chế kích hoạt, tự động tải xuống tệp ZIP khi tệp SVG được mở hoặc xem trước.
Tệp ZIP đã tải xuống này chứa một tập lệnh BAT đã được mã hóa, đóng vai trò là vector truy cập ban đầu cho phần mềm độc hại. Khi tập lệnh BAT được người dùng thực thi thủ công hoặc thông qua các chiến thuật tấn công kỹ thuật xã hội, nó sẽ khởi tạo một chuỗi lây nhiễm nhiều giai đoạn tương tự như chuỗi lây nhiễm đã quan sát thấy trong Chiến dịch 1. Cụ thể, tập lệnh BAT sẽ gọi các lệnh PowerShell để giải mã và thực thi một tệp thực thi (EXE) trực tiếp trong bộ nhớ. Trình tải này chịu trách nhiệm giải mã và triển khai payload cuối cùng, trong chiến dịch này là Trojan Truy cập Từ xa (RAT) XWorm.
Việc sử dụng SVG làm cơ chế phân phối đánh dấu một bước tiến đáng chú ý trong phương pháp tấn công, vì các tệp hình ảnh thường được coi là vô hại và thường bị các công cụ bảo mật truyền thống loại trừ khỏi quá trình kiểm tra nội dung chuyên sâu. Bằng cách khai thác khả năng viết mã của SVG, kẻ tấn công có thể vượt qua hàng rào phòng thủ ngoại vi và phân phối các tệp tin độc hại một cách bí mật, không cần tệp.
Kết luận:
Các chiến dịch này nhấn mạnh xu hướng ngày càng gia tăng trong việc sử dụng các tập lệnh bị che giấu, phần mềm độc hại không cần tệp và các định dạng tệp phi truyền thống như SVG để phát tán Trojan truy cập từ xa như XWorm và Remcos. Bằng cách nhúng các payload vào tệp BAT và thực thi chúng thông qua PowerShell, kẻ tấn công có thể dễ dàng vượt qua các biện pháp phòng thủ tĩnh. Việc chuyển đổi từ sử dụng SVG trong các cuộc tấn công lừa đảo sang phát tán phần mềm độc hại càng nhấn mạnh thêm nhu cầu phát hiện hành vi, kiểm tra nội dung và nâng cao nhận thức của người dùng để chống lại các mối đe dọa đang ngày càng gia tăng này.
IOCS:
| MD5 | Tập tin |
| EDA018A9D51F3B09C20E88A15F630DF5 | Bát |
| 23E30938E00F89BF345C9C1E58A6CC1D | JS |
| 1CE36351D7175E9244209AE0D42759D9 | TẢI TRỌNG |
| EC04BC20CA447556C3BDCFCBF6662C60 | SÂU XWORM |
| D439CB98CF44D359C6ABCDDDB6E85454 | REMCOS |
phát hiện:
Trojan.LoaderCiR
Trojan.GenericFC.S29960909
TTP của MITRE ATTACK:
| Chiến thuật | ID và tên kỹ thuật | Mô tả Chi tiết |
| Thực hiện | T1059.001 – Trình thông dịch lệnh và tập lệnh: PowerShell | PowerShell được sử dụng để diễn giải lệnh, giải mã dữ liệu và gọi tải trọng. |
| T1106 – Thực thi thông qua API | Tập lệnh sử dụng API .NET (ví dụ: Assembly.Load, Invoke) để thực thi các tải trọng trong bộ nhớ. | |
| Phòng thủ né tránh | T1027 – Tệp hoặc thông tin bị làm tối nghĩa | Tải trọng được mã hóa theo chuẩn Base64, AES và nén để tránh phát hiện tĩnh. |
| T1140 – Giải mã/Giải mã tệp hoặc thông tin | Tập lệnh giải mã và giải nén dữ liệu trước khi thực thi. | |
| T1055.012 – Tiêm quy trình: Tiêm lắp ráp .NET | Tải trọng được tải vào bộ nhớ | |
| T1036 – Ngụy trang | Nội dung độc hại được ẩn trong tệp lệnh. | |
| Persistence | T1053 – Nhiệm vụ/Công việc đã lên lịch | Thiết lập tính bền bỉ thông qua menu strstartup. |
| Quyền truy cập ban đầu | T1204 – Thực thi của người dùng | Việc thực thi phụ thuộc vào người dùng chạy tệp lệnh theo cách thủ công |
| Lệnh và kiểm soát | T1132 – Mã hóa dữ liệu | Base64 và mã hóa được sử dụng để mã hóa lệnh hoặc tải trọng. |
| T1219 – Phần mềm truy cập từ xa | Xworm cung cấp quyền truy cập và kiểm soát từ xa toàn diện đối với máy chủ bị nhiễm. | |
| Quyền truy cập thông tin xác thực | T1056.001 – Ghi lại đầu vào: Ghi lại phím | XWorm bao gồm chức năng ghi lại phím để đánh cắp thông tin nhập và thông tin đăng nhập của người dùng. |
| Lọc | T1041 – Lọc qua kênh C2 | Dữ liệu bị đánh cắp sẽ được trích xuất thông qua cùng kênh C2 mà Xworm sử dụng. |
tác giả:
Vaibhav Billade
Rumana Siddiqui



