Phân tích mã độc lừa đảo khách hàng Techcombank

Gần đây trong quá trình nghiệp vụ, chúng tôi nhận được 1 mẫu mã độc có đuôi SCR trong phần đính kèm ở mail của nạn nhân.

Nội dung email phishing
Mẫu gốc sau khi phân tích

Qua phân tích, chúng tôi phát hiện mục đích chính của mẫu gốc (Techcombank…) là unpack và thực thi một mã độc RAT khá nổi tên là NanoCore.

Mẫu RAT này có tính năng ghi lại phím bấm trên bàn phím (Keylog), thực thi lệnh (Remote command), sử dụng giao diện đồ họa của máy nạn nhân (Remote desktop), …

Nhìn hình trên, ta thấy mẫu gốc NanoCore được ẩn mình 2 lớp. Tiếp ta sẽ cùng bóc tách mẫu này để hiểu sâu và tìm cách phòng chống.

Phân tích mẫu Wrapper

Sử dụng bất kỳ phần mềm PE viewer nào, ta đều nhận được đây là 1 file .NET

Trong trường hợp này ta sử dụng Detect It Easy

Thông tin PE file của Wrapper 1

Với file .NET, ta sử dụng dnSpyđể view/debug code. Kết quả ta có là tên các namespace, class và method đều là tiếng ngoại quốc.

Tính năng “Go To EntryPoint” với mẫu trên

Chữ kiểu này làm giảm hiệu suất đọc hiểu của chúng ta. Ta sử dụng de4dot để deobfuscate (nếu có) mẫu này và có một kết quả dễ nhìn hơn.

Hàm Main sau khi kéo thả vào de4dot

Lướt qua nội dung code 1 lượt, ta thấy đây chính là 1 Wrapper với mục đích giải mã và thực thi một mẫu khác nằm trong Resource Directory.

Resource Directory của mẫu gốc

Hàm giải mã ở đây là thực hiện phép XOR giữa 1 đoạn Assembly và 1 array byte cùng được lưu trong Resource Directory.

Đoạn decrypt Assembly

Cách hoạt động của mẫu này có thể đơn giản hóa như sau, bạn quan sát hình 4 để có cái nhìn cụ thể.

  • Load 1 object từ Resource Directory
  • Decrypt object (smethod_0)
  • Tạo Assembly với object (smethod_3)
  • Load EntryPoint của Assembly (smethod_1)
  • Thực thi đoạn EntryPoint
Một quá trình hoạt động tương tự lấy từ trong sách

Hiểu được cách hoạt động, ta xử lý và có được 1 mẫu từ bộ nhớ. Tạm đặt tên là Stub.

Lưu mã độc trong Memory

Phân tích mẫu Wrapper số 2

Tương tự như trên, ta load mẫu Stub này dnSpy. Tuy nhiên kết quả nhận được là hàm Main không có nội dung, và các hàm khác còn bị lỗi không decompile được.

EntryPoint của Stub

Vì hàm Main không có nội dung, ta xem thử qua đoạn mã khởi tạo của class StubCode này. Một kĩ thuật thường thấy là giấu code trong static class constructor (.cctor) để giấu mã độc trước khi chạy EntryPoint thường thấy.

Thật vậy, có code ở đây. Dù tên của những hàm này đều bị obfuscate, dưới dạng Unicode không in được.

Hàm .cctor của Stub

Dựa trên watermark của một số công cụ obfuscate tự động, ta biết rằng mẫu này sử dụng ConfuserEx v1.0.0 [1]

Note: Bước deobfuscate quá dài và không liên quan tới chủ đề, nên ta sẽ bỏ qua và mặc định rằng mẫu này đã được deobfuscate.

Sau khi phân tích mẫu đã được deobfuscate, ta nhận định đây là 1 Wrapper cho mẫu RAT (mục đích chính của kẻ tấn công).

Mẫu Wrapper số 2 này có rất nhiều tính năng, điều thú vị nó có thể được điều chỉnh thông qua Config của Resource Directory (lần nữa). Vì quá nhiều tính năng, ta sẽ chỉ phân tích những tính năng ta cần quan tâm liên quan tới dấu vết của mã độc (IOC).

Vì là Config, nên có thể bật/ tắt. Mẫu Stub có những tính năng sau được sử dụng:

  • Decompress và thực thi mẫu RAT
  • Khởi động cùng hệ thống thông qua Registry hoặc TaskScheduler
  • Bypass AV (Avast)
  • Cố gắng tắt các chức năng liên quan tới Security của Windows như Cmd, Task Manager và UAC

Ngoài ra, những tính năng bị tắt:

  • Downloader
  • Anti-Dump
  • Anti-Sandbox
  • Ẩn file với attribute là Hidden và System
  • Và nhiều nữa
Resource Directory của Stub

Ta sẽ phân tích tính năng đầu tiên: giải nén và thực thi mẫu RAT.

Để ngắn gọn, mẫu này sử dụng MainFile từ Resource Directory.

Cụ thể, mẫu này cho ta 2 lựa chọn giải nén là sử dụng thuật toán LZMA hoặc thuật toán phần mềm GZIP sử dụng.

Tuy nhiên Config cho 2 tính năng này đều bị tắt, nên mẫu RAT chính là MainFile trong Resource.

