VIRUS EXPLORER
Xin chào. Quy ẩn giang hồ khá lâu rồi nên một thời gian dài tôi bận nhiều việc không có thời gian viết bài nào liên quan về kỹ thuật. Nhân tiện đợt này gặp một virus máy tính nên dành chút thời gian để viết bài này. Mỗi ngày viết vài dòng nên dây dưa mới xong.
Từ thuở máy tính sơ khai cho đến thời đại bây giờ nền công nghiệp “0.4”, chúng ta không còn xa lạ gì với virus máy tính, hành vi càng ngày càng nguy hiểm và độc ác làm người dùng “wanna cry“.
Hôm trước tôi có gặp một loại virus mang tên “explorer.exe“. Virus mang tên “explorer.exe” không phải ít, nhưng mỗi loại lại là một biến thể khác nhau, tạo ra mởi các tác giả khác nhau, hành vi cũng khác nhau rất nhiều.
Virus và những file tạo ra trong quá trình phân tôi đã nén các bạn có thể tải về TẠI ĐÂY. (Pass giải nén là: vic4key)
Khi tải lên blog định dạng bài viết bị thay đổi nên bạn có thể tải bản gốc dưới dạng ms word tải TẠI ĐÂY.
Bài viết sẽ chia làm 2 phần:
PHẦN 1: BẢN CHẤT, HÀNH VI VÀ HƯỚNG DẪN TIÊU DIỆT.
PHẦN 2: PHÂN TÍCH VIRUS.
Note: Nếu bạn không quan tâm đến kỹ thuật thì có thể đọc phần 1, phần 2 dành cho những bạn nào có nhã hứng quan tâm chi tiết về kỹ thuật.
PHẦN 1: BẢN CHẤT, HÀNH VI & HƯỚNG DẪN TIÊU DIỆT
I. Bản chất của virus Explorer.exe
II. Hành vi virus tác động lên máy tính nạn nhân
Note: Ở đây, value [kl] chứa nội dung log phím gõ người dùng, dựa vào nội dung log này sẽ biết được hacker đã lấy những thông tin gì của chúng. Nếu có những thông tin nhạy cảm như mật khẩu, thẻ tín dụng, etc thì các bạn nên thay đổi luôn đi để ngăn hacker truy cập.
6.1. Gửi thông tin gõ phím của người dùng lên server của hacker.6.2. Thêm/sửa/xóa thông tin trong registry.6.3. Chụp ảnh màn hình và gửi lên server của hacker.6.4. Quản lý cài đặt/gỡ bỏ/thư thi/cập nhật virus trên máy nạn nhân.6.5. Tải mã độc của hacker từ server về và thực thi trên máy tính nạn nhân.
III. Hướng dẫn tiêu diệt virus
Dựa vào những hành vi tôi đã liệt kê ở trên thì để diệt virus này trên máy tính cần thực hiện những bước sau:
1. Đến 2 đường dẫn sau tìm file explorer.exe xóa đi:
+ C:\Users\<user name>\AppData\Roaming
+ C:\Users\<user name>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
2. Mở Firewall Allowed apps (vào start menu gõ allow an app) tìm nó và xóa đi:
+ HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run+ HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run+ HKEY_CURRENT_USER\Software\c83d2f25c4a6ded09c7217aab954e17d
PHẦN 2: PHÂN TÍCH VIRUS
I. Tìm thông tin về virus
+ Virus được tác giả tạo ra vào ngày 29/05/2019, tức là mới phát tán được khoảng 1-2 tháng.
+ Giả mạo thông tin Microsoft (một số thông tin không khớp eg. icon, product, language, etc).
+ Không có chứng nhận bằng chữ ký số Digital Signatures.
+ Viết bằng ngôn ngữ C# .NET 2.0 (Linker 11.0 ~ Visual Studio 2012).
+ Biên dịch 32-bit để có thể chạy trên cả 2 nền tảng Windows 32-bit và 64-bit.
+ Đã bị mã hóa làm rối code thực thi (obfuscated).
II. Phân tích virus
Layer 1: Mã hóa bằng thuật toán Base-64.Layer 2: Nén bằng phương thức nén G-zip.Layer 3: Mã hóa bằng thuật toán AES.Layer 4: Mã hóa thủ công bằng thuật toán nhà tự trồng + – x : bla bla.Layer 5: Mã hóa sử dụng chuẩn RFC 2898 bằng Key-IV mặc định.
1. Load body đã giải mã của virus vào bộ nhớ.2. Tìm đến Entry Point của virus trong bộ nhớ.3. Invoke gọi thực thi virus bắt đầu từ điểm Entry Point này.
III. Phân tích body chính của virus
+ Không bị mã hóa làm rối mã.+ Có 3 classes và khá nhiều methods.+ Mặc dù ko mã hóa code nhưng class/method đặt tên không rõ ràng nên ko thể hiện hết được chức năng của method (những tác giả viết virus hầu như ai cũng sẽ làm như vậy vì có nhiều lợi ích).+ Kéo xuống cuối mỗi class sẽ thấy có nhiều thông tin mà tác giả hard-coded (eg. startup, registry, server, etc).
1. Xem qua code và sửa lại tên các method để thể hiện hết được chức năng method.2. Hiểu code và hình dung ra workflow của virus.
1. Các classes/methods được sửa lại tên
+ Class vx_mainer : Entry Point, vị trí virus bắt đầu được thực thi, gọi đến vx_controller.
+ Class vx_logger : Chức năng keys-logging, giám sát, lưu trữ, lấy trộm các thông tin mà người dùng gõ từ bàn phím eg. tài khoản, mật khẩu, thẻ tín dụng, etc.
+ Class vx_controller: C & C (Command and Control), chức năng làm dispatcher giữa server & client, tiếp nhận và thực thi lệnh của hacker điều khiển thông qua internet.
+ Method log_line_prefix(…) : Đinh dạng prefix cho mỗi dòng log như sau: <0x01><YY/mm/dd> <App Name><App Title><0x01>.+ Method format_keys_as_string(…) : Lấy phím người dùng gõ bằng api GetAsyncKeyState() và xử lý như sau: Các phím chức năng, đặc biệt thì bỏ qua eg. F1-F12, Shift, Alt, Ctrl, etc. Các phím như Enter, Tab và các phím bình thườnh thì chuyển sang dạng string.+ Method store_log_string_into_registry(…) : Ghép nối prefix với các thông tin lấy cắp từ người dùng gõ phím và lưu vào registry tại key HKEY_CURRENT_USER\Software\c83d2f25c4a6ded09c7217aab954e17d với value string là [kl].
+ Set biến môi trường (User Variable Enviroment) SEE_MASK_NOZONECHECKS=1 để vô hiệu hóa chức năng file security checking.+ Thêm nó vào danh sách ngoại lệ của tường lửa bằng câu lệnh: netsh firewall add allowedprogram “<virus file path>” “<virus file name>” ENABLE.+ Lưu nó vào đường dẫn: C:\Users\<user name> \AppData\Roaming.+ Làm máy tính tự động thực thi nó mỗi khi người dùng mở máy tính bằng 2 cách:+ Sao chép nó vào thư mục Startup: C:\Users\<user name> \AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup.+ Thêm nó vào registry ở 2 startup keys:– HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run– HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run+ Set thuộc tính của tiến trình virus hiện tại thành Critical (tiến trình critical là kiểu tiến trình mà nếu nó bị tắt đột ngột thì hệ thống cũng sẽ bị tắt theo, chúng ta có thể hình dung như lỗi BSOD màn hình xanh, eg. smss.exe, csrss.exe, wininit.exe, etc).+ Tạo 2 threads để xử lý song song 2 việc:
1. Giám sát lấy cắp lưu phím người dùng gõ vào registry (refer to 2.1. vx_logger).2. Nhận và xử lý lệnh điều khiển của hacker thông qua Internet.
– Method vx_establish_to_server(…) : Thiết lập kết nối tới server của hacker (host: 7777.elitfilmizle.com, port: 7777) và gửi các thông tin về máy tính nạn nhân lên server bao gồm những thông tin sau: hardware id, user name, machine name, os name, os platform, has camera or not, user permission. Dựa vào thông tin who is cung cấp về domain này chúng ta thấy domain được giấu thông tin cá nhân, đăng ký thời hạn 5 năm, từ cuối năm 2018 và đến khi tác giả có ý định viết virus phát tán thì đến giữa năm 2019 đã cập nhật lại domain để đáp ứng cho việc phát tán virus này.
– Method vx_command_dispatcher(…) : Nhận và xử lý những lệnh sau từ hacker:1. “ll“: Cho phép hoặc vô hiệu hóa các chức năng của virus. Khi đang hoạt động, tất cả các chức năng của của virus sẽ kiểm tra một cờ trạng thái (flag) để quyết định có thực thi hay không. Thì đây chính là lệnh để thay đổi cờ trạng thái này.“kl” : Lấy thông tin gõ bàn phím của người dùng trong registry do class vx_logger đã lấy cắp lưu tại value [kl] ở key HKEY_CURRENT_USER\Software\c83d2f25c4a6ded09c7217aab954e17d và gửi lên server.“prof” : Thực thi lệnh tác động vào registry.+ Tham số “~” : Tạo một khóa trong registry.+ Tham số “!” : Đọc một khóa trong registry vào gửi lên server.+ Tham số “@” : Xóa một key trong registry.“rn” : Tải hoặc giải nén một file sau đó thực thi.“inv” : Lấy mã độc được gửi từ server lưu vào registry sau đó gọi thực thi hàm “start” mã độc này (Note: Hacker chưa gửi lệnh điều khiển nên tôi chưa lấy được mã độc này nên chưa xác định hành vi của mã độc này).“ret” : Lấy mã độc được gửi từ server lưu vào registry sau đó gọi thực thi hàm “GT” mã độc này (Note: Hacker chưa gửi lệnh điều khiển nên tôi chưa lấy được mã độc này nên chưa xác định hành vi của mã độc này).“CAP” : Chụp ảnh màn hình máy tính nạn nhân và gửi lên server.“un“: Thực thi những lệnh có chức năng quản lý virus.+ Tham số “~” : Bỏ thuộc tính critical của tiến trình virus và gỡ nó ra khỏi máy tính của nạn nhân.+ Tham số “!” : Kết thúc tiến trình virus đang thực thi.+ Tham số “@” : Thực thi virus như một tiến trình bình thường, không phải critical.“up” : Tải bản cập nhật hoặc giải nén file sau đó thực thi.“Ex” : Gọi thực thi method “ind” của plugin.“PLG” : Tải và cài đặt một plugin cho virus, plugin của virus có đuổi mở rộng là “.A“, lần đầu tiên thấy virus có hỗ trợ plugin như thế này.+ Sau mỗi 5 giây sẽ set lại điều kiện của tiến trình virus là working-set sử dụng tối thiểu 1024 bytes (1 KB).+ Sau mỗi 8 giây sẽ gửi đi một lệnh “act” để ping-pong với server báo cho server biết virus vẫn đang hoạt động.
+ Method main(…) : Gọi thực thi đến vx_controller.vx_main() (refer to 2.2. vx_controller).




























