IoT設備網絡數據包抓包改包環境搭建分享
一、路由器上進行抓包
這部分主要還是比較底層的抓包。這裏就不過多的介紹了,畢竟好多大神的文章都寫的很詳細,主要內容還是以第三爲主。
ssh 或者其他方式登陸openwrt的終端模式,
抓包命令大概這幾條,
1.1基礎 tcpdump -vv -i br-lan
-vv 顯示狀態 顯示抓了幾條呀 都什麼數據之類的。 -i 指定網卡,比如wlan0 wifi,eth0 有線網卡,br-lan 一般都是指lan的網橋 就是包括wifi和lan部分。
1.2在基礎上擴展:tcpdump -vv -s0 -i br-lan host 192.168.1.100 and tcp -w /tmp/1.cap
-s 0 :不限制包的長度,也是抓取完整的包。 host:抓取指定ip的數據包 tcp:當然就是tcp包啦。 -w 文件路徑: 保存抓到的數據包到指定文件 這裏方便後期導出來到wireshark裏分析哈哈。
1.3數據包導出,windows下可以用winscp,linux麻 我還是習慣scp
二、蘋果手機底層抓包
iot協議分析大多數都和app相關,所以有這部分小經驗分享。
ios系統是支持直接抓包,但是有個前提條件 :必須用macos,或許是我沒找到windows和linux下的對應工具吧。
2.1、天才寶貝第一步,usb數據線把手機和mac連接到一起 用訪達查看手機的udid,複製出來(老mac用 itunes)
2.2、第二步,用rvictl -s udid
2.3、有請大白鯊登場 wireshark:
在界面裏就能看到手機變成的虛擬網卡啦,用它進行抓包就好了。
三、linux釋放熱點進行抓包代理
最近主要做iot設備的安全審計工作,iot設備好多都沒操作界面,不像手機還能導入證書什麼的。對於https這種加密協議不好進行抓取,該包什麼的也不方便。
3.1 環境搭建
硬件:筆記本最好有兩張網卡,不管無限還是有線吧!
操作系統:kali
需要安裝的程序:apt-get install bridge-utils hostapd dnsmasq
3.2 網絡環境:
筆記本電腦有線網卡接入網絡,無線網卡釋放信號做ap用,iot設備連接到wifi後通過筆記本電腦nat到路由器上,
這樣能進行很多操作,可能有大佬要說,這個方式和用路由器又啥區別,其實沒啥區別。只是burp suite用的比較方便,我能把更多精力放在其他工作上。
3.3 開啓wifi熱點
ifconfig wlan0 up
rfkill list 看下wlan0 是否被blocked 如果被用rfkill list all
修改hostapd.conf(/etc/hostapd/hostapd.conf)
interface=wlan0 #無線設備名稱,基本都是wlan0,可用iwconfig命令查看
#使用的網橋名稱,如果是用DHCP+NAT方式可忽略此行
#bridge=br0
#hostapd 0.6.8或者更高版本唯一選擇
driver=nl80211
#終端看到的wifi名稱,請自行修改
ssid=iot
#指明要選用的無線傳輸協議,這裏表示使用802.11g
hw_mode=g
#802.11b/g都至多隻有三條互不干擾的信道,即1,6,11,一般填這三個其中一個
channel=1
#驗證身份的算法,1表示只支持wpa,2表示只支持wep,3表示兩者都支持,wep已經被淘汰了,請不要使用。
auth_algs=1
#wpa加密方式,1代表支持wpa,2代表支持wap2,3代表兩者都支持。
wpa=1
#wifi密碼,請自行修改
wpa_passphrase=12345678
#對所有用戶進行同樣的認證,不進行單獨的認證,如果需要,請設置爲WPA-EAP。
wpa_key_mgmt=WPA-PSK
#控制支持加密數據的祕鑰,CCMP比TKIP更強
wpa_pairwise=CCMP
啓動ap :
hostapd /etc/hostapd/hostapd.conf
這個時候能在手機看到iot這個ssid
能連上 但是獲取不到ip地址
3.4 開啓網橋
這裏爲啥要開啓網橋,我的想法是反正都要配置環境了,我就把usb有線網卡和wifi 都配置好,畢竟還是有的設備是通過網線上網哈哈。
brctl addbr br-lan //創建一個網橋 名字叫br-lan brctl addif br-lan eth1 //這個是我的usb網卡,大家不需要可以不加 brctl addif br-lan wlan0 //把無線網卡加入br-lan ip addr add 10.8.8.1/24 dev br-lan
3.5 開啓dhcp和dns服務
這裏需要配置dnsmasq
編輯/etc/dnsmasq.conf
listen-address=10.8.8.1 #網橋br-lan的IP
interface=br-lan
bind-interfaces
#這個是重要的東西,設置dhcp的ip發配range,就是你的dhcp服務器分配多少個ip出來,ip的範圍從哪裏到哪裏,默認是c類網段,
#所以簡略了掩碼,後面增加一個租約時間,dhcp分配的ip是有租約的,租約過了是需要回收的。
dhcp-range=10.8.8.100,10.8.8.200,12h
dhcp-option=6,144.144.144.144,8.8.4.4 #6–>設置DNS服務器地址選項
port=5353 #設置端口
使用service dnsmasq restart 重啓服務
這時手機連接熱點iot試試看是否能正常獲取ip地址,這時手機還不能上網哦。
3.6 配置nat轉發
sysctl -w net.ipv4.ip_forward=1
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
到這一步用手機測試通過iot這個wifi是否能正常上網。
3.7:將80端口到流量和443端口到流量都轉發到burp suite上 。這裏提醒下不一定都是80和443哦,這裏只是用常用的端口舉例子,大家根據實際情況搞吧。
這裏的ip根據你自己的實際ip來寫
$ iptables -t nat -A PREROUTING -i br0 -p tcp --dport 80 -j DNAT --to-destination 192.168.2.107:80 $ iptables -t nat -A PREROUTING -i br0 -p tcp --dport 443 -j DNAT --to-destination 192.168.2.107:443
3.8:配置burp suite 透明代理。
首先設置下80端口的透明代理:
這裏設置好了之後用手機打開一個80端口的http網站,觀察下burp suite裏是否有反應
這裏說明下:這裏不用在手機的wifi設置裏設置代理了,因爲上面已經通過iptables的命令做了指定端口的代理,只要是在iot這個wifi網絡下都是走代理的
設置下443 的https 代理模式:
下面這一步比之前的多一個勾選 Force use of TLS 這個步驟。
一樣的方式測試下是否能抓到數據包。
出現這個頁面是因爲證書沒導入。
3.9:ios burp suite證書導入
這裏說下新版本的ios證書導入方式,打開burp suite的證書下載界面:我這裏是開192.168.2.107:8080 就出現了。
這樣就裝好證書了,但是打開證書信任,新版本的ios藏在比較深的地方:
設置->通用設置->關於本機->證書設置(下拉到底)
關於本機
證書設置(下拉到底)
點開信任的證書