Setting Up The Lab Environment
Phân tích một chương trình độc hại đòi hỏi một môi trường phòng thí nghiệm an toàn và bảo mật, vì bạn không muốn nhiễm virus cho hệ thống của mình hoặc hệ thống sản xuất. Một malware lab có thể rất đơn giản hoặc phức tạp tùy thuộc vào các nguồn lực có sẵn cho bạn (phần cứng, virtualization software, giấy phép Windows, v.v.). Phần này sẽ hướng dẫn bạn thiết lập một malware lab cá nhân đơn giản trên một hệ thống vật lý duy nhất bao gồm các máy ảo (VM).
1) Lab Requirements
Trước khi bắt đầu thiết lập một phòng thí nghiệm, bạn cần một số thành phần: một hệ thống vật lý chạy hệ điều hành cơ sở Linux, Windows hoặc macOS X, và được cài đặt phần mềm ảo hóa (như VMware hoặc VirtualBox). Khi phân tích mã độc, bạn sẽ thực thi mã độc trên một máy ảo dựa trên Windows (VM Windows). Ưu điểm của việc sử dụng máy ảo là sau khi hoàn thành phân tích mã độc, bạn có thể khôi phục nó về trạng thái sạch sẽ ban đầu.
Để tạo một môi trường phòng thí nghiệm an toàn, bạn nên thực hiện các biện pháp phòng ngừa cần thiết để tránh mã độc thoát khỏi môi trường ảo hóa và lây nhiễm hệ thống vật lý (máy chủ) của bạn. Sau đây là một số điểm cần nhớ khi thiết lập phòng thí nghiệm ảo hóa:
- Luôn cập nhật phần mềm ảo hóa của bạn. Điều này là cần thiết vì mã độc có thể khai thác lỗ hổng trong phần mềm ảo hóa, thoát khỏi môi trường ảo và lây nhiễm hệ thống máy chủ của bạn.
- Cài đặt một bản sao mới của hệ điều hành bên trong máy ảo (VM), và không lưu trữ bất kỳ thông tin nhạy cảm nào trong máy ảo.
- Trong khi phân tích mã độc, nếu bạn không muốn mã độc truy cập Internet, bạn nên xem xét sử dụng chế độ cấu hình mạng Host-only hoặc giới hạn lưu lượng mạng của bạn trong môi trường phòng thí nghiệm bằng các dịch vụ mô phỏng.
- Không kết nối bất kỳ phương tiện gắn ngoài nào có thể được sử dụng sau này trên các máy vật lý, chẳng hạn như ổ đĩa USB.
- Vì bạn sẽ phân tích mã độc Windows (thường là tập tin thực thi hoặc DLL), nên nên chọn hệ điều hành cơ sở như Linux hoặc macOS X cho máy chủ thay vì Windows. Điều này là do ngay cả khi mã độc Windows thoát khỏi máy ảo, nó vẫn không thể lây nhiễm máy chủ của bạn. (Còn cái đứa biên soạn đống này thì không vì bộ nhớ của nó đầy rồi (•_•))
2) Overview Of Lab Architecture
Ví dụ trong ảnh dưới về Ubuntu Linux có Linux virtual machine (Ubuntu Linux VM) và Windows virtual machine (Windows VM)

