6.4 对无线目标网络攻击
nmcap进程创建的这个数据包捕获文件保存了大量数据,这些数据足以攻击WEP认证,还原“服务集标识”为“VOIP”的网络的密钥。然而,Microsoft公司的NetMon程序,在保存这些数据包捕获文件时,是以自己定义的格式保存的,不是以libpcap格式进行保存。而libpcap格式是像Aircrack-ng这样的工具所需要的格式,虽然新版的Wireshark也可以解析NetMon程序的数据包格式了,但是Wireshark也只是能查看这种格式,而不能将其转换或导出为libpcap格式的文件。幸运的是,我们可以通过nm21p工具软件将这种格式的文件转换为libpcap格式的文件。
⚡ 用nm2lp转换数据包格式
nm2lp工具的设计目的是将Microsoft公司的NetMon程序所捕获到的无线数据包专有格式转换为嗅探界事实上的工业标准libpcap格式,该格式可用来做通用的libpcap分析,并且可以被Aircrack-ng、Ettercap和Wireshark等软件使用来作为攻击工具。nm2lp程序已被移植性重写,现在可以运行在Linux操作系统上,用于取代运行在Windows操作系统上的1.0版本。nm21p程序目前需要libwiretap库和libpcap库的支持,这两个库文件都可以在Ubuntu系统上,通过apt-get命令下载并安装。命令显示如下。
安装nm2lp程序的依赖库后,就可以下载nm21p.tgz的源代码和“make”命令创建这个工具软件了。然后通过运行“sudo make install”命令安装文件,如下所示:
nm21p命令的用法非常简单,我们指定NetMon程序所捕获的数据包所在文件的文件名,再指定一个输出libpcap格式的数据包捕获文件名即可。
现在,这个voip.pcap文件已经是libpcap格式的数据包捕获文件了,下面我们可以通过aircrack-ng程序来还原其中的WEP密钥。
拿到了WEP密钥,我们就可以启动解密进程检查捕获到的数据包了。首先,我们使用airdecap-ng工具,将加密的libpcap数据包的捕获文件转换到一个解密文件的libpcap文件中。
输出文件voip-dec.pcap,是由airdecap-ng程序创建,其格式是libpcap格式,所以看上去和通过以太网上捕获的数据格式相似。这种格式可以和很多不同的主流分析工具格式兼容,包括Massimiliano Montoro设计的Cain程序,该程序的下载地址为http://www.oxid.it 。将这个解密文件复制到一个Windows操作系统里,我们就可以快速方便地进行流量识别,当然识别的目的是为了获得明文密码或其他敏感数据,显示如图6-8所示。在这个例子中,Cain分析了解密的数据,并显示出这是两次“IP电话”(Voice over IP,VoIP)的语音对话。在Cain软件中,右击选中的“IP电话”列表中的项,就可以选择和播放所录的音频对话文件。
在那个“服务集标识”为“VOIP”的无线网络上,由于我们知道它使用的是WEP密钥的背景知识,所以我们可以在“被占领主机”上配置,让它的无线网线接口也连接到这个网络上。这对于我们后面在“被占领主机”所在的网络中继续其他工作是很有用的;否则,我们就不能从“被占领主机”的以太网连接访问这个网络。对于这部分的攻击,我们需要访问一个有Windows操作系统的主机。
⊗ 注意
在这个例子中,我们研究了如何用命令行从“被占领主机”的系统中连接到无线网络,所使用的方法就是组合使用了攻击者的Windows主机和“被占领主机”的Windows主机。在整个运行过程中,将“图形用户界面”在不能关闭的前提下,采用最小化的方式是一个不错的选择,因为在“被占领主机”上,图形界面最小化可以在任何时候躲避被检测到的可能。不过,即使如此,你还可以用其他的办法,如借助于以前我们创建的VNC连接,通过使用反向的VNC连接,在“被占领主机”上单独完成所有这些步骤。
在攻击者的主机上,如果使用的是Windows 8或更新版本操作系统,那么按下WinKey+I组合键就可以打开Windows桌面的“魅力边栏”(charm sidebar),然后单击上面的“无线网络图标”(wireless network icon)。下面选择的不是从可用的网络图标中选择一个,而是选择“其他网络”(Other Network)图标。在“手动连接到无线网络”(Manually Connect To A Wireless Network)的对话框中输入设置,其内容是“被占领主机”附近的目标Wi-Fi网络,主要包括一些安全参数。取消“自动连接到网络”的选项。完成该向导之后,单击“完成”(Finish)按钮关闭“手动连接到无线网络”(Manually Connect To A Wireless Network)的对话框。
一旦当前用户的“个人定制”文件被添加到攻击者的主机中,我们就可以以XML配置文件的格式导出上述配置,并将其传送到“被占领主机”的系统中。下面的命令就是在攻击者的系统中,导出新的网络配置文件的步骤:
XML文件创建成功,我们就可以如上所述地把它复制到负责攻击的服务器上。下一步,我们就可以返回到Meterpreter的shell中,上传上面刚刚生成并改为voip.xml名称的XML文件,复制到“被占领主机”上。
仅仅是上传复制voip.xml文件还不够,要使文件的配置生效,还要在“被占领主机”上完成导入操作。现在,我们可以在“被占领主机”上运行一个cmd.exe shell,并在命令提示符中运行netsh命令。在这里,要做的是导入XML文件中的配置信息。
因为我们创建的“个人定制”文件中,有一个选项是不要“自动连接到网络”,所以下面需要手工连接到“VOIP”网络上。注意,有许多无线适配器在取消“监测模式”,恢复为“托管模式”的时候,需要重启一下无线网卡适配器才能生效。在图形用户界面,这种“重启”操作其实是由“禁用”(disable)和“恢复”(enable)两步完成的,在命令行的界面中,不但有这样的命令,而且其原理和方式也是一样的。我们可以在命令行中,按如下的命令格式和序列完成这一操作。
在“被占领主机”上,我们现在有了访问“服务集标识”为“VOIP”的无线网络的权限,即我们可以回到Meterpreter的接口上,开始浏览这个内部网络。如果想快速访问,并在访问中识别出可用的系统和端口,有一个很实用的工具可以胜任,这个工具的名字叫作MSFMap,这是Meterprecer程序自带的一个模块。
MSFMap是Meterpreter程序的一个可加载模块,是由Spencer McIntyre和SecureState LLC共同编写。该模块的下载地址是http://code.google.com/p/msfmap。通过使用MSFMap,我们可以使用“被占领主机”上的TCP栈,可以通过其Windows系统进行内部网络的扫描。这种方法比传统方法快,因为这种方法使用的是“被占领主机”本地的TCP协议栈进行扫描的,而不是在传统方式下,在攻击者的系统上借助于Meterpreter的隧道技术所进行的远端主机方式下的扫描。
安装MSFMap的步骤很简单:下载源代码,运行安装脚本,设置将其作为模块进行调用的主程序Metasploit的位置即可。整个步骤如下所示:
返回到Meterpreter会话上,通过“load msfmap”命令,Meterpreter程序就可以加载MSFMap模块。如果在加载的时候没有带参数,那么MSFMap模块并不会真正执行,而是将其所有的选项参数以列表的方式全列出来。
在“被占领主机”上,通过Windows操作系统使用MSFMap模块,我们可以快速扫描大量主机的一些常用端口。
⊗ 注意
在上面的例子中,由MSFMap模块所进行的“端口扫描”(port scan)中,考虑到显示结果中空间的限制,大多数扫描结果都没有列上去。
从MSFMap结果中,我们看到几个系统可以作为进一步分析优选的目标。Meterpreter程序也可以提供网络的“绕轴旋转攻击”(pivoting attack),也就是在攻击者的电脑上,通过端口重定向实施对远程目标系统的攻击。例如,如果攻击者想要通过MSFMap模块攻击IP地址为10.0.0.2的“文件传输协议”(File Transfer Protocol,FTP)服务器,我们就可以设置本地攻击程序的攻击端口为FTP常用的21端口,并设置重定向本地主机,其命令格式如下:
portfwd命令可以在攻击主机的Metasploit系统中,打开一个新的端口,端口号是2121。随后Metasploit程序就会监听这个端口,任何与攻击者本机建立连接并发向2121端口的数据都将被Meterpreter的会话进行重定向。然后通过Windows的无线网卡,转发到上面IP地址为10.0.0.2的主机上21号端口,完成对这个FTP服务器的攻击。
通过上面的访问方式,我们可以完成对远程主机的侦察、分析和入侵,其示意图如图6-9所示。
✔ 无线网络的深度防御
在这一章中,我们通过一步步分解最终完成了一个完整的攻击案例。首先是针对我们虚构的“羹美食品”餐馆无线环境实施入侵,并占领其中一个客户端系统,然后借助这个客户端系统对其内部网络的访问,我们又破解了更多的内部系统。针对这种风格攻击的应对措施,也同许多我们已经贯穿全书描述的防御机制一样,对这些防御机制的深入的应用可以阻止来自无线客户端的攻击方的进一步攻击,从而避免危及企业内部全部网络的威胁,避免网络被扫描和内部主机被对方进行目标的列举,主要的应对措施有:
·禁止开放的网络。 允许外界用户访问的开放网络(open network),比如一些免费的“热点”环境,这是将攻击者“引狼入室”的请柬。攻击者可以利用软件升级机制(如使用本章中所描述的技术),或其他存在弱点但却非常主流的协议(如DNS协议)进行攻击。其抵御方式就是:通过在用户工作站上的管理控制可以中止开放的网络,继而限制客户端暴露给攻击者。
·上层加密。 如果你的外界用户必须要访问开放的网络,即必须为对方提供开放式的访问的话,则可以考虑要求上层加密(upper-layer encryption)的服务来强制安全政策,例如,如在支持“Internet协议安全性”(IPSec)的“开放标准的框架结构”上使用的VPN技术,就可以很好地防止攻击者的侦听,防止攻击者操纵客户端的活动。
·禁止未经过滤的“出接口”数据包。 在本章中,攻击者在成功占领一个客户端系统后,利用Meterpreter工具集中的Metasploit程序,使用了从“被占领主机”到攻击者系统之间所架起的Metasploit VNC模块隧道技术,实现了获得对内部整个网络的访问机制。如果在公司的网络中,通过防火墙、强制代理服务器系统来禁用未经过滤的“出接口”数据包,那么从整个网络来看,就可以限制攻击者由外部向内部网络的访问,从而缓解随后网络访问机制所带来的风险。
本书评论