摘要
在動態分析 malware 時,malware 可能會因為環境的不同而造成行為不一樣,像是 malware 可能會檢查網路有沒有通,或是能不能連上自己的 C&C Server,假如失敗的話就會關閉程式,導致無法觀察到 malware 的行為,因此這邊介紹一個專門的工具 Inetsim,這項工具提供了相當多的service,只要將他安裝好後,就可以在本機端 (host) 開啟fake Service,當另一台主機 (guest) 設定 dns 為 host 時,就會連線到fake service,騙過 malware,讓他繼續執行,當然這個工具只是一個起頭,現在的 malware 都有很強的反分析能力,有時候還是需要各個擊破的。
架構圖
下載
官網上有載點以及 PGP key
將安裝包連結放入 source list
echo "deb http://www.inetsim.org/debian/ binary/" > /etc/apt/sources.list.d/inetsim.list
將 PGP key 加入 apt key
wget -O - http://www.inetsim.org/inetsim-archive-signing-key.asc | apt-key add -
安裝
apt update
apt install inetsim
Config
開啟一個專屬 Inetsim 的資料夾
mkdir Inetsim
將原始config 檔案放入新資料夾
$ cp /etc/inetsim/inetsim.conf ./
$ sudo cp -r /var/lib/inetsim ./data
$ sudo chmod -R 777 data
更改inetsim.conf
- service_bind_address 預設只有聽 local 的網路卡,因此我們這邊必須改成0.0.0.0 讓外部的設備可以連,但假如你想鎖定在某個網卡也可以改成那張網卡
1 2 3 4 5 6 7 8 9 10
######################################### # service_bind_address # # IP address to bind services to # # Syntax: service_bind_address <IP address> # # Default: 127.0.0.1 # service_bind_address 0.0.0.0
- dns_default 這個參數代表的是每次 dns server 回傳的 ip,請輸入你本機網卡(與測試虛擬機相連的那張)
1
2
3
4
5
6
7
8
9
10
#########################################
# 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.2.1
由於我們必須使用 Inetsim 的 DNS 所以必須關閉本機端負責DNS 的service,否則會衝突,並且要重開機喔 sudo systemctl disable systemd-resolved.service
sudo service systemd-resolved stop
開啟 Inetsim 服務
執行下面指令後就會看到是否成功Listen port 了,可以用wget 或 telnet 看 port 的回應 sudo inetsim --data data --conf inetsim.conf
虛擬機連線
這邊就先不討論建置虛擬機過程,假設你已經有一台機器(10.10.2.2)可以連線到本機(10.10.2.1 Inetsim),接下來去ping 一個不存在的 domain (googleGGdd.com),會發現無法連線,這是因為我們還沒將虛擬機的 DNS 換成本機端的
- 修改 /etc/resolv.conf
- 放入
nameserver 10.10.2.1
- 放入
在重新ping 一次應該就會成功囉
ref
https://blog.christophetd.fr/malware-analysis-lab-with-virtualbox-inetsim-and-burp/#5_Using_INetSim_and_Burp_on_the_analysis_machine_to_analyze_the_network_traffic
https://www.inetsim.org/downloads.html