freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

IoT渗透之抓包5法
2020-08-21 14:18:14

近期我们对一些智能家电设备进行了渗透测试,其中一个目标设备是某公司的智能插座产品。拿到产品后我们一般会进行下面的两步操作:第一步设备配网,即插座绑定;第二步通过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模拟器->智能插座之间数据包,这些包就是对插座进行通断电的操作。

将所有的数据包选取后点右键-发送数据包到数据包生成器。

进入科来数据包生成器,将不相关的数据选取后删除,然后选择发送全部,智能插座马上有反应了,快速的开关一次,数据包重放成功!

2、在路由器上进行抓包

第二种方法是在newifi3上刷Openwrt固件,再安装tcpdump进行抓包。

  • newwifi3+openwrt19.07
  • tcpdump
  • 科来网络分析系统
  • Wireshark

新路由3下刷入openwrt19.07固件,前提是已经刷入了Breed Web系统:

(1)准备好openwrt19.07固件

(2)打开浏览器输入 192.168.1.1,进入 Breed Web 恢复控制台刷系统前只能通过有线连接的方式进行,因为进入 BreedWeb 恢复控制台后,无线功能是没有打开的。

(3)进入 Breed Web 恢复控制台后,先不要急着进行升级,先在控制台点击恢复出厂设置。路由如果从一个系统刷入另一个系统,最好先恢复出厂设置,这样也能保持在刷入系统之前是最初始状态。

(4)恢复出厂设置后,不需要进行任何操作,会自动跳到 BreedWeb 恢复控制台。然后在固件前面打勾,再点击”浏览”,跳出固件选择窗口。

(5)固件上传完成后,到 Breed Web 恢复控制台更新确认界面,点击更新。

下面开始在openwrt下安装tcpdump。输入http://192.168.2.1进入路由的管理界面,先打开ssh服务。

安装tcpdump。

ssh 192.168.2.1 22
mkdir /test2020
cd /test2020
opkg update
opkg install tcpdump
ifconfig -a
//测试tcpdump是否安装成功 tcpdump -h

先启动APP,再使用tcpdump进行抓包。

//将监听的数据包存放在/test2020/tmp1.pcap
tcpdump -i br-lan -U -c 300 -vvv -w tmp1.pcap
//下载监听的数据包capture.pcap到PC的当前目录
adb pull /test2020/tmp1.pcap d:/movie

接下来打开科来网络分析工具对抓到的封包进行分析和数据包重放,与方法1中的步骤相同,不再赘述。

3、在win10上建立WiFi热点

第三种方法是win10下建立WIFI热点,使用科来和wireshark进行抓包。

  • 科来网络分析系统
  • Wireshark
  • WIFI热点工具

进入app,然后打开科来网络分析工具对wifi热点网卡进行抓包和重放。但经过测试,这种方法效果不是很好,会出现抓包不全的情况。

4、在Ubuntu上建立WIFI热点+伪造证书

第四种方式是在ubuntu19.04下建立WIFI热点,使用tcpdump进行抓包,再通过sslsplit伪造CA证书,实现SSL中间人攻击。经过实际测试和几种方法的对比,这种方法的抓包效果最好。

SSLSplit的主要原理是以中间人的身份将证书插入到客户端和服务器中间,从而截断客户端和服务器之间的数据。之前我们大多数做的都是针对于80端口的欺骗,也就是说,只要是超越了80端口我们就会有点棘手:比如常用的443端口,比如465和587端口,这些都是通过SSL加密进行数据传输的,简单的80端口监听肯定是什么都拿不到的。这个时候,就体现出SSL证书劫持的作用了。

  • 免驱动网卡
  • tcpdump
  • sslsplit
  • tcpreplay

在ubuntu19.04下开启WIFI热点。

ubuntu19.04下面安装sslsplit。

apt-get install libssl-dev libevent-dev
make
make install
//根据提示搜索安装相应版本:
apt install pkgconf
aptitude search libpcap* 
apt-get install libpcap-dev
aptitude search libnet*
apt install libnet-dev
sslsplit -h //安装成功后进行测试
cd /test2020
openssl genrsa -out ca.key 2048 //生成一个key文件
//自签名用生成的key生成公钥证书:
openssl req -new -x509 -days 1096 -key ca.key -out ca.crt 

//打开端口流量转发
echo 1 > /proc/sys/net/ipv4/ip_forward 
//用iptables进行流量转发,需要把我们需要的端口进行转发:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443
iptables -t nat -A PREROUTING -p tcp --dport 587 -j REDIRECT --to-ports 8443
iptables -t nat -A PREROUTING -p tcp --dport 465 -j REDIRECT --to-ports 8443
iptables -t nat -A PREROUTING -p tcp --dport 993 -j REDIRECT --to-ports 8443
iptables -t nat -A PREROUTING -p tcp --dport 995 -j REDIRECT --to-ports 8443

启动sslsplit进行SSL分离抓包,将数据包日志保存在/test2020/log目录下面。

sslsplit -D -l connect.log -j /test2020 -S log/ -k ca.key -c ca.crt ssl 0.0.0.0 8443 tcp 0.0.0.0 8080

先启动APP,再使用tcpdump进行抓包,将监听的数据包存放在/test2020/tmp1.pcap。

cd /test2020
tcpdump -i wlxe84e0615571b -U -c 300 -vvv -w tmp1.pcap

ubuntu19.0.4下使用tcpreplay进行数据包重放。

apt install tcpreplay //安装tcpreplay
tcpreplay -V //查看安装版本
cd /test2020
tcpreplay -i wlxe84e0615571b  tmp1.pcap

5、数据流量重定向抓包

最后一种方法是,通过AP上面的DHCP SERVER功能。插座和APP应用在配网的时候,会提示输入路由器WIFI接入点名称和连接密码,通过AP上面的DHCP SERVER功能,可以将插座与android app的网关地址设为攻击机(ubuntu19.04)的IP地址,再使用tcpdump进行抓包,同时通过sslsplit伪造CA证书,实现SSL中间人攻击。

  • 新3路由器
  • tcpdump
  • 科来网络分析系统
  • wireshark
  • sslsplit

将插座与android app的网关地址设为攻击机(ubuntu19.04)的IP地址。

对SSLSplit的设置与方法四中的步骤相同,在此不再重复。

启动APP,再使用tcpdump进行抓包,将监听的数据包存放在/test2020/tmp1.pcap。

cd /test2020
tcpdump -i ens33 -U -c 300 -vvv -w tmp1.pcap

最后,打开科来网络分析工具对抓到的封包进行分析和数据包重放。

总结

上面一共介绍了五种针对物联网设备的抓包方法,详细介绍了具体的操作步骤。从抓包的位置看,可以归纳成为Android设备端、路由端、WIFI热点几个角度;技巧方面包括Openwrt刷机、sslsplit伪造证书和DHCP SERVER功能等。希望可以帮助大家在今后的工作和研究中扩展一些关于抓包的思路。

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

# 渗透测试 # IoT安全 # IoT攻击
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者