2.6 高级可视化技术

如前所述,Kismet新版本输出“.pcap”格式的文件,该文件是按一种名叫“数据包通存信息”(Per-Packet Information,PPI)的数据格式进行保存的。这种带标签的格式对于无线信号地理测量非常有用,因为这种格式可以以时间作为参考点,同时将许多参数信息一起保存起来。这些信息有数据包在捕获时的地理位置信息、所用信道、网络名称等信息,在一些特殊情况下,还包括天线类型、当前的移动方向等参数。

例如,参考图2-28,这是Wireshark软件解码后查到的GPS信息截图,该信息取自于以PPI格式保存到“.pcap”文件,该文件是Kismet进行测量的时候生成的。

图2-28 Wireshark软件解码后查到的GPS信息截图

这种格式的好处之一,就是我们可以使用“Wireshark显示过滤器”(Wireshark Display Filter)根据数据采集所在的位置进行数据过滤。例如,要显示一个特定的区域内(假设范围位于北纬38.08到38.09,西经77.00到77.01之间),包含“WPA握手”的所有数据包,我们可以使用以下“Wireshark显示过滤器”:

2.6.1 可视化PPI标签Kismet数据

使用这种PPI标记数据格式的另一个好处是,由于一些可视化工具支持这一格式,借助于这些第三方可视化工具,可以直接对“.pcap”格式文件进行分析,而不需要考虑这些文件是由哪个测量工具生成的。例如,有一款符合PPI格式参考标准的可视化器(visualizer),名为ppi-viz,该软件就可以将新版本Kismet生成“.pcap”格式文件转成KML格式文件(见图2-29),其命令格式如下:

在Google Earth中,我们载入前面生成的KML文件,随后,就可以在Google Earth中看到如图2-30的效果。每一个扫描到的无线网络都显示在左边的“地址”(Places)中,在这里选中一个无线网络,在右边的主窗口中就会显示出该网络的条形图,在信号采集的时候,在这一地点的信号越强,表示数据包的线越亮,其长度也越长。为了便于描述,在下面的例子中,我们选中了一个叫作“Madrose Patio.”的网络来说明,所有的测量工具的功能的测量也都在这个位置完成。为了能让大家更清楚地了解我们的测试范围,我在图上手工绘制了一个三维的多边形,以此标注“Madrose Patio.”网络的位置和范围。

图2-29 利用ppi-viz进行文件转换

看着这个图像,你可以看到信号接收强度最大值是(-63dBm [1] ),其测量点位于“Madrose Patio.”网络的右边(与预期的一样)。但这么多值里,哪个点是最有用的呢?其实,我们现在最关心的是在多远的距离时,我们还能看到这个网络。这是所有信息中关键的点。这也是前面费尽心机,加上GPS信息,采用PPI格式的最大动机。

在主窗口中,右边的垂直条形图可以让我们从街对面知道信号的强度,根据经验,使用-75dBm或更好的信号,无疑是访问这个网络最合适的范围。通过借助于KML文件在Google Earth上的分析,现在我们知道了哪些地点适合作为渗透测试的地点,哪些地点不适合。借助于这些标准可视化工具,在各点之间对比的效果,如图2-31一样。

图2-30 在Google Earth中载入KML文件

图2-31 各点之间对比效果

通过这种方式,你也可以看到由Vistumbler和KisMAC两个软件分别进行扫描,然后借助于GISKismet软件对扫描结果转换后同时输出的效果图。虽然这两个工具对网络进行了定位,并且做得都很出色,但无论是哪种方式都无法提出足够的说服力来告诉你,距网络有多远时你可以和网络进行通信,通过比较,再回到使用了PPI格式,在PPI格式中嵌入了GPS信息,那么两种图的差距就一目了然了。再看信号强度,在上面这张图中,在你走过的每一个点上,你都无法告诉别人,这个网络在当前位置是否可以看到,同时你也无法确定当前这一点的信号强度。

2.6.2 基于PPI的三角架机器人

最后,PPI规范允许用户的应用程序将方向和位置,连同所截获的数据包一起打包编码,然后将这些信号一起放到一个“.pcap”文件中的向量标签(vector tag)中。图2-32显示了一个向量标签通过Wireshark解码后正确的填充格式 [2]

图2-32 向量标签通过Wireshark解码后的界面截图

不幸地是,Kismet并不知道目前你正在使用的是什么类型的天线,在朝什么方向移动。为了使这一功能生效,作者创造了一个无线扫描机器人,名叫“Servo-Bot”,机器人的照片如图2-33所示。这个机器人与GPS接口,通过软件控制云台,无线网卡运行在“监测模式”。利用这些信息,软件负责创建“.pcap”文件,通过控制云台的转动,可以控制天线的方向,而读取云台的数值,就可能知道当前天线的方向。

图2-33 Servo-Bot机器人的实物图

在图2-33中,云台位于天线和三脚架之间。在一个悠闲的下午,在邻区公园的边上,作者带着这个奇怪的玩意儿走上街头。如图2-34所示,servo_scanl和servo_scan2明确表明机器人Servo-Bot两次调查所放的位置。

图2-34 Servo-Bot两次位置显示截图

在基于云台机器人Servo-Bot方式下数据包的捕获完成以后,我们通过前面提到过的“可视化器”工具ppi-viz,将Kismet捕获的数据包转换为PPI格式。

最后,如果我们将由云台机器人Servo-Bot读取的数据标示在图上,我们可以得到如图2-35所示的输出效果。长一些的亮线,代表更强的信号(不过,这一特性仅对Kismet有效)。为了描述清楚,我们在图上再手工加上一些相交的线。

最后,如图2-36所示,我们可以使用Google Earth以街景的视角看这些扫描数据,这提供了一个更加真实的视野,一些明亮的方向线指向网络,垂直地面的线越高,那么在这个点接收到的信号越强。

网站

有关云台机器人Servo-bot更多的附加信息可以从本书的配套网站上下载。网址是http://www.hackingexposedwireless.com

[1] 单纯从图中并不能看到这个数值,要看数值,需要鼠标单击左边“地址”列表中网络名称左边的“+”加号,就可以从展开的该网络的下一级列表中看到数值。——译者注

[2] 图上用户区中,上半部分是数据包的列表,图中列出前4个;下半部分是被选中的第一个包的详细内容,从中可以看到PPI协议依次为“版本号、标志位、头部长度,数据连接类型DLT”,然后就是GPS位置、方向、天线等信息。──译者注