本帖最后由 ttimasdf 于 2019-12-28 17:38 编辑
初来乍到,分享一些个人的经验~简单搜了一下没有人提,就开个帖子说一下
目的:
利用ssh连接到路由器上运行tcpdump,并通过管道将流量实时传输回电脑,这样常用的协议直接就能解析出来啦。
前提:
系统:最好是Linux/Mac,因为管道pipe是POSIX标准中的概念,Windows需要用putty带的plink命令行工具进行流量转发,我没试过但看到过教程。
路由器:支持ssh,可以用opkg安装tcpdump,或者能丢一个编译好的tcpdump进去运行。咱们论坛的应该都会折腾这些
设备:肯定是抓Wi-Fi连接的设备啦。
步骤:
1. 路由器安装好tcpdump。
如果是OpenWRT的话,opkg install tcpdump-mini 即可,mini功能不少什么,占用空间大概几百k吧。
如果是其他自定义固件的话,我相信你们会用谷歌搜 tcpdump static binary
2. 电脑上命令行启动ssh、tcpdump与wireshark。
mac用homebrew或者linux用包管理器(如apt)等方式自动安装的话,wireshark应该直接在系统的PATH里了。如果没有的话,运行命令行时,可能需要将wireshark替换为绝对路径。
ssh <路由器IP> tcpdump -i <路由器LAN网卡> -s65535 -Uw- 'host <设备IP或内网域名>' | wireshark -ki-
实际的例子,抓包目标设备是青萍空气检测仪。
运行起来以后,如果一切正常,会显示出类似下面的消息,listening on br-lan,这种。
$ ssh openwrt.lan tcpdump -i br-lan -s65535 -Uw- 'host ClearGrass-AirMonitor.lan' | wireshark -ki-
tcpdump: listening on br-lan, link-type EN10MB (Ethernet), capture size 65535 bytes
然后wireshark窗口会弹出来。
3. 然后看就完事了。比如青萍检测仪是MQTT的消息。 参考 https://bbs.hassbian.com/thread-6290-1-1.html
再例如,水星摄像头的控制是80端口的HTTP。有的大佬(https://bbs.hassbian.com/thread-7752-1-1.html)说,需要对iOS进行复杂的设置然后抓包,其实大可不必。
ssh openwrt.lan tcpdump -i br-lan -s65535 -Uw- 'host ipc.lan and port 80' | wireshark -ki-
注意,我在tcpdump的bpf filter这里加了一个 and port 80 ,因为rtsp的视频流数据实在是太多了,不做预处理,会让wireshark变卡的。
结语:
这种分析方式基本对所有Wi-Fi设备是通杀的。路由器设置好,剩下的步骤就都很方便了。
|