Skip to content

Instantly share code, notes, and snippets.

@lotusirous
Created September 6, 2016 12:42
Show Gist options
  • Save lotusirous/e946e86e4a5aa6f74626ef957f9bfa86 to your computer and use it in GitHub Desktop.
Save lotusirous/e946e86e4a5aa6f74626ef957f9bfa86 to your computer and use it in GitHub Desktop.

Bên lề

Một số trang thêm tính năng cho cuckoo.

References tại đây

Giới thiệu

Cuckoo là một sandbox phân tích malware. Cho phép thực thi malware trong một môi trường máy ảo, ngoài ra nó còn cho phép phân tích trên môi trường máy thật. Kiến trúc của cuckoo theo mô hình của một máy ảo thật sự bao gồm host và guest.

  • Máy host là máy được cài chương trình ảo hóa như virtualbox hay vmware.
  • Máy guest là một máy tính được cài hệ điều hành dành cho việc thực thi malware. Có thể là máy ảo hoặc máy vật lý.

Cài đặt

Vì kiến trúc của cuckoo theo mô hình này. Nên việc cài đặt gồm 2 bước: Cài đặt ở host và cài đặt tại guest.

Cuckoo hỗ trợ những thành phần ảo hóa khác như Xen, nhưng trong phần này không bàn tới vì tôi sử dụng trên virtualbox.

Kết quả sau khi cài đặt

  • Giao diện web cho phép submit mẫu qua trình duyệt.
  • Sử dụng được API cho phép xử lý mẫu và lấy kết quả.

Cài đặt trên host

  1. Cài đặt thư viện:
1. $ sudo apt-get install python python-pip python-dev libffi-dev libssl-dev
2. $ sudo apt-get install mongodb
3. $ sudo pip install -r requirements.txt

Lưu ý Ở bước 3, nếu việc cài đặt những thư viện xảy ra lỗi thì ta sửa lại phiên bản gói thư viện trong file requirements.txt. Sửa lại như sau để cài gói thư viện mới nhất, tham khảo. Cách này có thể gây ra lỗi nhưng đảm bảo cuckoo vẫn chạy được. Ví dụ

```
alembic==0.8.0
beautifulsoup4==4.4.1
cffi==1.2.1
....
wakeonlan==0.2.2
Werkzeug==0.10.4
```

Sẽ sửa lại thành:

```
alembic
beautifulsoup4
cffi
...
wakeonlan
Werkzeug
```
  1. Cài đặt phần mềm hỗ trợ phân tích.
    • Tcpdump
    $ sudo apt-get install tcpdump
    $ sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
    $ getcap /usr/sbin/tcpdump
    /usr/sbin/tcpdump = cap_net_admin,cap_net_raw+eip
    
    • Volatility

Tham khảo tại đây

  1. Tạo user cho chương trình. Lưu ý, user thực thi cuckoo phải có quyền truy cập tới virtualbox hay nằm trong group của virtualbox.
$ sudo adduser cuckoo
$ sudo usermod -a -G vboxusers cuckoo

Mặc định, những cấu hình của cuckoo đều hoạt động ngay từ lần đầu. Chúng ta không cần chỉnh sửa gì. Kể từ bước này tất cả các lệnh được thực thi đều phải dưới quyền của người dùng ở bước 3.

Cấu hình virtualbox

Như đã trình bày ở những phần trên, trong phần này sẽ thực hiện cài đặt trên máy ảo virtualbox.

Việc cài đặt virtualbox rất đơn giản, có thể search google hoặc tải gói .deb thuộc họ debian về và gõ dpkg -i virtualbox-5.x.deb. Nếu có thiếu thư viện thì xài lệnh apt-get -f install.

