0X00 系統環境搭建
本文章不去介紹cuckoo相關信息,只關注於cuckoo的安裝部署。由於時間比較倉促,還沒有把文章完全理順,後續會慢慢整理,持續更新,烏拉!
關於cuckoo的詳細信息見官方文檔:https://cuckoo.sh/docs/index.html
# 系統基礎軟件安裝
$ sudo apt-get install python python-pip python-dev libffi-dev libssl-dev
$ sudo apt-get install python-virtualenv python-setuptools
$ sudo apt-get install libjpeg-dev zlib1g-dev swig
# 爲了使用基於Django的Web界面,需要MongoDB:
$ sudo apt-get install mongodb
# 爲了將PostgreSQL用作數據庫(我們的建議),安裝PostgreSQL:
$ sudo apt-get install postgresql libpq-dev
# 使用KVM進行虛擬化:
$ sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils python-libvirt
# 創建用戶
$ sudo adduser cuckoo
# 添加用戶到KVM組
$ sudo usermod -a -G libvirtd cuckoo
# 安裝tcpdump
$ sudo apt-get install tcpdump apparmor-utils
# 如果使用默認的cuckoo work directory,需要禁用該配置文件
$ sudo aa-disable /usr/sbin/tcpdump
# 創建pcap組,添加cuckoo到pcap組
$ sudo groupadd pcap
$ sudo usermod -a -G pcap cuckoo
$ sudo chgrp pcap /usr/sbin/tcpdump
$ sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
# 安裝guacd
$ sudo apt install libguac-client-rdp0 libguac-client-vnc0 libguac-client-ssh0 guacd
# 至此,系統軟件安裝告一段落,接下來使用pip安裝相應軟件
# 修改pip源,升級pip和setuptools
$ sudo pip install --upgrade pip
$ pip install setuptools
# 創建venv環境
$ virtualenv venv
$ . venv/bin/activate
(venv)$ pip install -U pip setuptools
(venv)$ pip install -U cuckoo
(venv)$ pip install psycopg2
0X01 開始運行
接下來可以運行cuckoo了,首次運行cuckoo會創建默認的配置文件,也就是CWD(cuckoo work directory)
cuckoo -d
初始化之後需要我們初始化數據庫,然後編輯cuckoo的配置文件
# 創建postgresql用戶並創建數據庫
$ su postgres
# 創建用戶
$ create user cuckoo with password 'cuckoo123';
# 創建數據庫cuckoo,並將該數據庫的擁有者設置爲cuckoo用戶
$ create database cuckoo owner cuckoo;
# 將該數據庫所有權限給到cuckoo用戶
$ grant all on database cuckoo to cuckoo;
要使cuckoo能正常運行,最起碼得修改cuckoo.conf和kvm.conf(我使用的kvm,如果你使用virutalbox,那麼得修改virtualbox.conf)。修改cuckoo配置文件:cuckoo.conf,該文件在執行cuckoo -d命令返回給你的CWD路徑下,例如/root/.cuckoo/conf/cuckoo.conf
# 將虛擬化環境設置爲KVM
machinery = kvm
# 設置數據庫連接
connection = postgresql://cuckoo:cuckoo123@localhost:5432/cuckoo
# 設置resultserver,KVM創建的virbr0的ip地址
ip = 192.168.122.1
cuckoo需要設置resultserver ip,也就是用於接收虛擬機運行情況的ip,如果是用KVM虛擬化,那麼該IP就是本機的virbr0,可以使用ifconfig查看:
iptables設置,允許kvm虛擬機訪問宿主機及該網段其他所有機器:
iptables -t nat -A POSTROUTING -o ens160 -s 192.168.122.0/24 -j MASQUERADE
iptables -P FORWARD DROP
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 192.168.122.0/24 -j ACCEPT
iptables -A FORWARD -s 192.168.122.0/24 -d 192.168.122.0/24 -j ACCEPT
iptables -A FORWARD -j LOG
iptables -nL -v
# 開啓內核轉發
$ echo 1 | sudo tee -a /proc/sys/net/ipv4/ip_forward
$ sudo sysctl -w net.ipv4.ip_forward=1
# 安裝iptables-president,使iptables規則持久化,否則重啓後會丟失規則
apt-get install iptables-persistent
0X02 使用KVM安裝win7虛擬機
根據自己需要修改下面命令相關參數即可,命令執行成功後是VNC連接暴露出來的VNC端口(例如5902),完成系統安裝
virt-install --connect qemu:///system --name windows --memory=4096 --vcpus=2 --disk path=/home/vms/windows.qcow2,device=disk,format=qcow2,bus=ide,cache=none,size=50 --cdrom /home/ISO/cn_windows_server_2008_r2_standard_enterprise_datacenter_web_x64_dvd_x15-50360.iso --os-type=windows --network bridge=br0,model=virtio,model=e1000 --hvm --virt-type=kvm --noautoconsole --graphics vnc,listen=0.0.0.0,port=5902
0X03 Win7沙箱相關配置
1.關閉防火牆和自動更新
這個不需要多說,關掉即可,這樣才能讓惡意樣本暢通無阻
2.設置靜態IP地址,DNS
設置靜態IP地址,和virbr0同網段即可,默認網關指向virbr0的IP,DNS地址也填寫virbr0的IP。配置完成後測試下是否能正常訪問宿主機和外網。
在宿主機上創建快照:
virsh snapshot-create-as windows windows_init
0X04 運行cuckoo
在運行前還有兩件事要做,1.編輯kvm.conf,修改相關參數。2.安裝libvirt
(venv)$ cuckoo