Máy ảo Linux (Kali/Unbutu Linux VM) và máy ảo Windows (Windows VM). Các máy ảo này sẽ được cấu hình để thuộc cùng một mạng và sử dụng chế độ cấu hình mạng Host-only để malware không được phép liên lạc với Internet và lưu lượng mạng bị giới hạn trong môi trường phòng thí nghiệm cô lập. Windows VM là nơi malware sẽ được thực thi trong quá trình phân tích, và Linux VM được sử dụng để giám sát lưu lượng mạng và sẽ được cấu hình để mô phỏng các dịch vụ Internet (DNS, HTTP, v.v.) để cung cấp phản hồi phù hợp khi malware yêu cầu các dịch vụ này. Ví dụ, Linux VM sẽ được cấu hình sao cho khi malware yêu cầu một dịch vụ như DNS, Linux VM sẽ cung cấp phản hồi DNS thích hợp.
Máy ảo Windows là nơi mã độc sẽ được thực thi trong quá trình phân tích, và máy ảo Linux được sử dụng để giám sát lưu lượng mạng và sẽ được cấu hình để mô phỏng các dịch vụ Internet (DNS, HTTP, v.v.) nhằm cung cấp phản hồi thích hợp khi mã độc yêu cầu các dịch vụ này. Ví dụ, máy ảo Linux sẽ được cấu hình sao cho khi mã độc yêu cầu một dịch vụ như DNS, máy ảo Linux sẽ cung cấp phản hồi DNS đúng.
3) Setting Up And Configuring Linux VM
1. Install Pip
Pip là hệ thống quản lý các gói được sử dụng để cài đặt và quản lý các gói được viết bằng Python. Trong cuốn sách này, tôi sẽ chạy một số kịch bản Python; một số trong đó dựa trên các thư viện bên thứ ba. Để tự động hóa quá trình cài đặt các gói bên thứ ba, bạn cần cài đặt pip.- Chạy lệnh sau trong terminal để cài đặt và nâng cấp pip:
| $ sudo apt install python3-pip $ pip3 install –upgrade pip |
2. Python package
- Dưới đây là lệnh cài một số công cụ và gói Python chính sẽ được sử dụng:
$ sudo apt-get install python-magic$ sudo apt-get install upx$ sudo pip install pefile$ sudo apt-get install yara$ sudo pip install yara-python$ sudo apt-get install ssdeep$ sudo apt-get install build-essential libffi-dev python python-dev \libfuzzy-dev$ sudo pip install ssdeep$ sudo apt-get install wireshark$ sudo apt-get install tshark |
3. INetSim
INetSim là một tiện ích mạnh mẽ cho phép mô phỏng các dịch vụ Internet khác nhau (như DNS, HTTP) mà mã độc thường tương tác. Sau này, bạn sẽ hiểu cách cấu hình INetSim để mô phỏng các dịch vụ. Cách cài:
| $ sudo su # echo “deb http://www.inetsim.org/debian/ binary/” > /etc/apt/sources.list.d/inetsim.list # wget -O – http://www.inetsim.org/inetsim-archive-signing-key.asc | \apt-key add – # apt update # apt-get install inetsim |
4. Setup host-only

5. Gán địa chỉ IP tĩnh 192.168.1.100 cho máy ảo Ubuntu/Kali Linux
| $ sudo gedit /etc/network/interfaces Sau đó thay ens33 (đối với Unbutu) và eth0 (đối với Kali) Và các giá trị khác như sau: auto ens33 Có thể kiểm tra lại bằng ifconfig |
6. Chỉnh cấu hình INetSim để lắng nghe và mô phỏng các dịch vụ trên địa chỉ IP đã cấu hình 192.168.1.100:
| $ sudo gedit /etc/inetsim/inetsim.conf Tại phần service_bind_address, thêm giá trị (service_bind_address 192.168.1.100) như sau: # service_bind_address # # IP address to bind services to # # Syntax: service_bind_address <IP address> # # Default: 127.0.0.1 # #service_bind_address 10.10.10.1 service_bind_address 192.168.1.100 Theo mặc định, máy chủ DNS của INetSim sẽ giải quyết tất cả các tên miền thành 127.0.0.1. Để giải quyết điều đó, thêm giá trị dns_default_ip 192.168.1.100 kết quả như sau: # dns_default_ip # # Default IP address to return with DNS replies # # Syntax: dns_default_ip <IP address> # # Default: 127.0.0.1 # #dns_default_ip 10.10.10.1 dns_default_ip 192.168.1.100 Kiểm tra lại bằng lệnh sau: $ sudo inetsim Sau khi hiện ra được dòng “Listening on: 192.168.1.100” có thể CTRL + C để dừng lại. |
7. Để cho phép chuyển file giữa máy thật và máy ảo, bạn cần cấu hình:- Đối với VMware:
– Tắt máy ảo
– Vào Settings – Options – Guest Isolation
– Chọn Enable drag and drop và Enable copy and paste
– Lưu lại cài đặt
8. Snapshot

4) Setting Up And Configuring Window VM
- Download Python (qua store hoặc thủ công online (▀̿Ĺ̯▀̿ ̿) )
- Set host-only

3. Gán địa chỉ IP tĩnh:

4. Tắt tường lửa window để chắc chắn 2 máy ảo có thể ping đến nhau:
Nhập lệnh sau lên cmd (admin): netsh advfirewall set allprofiles state off
Các chức năng khác nếu như snapshot hay mở chuyển file tương tự setup Linux.

/Td6WFoAAATm1rRGAgAhARYAAAB0L+WjAQAbeJwr5mdgYAjPL0opKEotLlbIyyhV8AEAOdEGIwBU1VDZb9mobwABNByTGq2PH7bzfQEAAAAABFla
PS: Giải được đoạn mã trên, điền vào thanh phản hồi bên dưới kèm số tài khoản, nếu trả lời đúng bạn sẽ nhận được 50k (Chỉ dành cho người đầu tiên trả lời đúng)
