【技术分享】借助树莓派模拟Wimonitor监听Wifi

http://p1.qhimg.com/t01fab5b963f2953a94.jpg

译者:興趣使然的小胃

预估稿费:200RMB

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿

一、前言

WimonitorHacker Arsenal的一款优秀产品,提供了Web配置界面,可以节省渗透测试人员的精力,使他们免于配置繁琐的虚拟机、挂载支持监听模式的无线网卡等操作。这款产品使用起来非常方便,只需要将设备插入以太网口中,你就可以在任何操作系统上监听Wi-Fi流量。本质上它是一个tp-link TL-MR3020路由器,搭载了具有监听功能的自定义固件,可以将监听到的数据包发往主机(或Mac),以便操作者在主机上运行Wireshark分析数据包。

虽然我尚未购买这款产品,但自上市以来,我已经听过关于该产品的许多赞誉之词。然而,从欧盟购买所需的运费实在太高,希望厂商能够尽快从欧盟区直接发货。

与此同时,我有个好想法:为什么我们不在树莓派(Raspberry Pi)上实现类似功能?

树莓派可以运行包括Kali在内的许多操作系统,之前我在渗透测试中也经常用到树莓派。树莓派3B功能非常强大,足以胜任稳定的监听工作,只需要几个简单的步骤,我们就可以将它变成Wimonitor(当然,只是功能上相似)。

Hacker Arsenal的极客们已经造出了Wimonitor这个绝妙的产品,该产品是一个性能稳定的即插即用设备,提供固件维护支持。因此,如果你是Wi-Fi安全领域的初学者,或者你想要一个简单易用的监听工具,我建议你选择Wimonitor。


二、所需硬件

运行Windows系统的一台笔记本主机(本文所完成的测试及截图均在Windows 8.1上完成)。

树莓派3B、micro SD卡、电源适配器(USB 3.0电源应该足以驱动树莓派+无线网卡)。

以太网线,连接树莓派及笔记本。

支持监听模式的Wi-Fi网卡(如TL-WN722N v1)。

三、安装步骤

1、将RASPBIAN STRETCH LITE写入micro SD卡。这是个轻量级操作系统,本身就支持包括TL-WN722N在内许多网卡的监听模式。你可以参考此处了解写入该系统的具体步骤。

2、将Raspbian写入micro SD卡后,你需要在树莓派上启用SSH功能。具体方法是在micro SD卡上创建一个名为ssh的空白文件(注意:不需要文件扩展名)。

3、为了能让笔记本与树莓派通信,最简单的方法是通过以太网与树莓派共享笔记本的Wi-Fi。这样树莓派就能得到192.168.137.x的IP地址。具体步骤是,先转到网络连接(使用ncpa.cpl命令),在Wi-Fi适配器上点击右键,选择“属性”,在“共享”选项卡中,选择与树莓派连接的那个以太网适配器,点击确定即可。

https://p0.ssl.qhimg.com/t01590f50032399e90f.png

4、准备将树莓派连接到笔记本主机。将micro SD卡插入树莓派插槽,Wi-Fi网卡插入USB接口,通过网线将笔记本主机及树莓派连接起来,启动电源。

5、树莓派启动后,会通过共享连接获得一个IP地址。想要探测树莓派的IP地址,最简单的一种方法就是在笔记本上运行nmap,探测192.168.137.1/24子网上的主机。

https://p0.ssl.qhimg.com/t01580f457dd875104c.png

6、运行PuTTY,通过SSH方式接入树莓派。我们正在使用的Raspbian OS的默认用户名密码为pi/raspberry。

https://p1.ssl.qhimg.com/t0159627ddca5efe7a3.png

7、想要为树莓派设置静态IP地址的话,可以打开`/etc/dhcpcd.conf`文件,在文件尾部添加如下字段:

interface eth0
static ip_address=192.168.137.100/24
static routers=192.168.137.1
static domain_name_servers=192.168.137.1

8、我推荐使用基于密钥认证的SSH登录方式。打开PuTTYgen,生成密钥对。

https://p5.ssl.qhimg.com/t01d6f7ee7aac70a709.png

9、在树莓派的主目录创建一个`.ssh`目录,在其中创建一个名为`authorized_keys`的文件。将PuTTYgen生成的公钥信息粘贴到`authorized_keys`文件中。记得保存PuTTYgen的私钥。重启树莓派上的SSH服务。此外,记得修改树莓派的默认密码。

https://p3.ssl.qhimg.com/t01a2be8b29dee42cfe.png

10、默认情况下,Raspbian lite OS并没有集成用来监听的软件包,我们可以使用如下命令安装这些软件包:

sudo apt update
sudo apt install aircrack-ng tcpdump -y

11、测试无线网卡能否在树莓派上执行监听任务。

https://p3.ssl.qhimg.com/t01e7484392071e6301.png

12、现在,我们已验证树莓派上能够正常进行监听,接下来我们可以通过SSH登录树莓派,运行tcpdump,将结果传回笔记本上正在运行的Wireshark。plink.exe是PuTTY.exe的命令行接口,可以在Windows上满足这些需求。为了便于操作,我将plink.exe以及PuTTYgen生成的私钥放在同一个文件夹中。如果这两个文件不在同一个目录,我们可以使用如下命令修改为正确的路径。

只需要如下一行语句即可:

plink.exe -ssh -i pi-monitor-ssh-key.ppk pi@192.168.137.234 "sudo tcpdump -ni wlan1mon -s 0 -w -" | "C:Program FilesWiresharkWireshark.exe" -k -i -

https://p5.ssl.qhimg.com/t0193f72709693e5808.png

https://p0.ssl.qhimg.com/t0101a5aa3789fabe20.png

https://p2.ssl.qhimg.com/t01f7276ed14a67c324.png

如果只需要在信道1上监听的话,我们可以运行如下命令:

sudo iwconfig wlan1mon channel 1

如你所见,借助树莓派,我们不需要做太多操作就能监听Wi-Fi数据包,监听结果也能导出到Windows或其他操作系统中,通过Wireshark进行查看。


四、后续使用步骤

上述步骤是一次性安装步骤。后续我们想继续监听时,只需将无线网卡插入树莓派,按下电源开关,运行如下命令即可使树莓派进入监听模式:

plink.exe -ssh -i pi-monitor-ssh-key.ppk pi@192.168.137.100 "sudo airmon-ng start wlan1"

随后,启动Wireshark,开始监听。

plink.exe -ssh -i pi-monitor-ssh-key.ppk pi@192.168.137.100 "sudo tcpdump -ni wlan1mon -s 0 -w -" | "C:Program FilesWiresharkWireshark.exe" -k -i -

https://p0.ssl.qhimg.com/t0195d3cb3bd1ced8cd.png

https://p3.ssl.qhimg.com/t01947df6745e0d1324.png

https://p4.ssl.qhimg.com/t0187233e23476c802b.png

就是这么简单 ?


五、总结

这种方案有如下几个优点:

1、无需使用庞大的虚拟机。只需要使用Windows上的Wireshark以及plink.exe就能监听Wi-Fi流量。我还没有在Linux或Mac OS上测试这种方案,我猜应该有将SSH输出结果推送到Wireshark的类似办法。

2、Wi-Fi监听成本低廉。如果你已经准备进入渗透测试领域或类似领域,你手头上应该备有一个树莓派以及无线网卡。

3、Wimonitor可能只能使用板载的Wi-Fi芯片,然而这种方案中,树莓派可以使用任何(或多个)支持监听模式的无线网卡。只需要使用USB集线器或者电池为树莓派及无线网卡提供电源即可。你可以考虑一下使用Yagi–Uda天线来配合树莓派的无线网卡。

4、安装起来非常简单。Raspbian以及Kali原生支持类似Alfa AWUS036NHA、TL-WN722N之类的无线网卡。前期工作准备就绪后,我们只需要将无线网卡插入树莓派,运行两条命令就可以抓包分析。

5、树莓派足以应付监听任务。在相对较为繁忙的Wi-Fi区域中,这种方案中树莓派总共只消耗了35 MB左右的内存。

当然也有如下缺点:

1、不像Wimonitor那样即插即用。我们需要做些初始设置(即两条命令)才能启动并运行这套装备。

2、没有Web界面能够更改配置。

3、目前仍不具备信道子集跳频功能。

希望本文对你有所帮助。

(完)