前言:
之前曾经介绍过国外无线安全审计设备The WiFi Pineapple Nano的SSLsplit模块和ettercap模块及实验。
在玩WiFi Pineapple Nano 设备的过程中,鉴于个人手头只有几块网卡,测试下来发现Nano能够支持的网卡芯片有:RTL8187L 、RT3070、AR9271、RT5370…,诸位朋友在自己测试的过程中如果发现网卡识别不到的情况,请参考采用刚才提到的几块芯片的网卡。
今天给大家介绍下Pineapple Nano的一个主要功能模块PineAP和其他几个涉及配合PineAP工作的几个模块的使用方法。
0×01 Recon模块
目前来说,针对无线扫描类的工具可分为两大类型:被动式(passive)和主动式(active)。
被动式扫描的原理是按照不同的channel上,监听(monitor)信道中所有无线信号的通信数据包,通过分析数据包内容来获取AP和客户端的信息。
主动式扫描是采取周期性的向周围发射探测类的请求数据包(Probe Request),带有无线网卡的笔记本开机后网卡自动接入操作系统已知AP热点的过程便是主动式扫描的一个实例。由于二者实现的原理不同,简单来说被动式扫描的效果比主动式扫描会好很多。
下面我们来看一下WiFi Pineapple Nano中Recon模块的具体功能。
首先,Recon模块采用被动式扫描方式,扫描过程会自动将网卡设置为监听模式,监听周围不同信道上的(客户端)发出的各种数据包。
Recon能够扫描出SSID、MAC地址、加密方式、是否启用了WPS功能、信道及信号强度等信息,Recon甚至还能扫描出当前未连接任何AP的客户端。
在执行扫描操作时,只需要按照预设的扫描时间(如15s、30s、60s…)等,点击“Scan”即可一键式启动。如果勾选“Continuous”的话,扫描将会持续进行,即不停地向周围进行探测并将结果显示出来。
在大家使用Recon模块过程中,最可能会遇到的问题是出现此种情况:在点击“Scan”后,出现“There was an error starting Recon…”
出现此问题时建议大家先检查下Networking设置下面的WiFi Client Mode,其中的Interface名称是否是“wlan1”。
因为在该模块的代码层面,采用的默认接口的变量名称就是“wlan1”,如果Interface的名称不是默认“wlan1”的话,便会出现上图的错误。
解决办法有两种:
第一种,只插一块外置网卡默认名自动为wlan1;
第二种是修改Recon模块的变量名为当前显示的Interface名称(例如改为wlan2、wlan3…)。
总的来说,Recon模块的基本功能就是如此,简单而强大。
0×02 Logging模块
上图是PineAP模块在Logging中对日志进行Filter,例如可以进行去重、刷新、删除、下载等操作,还支持根据SSID或MAC地址功能进行过滤。
上图为Nano system系统日志
总的来说,WiFi Pineapple Nano的Logging模块比较简单,主要是用来过滤查询PineAP模块的日志。
0×03 Landing Page
本质上来说Landing Page功能并不属于一个独立的模块,仅仅放置在了Pineapple Nano中Configuration的设置下。
Landing Page启用后可以将所有连接到Pineapple Nano上的客户端,强制定位到的一个门户web页面,这个web可以有我们自定义,支持html、js、php语言等,后面我们会看到一个关于Landing Page功能的简单实例用法。
0×04 PineAP模块
接下来介绍我们本文的主要角色:PineAP,提到PineAP可能有部分同学没有听过它的名字,但熟悉无线安全测试领域的同学肯定听过Karma,基本上PineAP等同于Karma(同样只能对于曾连接过OPEN模式的客户端起作用)。
简单说,PineAP是通过伪造的Probe Response响应包来响应周围的客户端(可能是笔记本、手机、pad等等),让客户端以为周围存在着曾经成功连接过的无线AP,而用来欺骗客户端进行连接我们的Pineapple Nano设备。
(Probe Response对应我们上文提到过的扫描请求数据包Probe Request,对于PineAP或Karma的功能还有疑问的同学,可参考freebuf上的其他几篇相关文章)
下面我们对PineAP在web界面中的几个选项做一个解读。首先,开启PineAP功能需要点击图中“Switch”按钮,使其“Enable”,然后勾选上面三个选项“Allow Associations”、“Log Probes”、“Log Associations”,再勾选下面“Beacon Response”选项,再将Beacon Response Interval的模式选择为“Normal或Aggressive”,最后Save一下即可。
Allow Associations:启用后允许(接受)所有周围客户端的探测或连接请求,通常是配合Filters模块进行过滤时候来用,一般情况下我们都是Allow。
Log Probes、Log Associations:一个是记录周围客户端对Pineapple Nano的请求日志,另一个是客户端与Pineapple Nano的连接日志,这些日志信息记录在Logging模块中,方便我们进行查询。
Beacon Response:启用后即模拟真实的无线AP来响应那些周围的对Pineapple Nano发出Probe Request请求的客户端(采用一对一,而非广播模式)。
Beacon Response Interval:是用来选择Beacon Response响应包的发送速率,一般是Normal或Aggressive,需要注意的是Aggressive模式将消耗更多的cpu资源。
如下图所示,在点击Save后,就启用了PineAP的功能,过一会我们就可以在Logging中查看周围有哪些客户端以及它们曾经都连接过那些AP了。
继续等待一段时间后,便可以看到有两个客户端被我们成功欺骗,连接了上来。
(这里能否成功连接到我们Pineapple Nano设备与周围客户端的具体设备情况和真假AP的信号强度有关,本文在实验过程中也是试了很久)
当这个时候,我们如果启用上文提到过的Landing Page功能恶搞这些客户端一下呢?这些客户端在访问任意网页时候就会看到这样:
甚至在Dashboard面板上,我们可以看到有多少客户端的浏览器访问过我们设计的Landing Page页面。
如果我们在做的深入一点:
类似做成下图这样:
更多具有创造性的页面设计,留给所有感兴趣的同学自己去亲自尝试吧。