Cuckoo sử dụng card mạng vboxnet0 theo dạng host-only. Vì chúng ta deploy trên server nên sẽ sử dụng headless chứ không phải dạng GUI. Các bước làm như sau:

  1. Thêm card host-only vboxnet0.
  2. Đặt ip cho card mạng
  3. Chạy cuckoo.
  VBoxManage hostonlyif create
  ip link set vboxnet0 up
  ip addr add 192.168.56.1/24 dev vboxnet0

Cài đặt trên guest.

Tùy thuộc mục tiêu mà cài đặt hệ điều hành tương ứng, trong phần này sẽ cài đặt windows. Nếu sử dụng trong môi trường không có GUI thì cài đặt extension của VirtualBox, tại trang chủ Quá trình tạo máy ảo như sau:

  1. Register một máy ảo, sau đó cấu hình phần cứng dành cho máy ảo.
tom@firewall:~/cuckoo$ VBoxManage createvm --name "WindowsXP" --register
Virtual machine 'WindowsXP' is created and registered.
UUID: cd772d42-6239-461e-b1d9-ff8639da8ed8
Settings file: '/home/tom/VirtualBox VMs/WindowsXP/WindowsXP.vbox'
  1. Cấu hình phần cứng:
$ VBoxManage modifyvm "WindowsXP" --memory 1024 --acpi off --boot1 dvd
$ VBoxManage modifyvm "WindowsXP" --nic1 hostonly --hostonlyadapter1 vboxnet0
$ VBoxManage modifyvm "WindowsXP" --ostype WindowsXP
  1. Tạo VDI storage
$ VBoxManage createhd --filename /home/tom/VirtualBox\ VMs/windowsxp.vdi --size 20000

  1. attach the VDI image to the virtual machine
VBoxManage storagectl "WindowsXP" --name "IDE Controller" --add ide
VBoxManage storageattach "WindowsXP" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium /home/tom/VirtualBox\ VMs/WindowsXP/windowsxp.vdi
VBoxManage storageattach "WindowsXP" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /home/tom/XP.Professional.SP3.June.2012.SATA__Made.by.qqwwee123__PhienBanMoi.Com.iso
  1. Start máy ảo
VBoxHeadless --startvm "WindowsXP"

Sử dụng

Tắt máy ảo:

VBoxManage controlvm "WindowsXP" poweroff Cấu hình nat để download python: VBoxManage modifyvm "WindowsXP" --nic2 nat

Trên môi trường không phân tán

Trên môi trường phân tán

Tải và cài đặt bộ requirements trên trang chủ của cuckoo. cấu hình host-only.

Lưu ý: Trên Ubuntu 16.04 xoá phiên bản trong phần cryptography trong requirements.txt đi. gõ: pip install -r requirements.txt

Cài agent trên máy guest.

  • cài python
  • chạy file agent.py trong thư mục của cuckoo.

Tạo snapshot.

cấu hình file cuckoo.virtualbox.

Tham khảo: https://www.proteansec.com/linux/installing-using-cuckoo-malware-analysis-sandbox/

Kích hoạt web trong thư mục web: sử file conf/reporting.conf enable mongo=yes

Distributed trong cuckoo.

Theo tài liệu cuckoo chính thống tại đây. Ta sẽ chạy file app.py trong thư mục distributed.

  • Cuckoo sử dụng django.

Đoán 1: Cài đặt database mysql hoặc postgresql. Sau đó chạy lại file app.py

Cuckoo cáu hình distributed bằng các sử dụng database như một broker. Trong trường hợp này là mysql hoặc postgresql.

  • Lưu trữ trong thư mục distributed
  • Dòng 10 và 11 trong file settings.py
# mysql://foo:bar@localhost/mydatabase
SQLALCHEMY_DATABASE_URI = "postgresql://cuckoo:cuckoo@localhost/distributed"

Chỗ này nó dùng connection string. Theo dạng postgresql://host:port/database

  • Cài đặt posgresSQL
  • Tạo database distributed.
  • Test connection vào database.

Chạy theo tutorial.

Nhớ chạy lệnh curl để cập nhật host trên môi trường phân tán.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment