导语:Wi-Fi网络中,翻转照片,注入恶意代码到客户端
网络很大程度上建立在信任上。大多数设备不会验证其他设备是否可以识别自己,只要它按照预期运行即可。在中间人攻击的情况下,我们可以通过冒充无线接入点来滥用这种信任,从而允许我们拦截和修改网络数据。这对于私人数据可能是危险的,但也可以用来恶作剧你的朋友。
在这种情况下,我们将拦截和处理局域网内的流量,通常是连接到无线路由器的Wi-Fi网络。请记住,中间人(MitM)攻击仍涉及拦截和修改流量。
步骤1 安装
在本指南中,我们将用来拦截和修改网络流量的主要工具是中间人框架(Man-in-the-Middle Framework),即MITMf。它的目的是在Linux上使用,但可能被编译用于macOS或Windows。这是一个命令行工具,所以我们必须了解一下它是如何工作的。
我们可以在包括Kali Linux和BlackArch在内的几个发行版的仓库中找到它。在使用apt-cache search mitmf搜索确认软件包可用性之后,我们可以使用apt-get来安装MITMf ,如下例所示。
sudo apt-get install mitmf
如果在使用MITMf期间有任何库错误,我们也可能希望安装“mitmflib”软件包。你可以使用类似的命令。
如果我们想从源代码构建MITMf,我们可以通过在终端窗口中运行下面的代码来从GitHub下载一个副本。
如果遇到依赖关系的任何问题,可以通过运行安装脚本来安装MITMf所需的其余工具。为此,我们将初始化和复制子模块,并通过将以下文本复制到终端窗口来安装任何所需的依赖关系。
cd MITMf && git submodule init && git submodule update --recursive pip2 install -r requirements.txt
如果这些命令失败或显示错误,则可能需要单独查找并安装框架的依赖关系。一个全手动安装向导可从开发者的GitHub上。
上面的代码将把MITMf安装在克隆git仓库的目录中。如果使用此方法安装MITMf,则该工具也需要在同一个文件夹中运行。脚本可以通过直接使用python2调用Python 并指定脚本名称来运行,如下所示。
sudo python2 mitmf.py
如果MITMf安装在自己的文件夹中,本教程中的所有命令将需要使用上述命令运行,而不是简单地通过运行mitmf。
步骤2 配置MITMf
安装MITMf后,我们可以通过请求帮助页面来确认其功能。通过输入以下命令来执行此操作。该程序必须以超级用户身份运行,或者以“root”身份登录,或者使用sudo登录(如图所示)。如果帮助页面成功返回,我们可以开始添加我们的使用参数。
sudo mitmf --help
我们要选择的第一个标志是我们的-i标志或网络接口。我们可以使用ifconfig列出我们可用的网络接口,不带参数运行。
如果我们在虚拟机上运行这个工具,我们会看到虚拟机连接的软件适配器桥以及环回适配器。假设虚拟机在成功连接到网络的计算机上,则正在使用的适配器应能够运行MITMf。
在上面的例子中,网络适配器是eth0。在直接连接到网络的机器上,这表示连接是通过以太网适配器。通过无线连接,适配器更可能是wlan0或类似标题的适配器。
在下面主机的示例中,机器具有可用的无线和以太网适配器,分别称为eth0和wlan0。
一旦我们确定了连接到网络的适配器的名称,我们可以将其添加到我们的MITMf参数字符串中,而无需运行它。在这种情况下,我们将使用wlan0。
sudo mitmf -i wlan0
接下来,我们要确定我们的网络网关IP,或者我们网络内路由器的地址。我们可以通过多种方式来实现,其中之一就是使用netstat。
netstat -rn
通过在网关列和适当的接口行下面找到路由器的IP ,我们可以将参数添加到我们的MITMf字符串中。在大多数情况下,路由器地址将类似于192.168.0.1或192.168.1.1。
网关192.168.0.1
最后,如果我们希望在网络上选择一个特定的目标,我们可以在另一个终端窗口中使用arp-scan和nbtscan 扫描网络中的IP地址。
Nbtscan可以使用潜在的网络范围作为参数运行,如下面的示例所示,使用包括192.168.0.1和192.168.0.255之间的每个主机。
nbtscan 192.168.0.1-192.168.0.255
运行arp扫描时,我们可以使用-l标志查看网络设备,如下所示。
arp-scan -l
如果其中一个MAC地址或主机名称与我们的目标设备匹配,我们可以稍后将此IP指定为参数。
步骤3 翻转图像
在这种情况下,我们使用我们希望使用的网络接口(如wlan0)来跟踪-i。我们表示我们希望在字符串的–gateway部分之后指定我们的网关之前使用spoof和arp插件。最后,我们添加 – upsidedownternet使用Upsidedownternet插件。这个插件会将所有图像颠倒过来,然后将其转发给用户。
把它放在一起后,你的字符串应该看起来像下面。
sudo mitmf -i wlan0 --spoof --arp --gateway 192.168.0.1 --upsidedownternet
现在,你可以通过按回车来运行它并观察结果。就我们而言,当图像翻转时,我们将能够看到日志。
但是,在目标设备上,所有可以看到的是负载颠倒的图像。
步骤4 替换图像
就像上面的攻击一样,我们也可以尝试拦截每个图像,并用我们的选择或文件夹中的随机图像替换它。首先,我们要准备一个图像文件夹,因为我们需要指定这个文件夹作为命令的参数。
我们可以直接从Google搜索下载一整套图片,方法是使用“另存页面”并选择“网页,完成”。
虽然使用此方法下载的图像将以文件类型混合,但我们可以将具有匹配扩展名的所有图像移至子目录。从命令行,cd到包含图像的文件夹中,并使用mkdir图像创建目录。
接下来,使用下面的mv命令将所有匹配的图像文件移动到这个子目录中。
mv * .jpg images/
在所有可用的图像都在同一个目录中之后,您可以对它们进行排序,并删除那些我们不希望保留的图像。
现在,我们可以在我们的MITMf命令中使用这个文件夹作为参数。请记住,完整的目录路径是必需的,所以我们需要指定/ home / user / images或文件夹所在的位置,而不仅仅是/ images。
完整的字符串将如下所示。
sudo mitmf -i wlan0 --spoof --arp --gateway 192.168.0.1 --img --img-dir /home/user/images/
我们也可以通过在命令中添加一个“目标”IP地址来指定特定的设备,如下所示。
sudo mitmf -i wlan0 --spoof --arp --gateway 192.168.0.1 --target 192.168.0.2 --img --img-dir /home/user/images/
一旦运行,我们将能够记录和查看MITMf活动。
在客户端,所有的图像将被我们决定应该看到的任何可怕的图像取代。
应该谨慎使用上述实施的攻击,因为这可能会导致互联网变得对任何人类使用而不会被恐惧所吓倒。
第5步 注入HTML和JavaScript
我们可以将代码注入受害者的网页,而不是仅仅操纵他们的图片。为此,我们使用注入插件,结合指定的JavaScript或HTML文件,位于URL或文件路径。在这个例子中,我们将使用下面的–js-file结合使用–inject标志和一个JavaScript文件。
sudo mitmf -i wlan0 --spoof --arp --gateway 192.168.0.1 --inject --js-file /home/user/script.js
在运行这个命令之前,我们需要创建一个JavaScript或HTML文件来注入。如果这不是一个恶作剧,我们就像在这个有效载荷或自定义创建的东西一样容易地携带一个BeEF JavaScript钩子。
为了现在测试JavaScript功能,我们可以使用一个简单的警报。
alert("HACKED");
此代码将打开一个警报窗口,其中包含用户通过网络注入的任何网站上的“黑客”字样。我们可以把这个文件保存为“script.js”或其他文件名,只要在MITMf命令中使用。运行时,该脚本将被注入到目标的web请求中。
虽然这建立了恶作剧或烦扰的功能,个人最喜欢的是注入一个自动播放的音频文件。再次,这将被保存为一个特定的脚本文件,并添加到MITMf命令。
new Audio('URL').play()
在此字符串中,URL可以替换为音频文件(如MP3)的Web位置。该音频文件将在用户打开的每个页面上自动播放,并且几乎不可能追踪其来源。如前所述,这些修改将被记录到控制台。
保护自己免受MitM攻击
像MITM攻击一样有趣,他们提出了一个真正的隐私问题和危险。针对这种多种攻击的最有效的保护是标准的网络安全,并意识到网络上的人员。我们可以使用步骤1中介绍的网络扫描技术来确定网络上的人员,并发现网络上的潜在恶意设备。
MitM攻击从根本上说只有在某个请求的客户端和服务器之间允许有人访问时才可能发生。使用WPA2安全强制实施的强大网络密码可以强制只允许授权用户连接,同样可以保护完全有线网络。
除了本地网络之外,使用端到端加密意味着即使在流量捕获到也不能解密。即使采取这些预防措施,公共网络仍将是不可信的,在外出时请勿使用公开的网络。