前言
这个存储库包含将Kali Linux设备转换成路由器的代码。Kali Linux变成路由器后可以实现两个功能:
1.记录所有与wireshark的流量,Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。
2. 将HTTP和HTTPS流量发送至一个拦截代理,例如BurpSuite等,使其能在另一台设备上运行。
本文,我会假设你拥有一个以太局域网USB适配器和一个无线B/G/N USB适配器,Linux支持的任何卡片(USB或内置的)都可以使用。
经常从事网络安全分析的人往往会从嵌入式设备、移动应用程序或windows应用程序中嗅探或拦截流量。对于具有代理意识的设备或应用程序,拦截流量是很简单的:通过配置应用程序或设备来使用代理,例如BurpSuite。对于非代理的设备或应用程序,拦截流量更具挑战性。
在本文中,我将描述了如何设置Kali Linux来嗅探TCP/UDP传输的任何设备、应用程序或应用程序,通过将Kali配置为一个拦截路由器,可以将特定的流量转发到另一台设备上的透明代理,例如将HTTP(S)流量转发到BurpSuite。拦截路由器包括许多复杂的场景,其中许多设备和应用程序会出现彼此交互的情况,例如与web服务交互的嵌入式设备,但也可以通过移动设备和windows应用程序进行配置。为了使实用性最大化,我会在Raspberry Pi上实现上面描述的设置。
安装
我会将Kali Linux配置为具有代理类型的路由器,连接到这台路由器的客户端(例如嵌入式设备和手机App)都可以正常进行网络通信,但是有些数据包(例如HTTP和HTTPS包)会被我的Kali Linux设备拦截并被重定向到代理服务器(例如BurpSuite)。所有通过我的路由器的流量都是用Wireshark监控的。我的Kali Linux设备和BurpSuite都是以透明代理的形式运行的,因为客户根本不知道代理的存在。这种设置的主要优点是它将客户端的配置降低到最小值,具体设置如下图所示。
在配置我的Kali Linux设备之前,我需要配置VMWare和我的网络接口,步骤如下:
1. 在VMWare中运行Kali Linux,并将网络改为桥接模式,这样可以让Kali Linux直接链接到网络之中,而被监控的设备(应用程序或手机)同样可以正常连接至网络。
2.我会连接两个适配器(以太网和WiFi),并给Kali提供USB连接。如下图所示,我的适配器是Ethernet LAN Network Adapter ASIX AX88179和Atheros UB91C USB无线适配器。对于WiFi,我可以使用任何兼容Linux的适配器,只要它支持混杂模式(Promiscuous mode)即可。
译者注:混杂模式(Promiscuous mode)就是将网卡接收到所有的数据全部发送给系统。
下面,我会详细阐述如何将Kali Linux设备配置为路由器,以及如何通过将其连接到Kali Linux路由器来监控设备和应用程序。
将Kali Linux配置为路由器
我的Kali Linux设备将通过USB网络接口(以太网和WiFi)连接到自己的网络连接,反之亦然。创建路由器的四个步骤:
1.设置以太网层,使有线客户端可以连接到Kali的接口。
2.设置wi – fi数据链路层,这样无线客户端可以连接到Kali的“软件访问点(software access point)”,并从Kali发送或接收IP数据包。我使用了hostapd应用来完成这个任务。通过桥连接接口的访问点,设备就连接到同一网络。这样我就可以通过以太网连接一个移动应用和一个Windows应用程序,监控嵌入式设备。
3.在我的Kali Linux设备上设置网络配置,这样它就可以正确地将IP数据包从它自己的网络连接转发到它的连接客户端。
4.添加诸如DNS和DHCP这样的网络服务,这样客户就可以分配IP地址,并且可以解析域名。我可以使用DNS网络服务将任何域名重定向到我控制下的设备。
要注意的是,在执行上述步骤之前,我需要找出适配器出现的接口。为此,我会使用命令ifconfig查看插入USB适配器之前和之后的设备状态。
$ ifconfig -a
我的以太网适配器通常会显示为eth1,而我的WiFi适配器通常会显示为wlan0。(eth0是由VMWare配置的接口,可以让Kali访问网络)。
现在需要配置network-manager服务,告诉该服务我会将适配器的MAC地址添加到/etc/NetworkManager/NetworkManager.conf文件的unmanaged-devices参数之中,并接管已添加的接口。
[keyfile]
unmanaged-devices=mac:d8:eb:97:b6:ce:12;mac:56:6b:a2:90:c4:b9
重新启动网络服务,使设备进入“无管理”状态。
$ /etc/init.d/networking restart
以太网配置
在创建我的监控网络之前,我选择一个合适的网络地址和子网掩码。选择一个与Kali所在网络IP范围(eth0)不同的地址空间,以此来确保受监控设备的IP地址不会跟我们的监控网络发生冲突。在我的配置环境中,我选择的是172.16.0.0/12。因为我的主网络接口(eth0)通常只接10.0.0.0/8(公司的)或192.168.0 / 16(家庭的)网络地址。
由于我需要让无线网和有线网处于同一地址空间中,所以我会选择使用bridge-utils工具在这两者之