近期我们对一些智能家电设备进行了渗透测试,其中一个目标设备是某公司的智能插座产品。拿到产品后我们一般会进行下面的两步操作:第一步设备配网,即插座绑定;第二步通过APP实现智能插座的远程通电和断电操作。
前面的操作都很顺利,但当我们用Burpsuite设置代理到进行抓包分析时,发现基本抓不到什么https和http包。经过一番头脑风暴后,我们找到了抓不到包的原因,APP与设备之间很可能使用了其他通信协议进行通讯,遇到这种情况Burpsuite当然会蒙圈了。
针对物联网设备的抓包问题,我们对多种抓包方式进行了研究和整理,最终总结出以下五种方法,大家可以根据自己的实际情况选择适合的方法。
1、通过Android模拟器进行抓包与重放
第一种方法是,在Android模拟器上安装tcpdump,再使用科来网络分析系统进行抓包与重放。
Android模拟器
tcpdump
科来网络分析系统
Wireshark
在Android模拟器上安装tcpdump。
// android下安装和使用tcpdump工具
adb push tcpdump /storage/sdcard0/tcpdump
// 使用RE文件管理器,将/system/bin/目录设置为可读写
cp /storage/sdcard0/tcpdump /system/bin/tcpdump
chmod 755 /system/bin/tcpdump
先启动APP,再使用tcpdump进行抓包。
// 运行tcpdump,将监听的数据包存放在/sdcard/capture.pcap
tcpdump -p -vv -s 0 -w /sdcard/capture.pcap
// 下载监听的数据包capture.pcap到PC的当前目录:
adb pull /sdcard/capture.pcap d:/
打开科来网络分析工具对抓到的封包进行分析和数据包重放。
我们在路由器上可以获得设备的ip,在分析工程页面,双击Android模拟器的ip进入数据包分析工程页面。重点关注Android模拟器->智能插座之间数据包,这些包就是对插座进行通断电的操作。