Những lựa chọn để giải nén
Giải nén từ MainFile
MainFile trong Resource Directory

Tính năng thứ 2 là khả năng mã độc khởi chạy cùng hệ thống.

Đầu tiên, Stub tạo 1 bản sao có tên là <filename>. Sau đó, Stub dùng Reg để thực thi cmd với tham số là một file Update.txt, file này chứa nội dung thực thi mẫu mã độc <filename>.

Sử dụng Reg.exe thay vì Task Scheduler
Registry: Khởi chạy Update.txt mỗi lần User log on
Nội dung file Update.txt

Phân tích mẫu RAT

Sau khi chúng ta có được mẫu RAT, kéo thả vào de4dot phát hiện mẫu RAT bị obfuscate với Eazfuscator.NET v3.3

Mẫu RAT sau khi được deobfuscate

Dựa vào tên mẫu và chức năng các hàm, ta xác thực đây là mẫu NanoCore Client. Cách tốt nhất để thuyết trình về mã độc RAT chính là đứng trên góc nhìn của kẻ tấn công để xác thực lại các chức năng mà mã độc RAT cung cấp.

Điều này có nghĩa là chúng ta sẽ cài đặt NanoCore Server và kiểm tra những tính năng mà kẻ tấn công có thể thực hiện trên máy nạn nhân.

Có nhiều cách để thực hiện điều trên, cụ thể ở đây ta tạo 1 loopback adapter để lừa mã độc kết nối tới IP của ta. Sau đó đọc HDSD và “trải nghiệm” những tính năng của NanoCore Server.

FYI: NanoCore là sản phẩm được phát triển dưới công ty “Nimoru Software”. Trong NanoCore Server có mục feedback để bạn có thể nhận được sự trợ giúp từ nhà phát triển, và địa chỉ của feedback được gửi đi là “nimoru.com”. Và cha đẻ của mẫu mã độc này đã phải nhận án phạt 33 tháng, bạn có thể đọc thêm tại [2]

Tính năng “feedback”

Với 1 mẫu RAT khá đầy đủ chức năng như NanoCore, Remote Desktop là tính năng phổ thông.

Tính năng này giúp kẻ tấn công dễ dàng thực thi các hành vi xấu trên máy nạn nhân một cách dễ dàng hơn, nhanh hơn và không cần có chủ đích.

Tính năng Remote Desktop

Ngoài ra mẫu NanoCore còn có các tính năng sau :

  • Quản trị file từ xa
  • Thực thi lệnh từ xa (CMD)
  • Remote Desktop
  • Keylog
  • Ghi âm
  • Và nhiều nữa
Các tính năng của C&C server

Như nói ở trên, việc mã độc RAT này là phần mềm thương mại và UI của nó dễ dàng cho những kẻ tấn công phổ thông, nên những loại mã độc này thường được phát tán rất nhiều và không có chủ đích.

Điều xấu là chúng ta có khả năng cao sẽ trở thành nạn nhân, tuy nhiên điều tốt ở đây là những loại tấn công này thường sẽ đơn giản, việc sử dụng phần mềm diệt virus hay cẩn trọng với các email và đường link nguồn gốc không rõ ràng sẽ giúp bạn trên Internet hơn rất nhiều.

FYI: Ta có thể lấy được Config bao gồm địa chỉ C&C server của mã độc thông qua sử dụng script RatDecoders [3]

Kết quả sau khi chạy script RatDecoders

Ngoài ra hiện tại C&C server của mẫu RAT này vẫn còn hoạt động.

Liên lạc giữa NanoCore Client và Server

IP này đến từ Hàn Quốc. Ngoài ra, IP này cũng được cho rằng là NanoCore BotNet Server [4] và spam Email [5]. Cùng đó trên VirusTotal, ta thấy mẫu mã độc này đang trong giai đoạn phát tán.

Những upload liên quan tới IP này trên VirusTotal

Một lần nữa, các bạn nên cẩn trọng trong việc mở các email, các đường link có nguồn gốc không rõ ràng. Đồng thời, rà soát hệ thống với các dấu hiệu ở dưới (sẽ cập nhật thêm).

IOCs

Registry:

\\HKCU\Software\Microsoft\Windows\CurrentVersion\Run\Update

IP & Domain:

160.202.163.240

Hash:

58B25347820B820F4FA46680CFF6BFC8 — TechcomBank_Dien_201883.scr

353F5EAACF70554CEB327D3578244177 — stub.exe

28C864D3F592B51AB646CEC8B1FF2CD7 — NanoCore Client.exe

References

  1. https://github.com/yck1509/ConfuserEx/blob/master/Confuser.Core/ConfuserEngine.cs#L303
  2. https://krebsonsecurity.com/wp-content/uploads/2017/04/W.D.Ark_._null_null_0.pdf
  3. https://github.com/kevthehermit/RATDecoders/blob/master/StandAlone/NanoCore.py
  4. https://www.spamhaus.org/sbl/query/SBL398403
  5. https://www.spamhaus.org/sbl/query/SBL320946

@nl @floppydisk @tofu @bakhoang

One Reply to “Phân tích mã độc lừa đảo khách hàng Techcombank”

Leave a Reply

Your email address will not be published. Required fields are marked *