IoT设备网络数据包抓包改包环境搭建分享 – 作者:question

一、路由器上进行抓包

这部分主要还是比较底层的抓包。这里就不过多的介绍了,毕竟好多大神的文章都写的很详细,主要内容还是以第三为主。

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藏在比较深的地方:

设置->通用设置->关于本机->证书设置(下拉到底)

关于本机

证书设置(下拉到底)

点开信任的证书

小结:

为啥要那么麻烦做burp suite透明代理呢? 其实我平时主要工作还是iot部分的安全测试为主,iot设备好多情况下都不能通过wifi去设置代理,所以只能走上面的步骤。现在越来越多iot设备开始走顶层协议来,比如http、websocket、mtqq。 写的比较乱,希望大家谅解。有机会再分享下设备端的证书导入什么的。

*本文作者:question,转载请注明来自FreeBuf.COM

来源:freebuf.com 2020-06-26 08:00:21 by: question

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论