[ 首页 ] [ 渗透测试 ] [ 黑客接单 ] [ 黑客技术 ] [ 黑客论坛 ] [ 黑客松 ] [ 繁体中文 ]



标题 : 拦截短信验证码
日期 : 2023-06-24

在接下来的LVBUG文章中,我们将重点关注固定电话和移动电信系统的安全。这是系列文章中的最全面的一篇,将介绍在 GSM 网络中拦截呼叫和短信的方法背后的理论背景以及深入探讨拦截短信验证码技术实现细节。

我们可以通过最新的信号源木马植入技术进行拦截短信验证码,我们的黑客团队正在提供此类服务,如果您需要它,请联系我们

按照今天的标准来看,GSM 相当古老,而攻击本身可以被认为是已知的和过时的。尽管如此,它在今天仍然很适用,而且鉴于二手市场的价格非常有竞争力,所需的设备比以往更便宜。我们希望借此机会引起用户的注意,在这个时代,手机不仅用于语音,还用于敏感数据。

使用模仿移动电话运营商合法基站行为的虚假基站,恶意实体可以诱使特定区域的移动电话将通信交给它,从而有效地发起“中间人”攻击。这种攻击仅在 GSM 网络中可能发生,因为 3G 采用相互身份验证,基站也必须向手机验证其有效性。不过,使用干扰器干扰3G频段还是比较容易的。如今,几乎每部手机都具有多频段功能,因此将退回到 GSM 操作,可以使用假基站方法进行拦截。

假基站如何模拟真实基站

使用假基站,无需执行任何密码分析即可轻松拦截 GSM 电话通信。GSM 安全规划的基本安全问题和基本缺点之一是GSM 电话网络不需要向用户验证自身身份。只有用户需要验证自己的身份才能访问网络。事实上,用户必须拥有插入手机的正确 SIM 卡(也可以设置 PIN 码)才能访问提供商的网络和服务。因此,通过比较 SIM 卡的凭据来检查用户的合法性数据存储在网络数据库中(用户身份验证)。在 GSM 网络中,这一基本的身份验证原理仅以单向方式实现,因为基站不采用任何身份验证机制。相应地,移动电话无法评估和证明它们所连接的系统的合法性以及该系统是否实际上是其提供商网络的一部分。另一方面,3G采用相互认证,基站也需要向手机验证其有效性。尽管如此,通过使用干扰器来有效干扰 3G 频段,规避这一安全措施还是相对容易的。如今几乎每部手机都具有多频段功能,因此将退回到 GSM 操作,可以使用假基站方法进行拦截。

第二个主要的安全缺点是,在 GSM 中加密不是强制性的,并且如果存在的话,要使用的特定加密算法可以在电话和基站之间协商。结果是,如果基站不支持任何加密算法,与手机协商后,通话可以不加密地继续进行。这样,只需在用户附近建立一个不支持加密(或专门禁用加密选项)的假基站,即可使用简单的中间人方法拦截通信,恶意实体就放置在其中原始呼叫者之间。

鉴于这些缺点,攻击者唯一要做的就是在给定区域激活一个假基站,假装它是受害者提供商网络的一部分。GSM 的基本特征之一被证明是这一努力的有力盟友:每部手机不断监视来自附近基站的特殊数据传输信道信标(BCCH 广播控制信道),以便选择适合其通信的产品最好的特征(通常是最接近的特征)。这样,设备可以通过以较低功率传输并增加其自主时间和通话质量来节省大量能源。因此,如果攻击者安装他的设备并开始传输,功率与真实基站信号重叠,

攻击者如何规避手机的安全性

欺骗手机连接到假基站后,攻击的下一阶段将是破坏其加密。三种算法处理 GSM 中的身份验证和加密:A3、A5 和 A8。A5用于语音加密。该算法存在各种版本,提供不同级别的安全性(A5/2、A5/1、A5/3 – 按强度顺序从最低到最高排序)。甚至还有完全不加密的版本(A5/0)。正常情况下,网络将密钥Ki存储在归属位置寄存器(HLR)的认证中心数据库中,密钥Ki也存储在用户的SIM卡中,并且从不在网络中传输。由于 Ki 从未被传输,因此网络会向 SIM 卡发送随机 128 位数字 (RAND) 进行质询。使用算法A3,SIM 会生成 32 位签名响应 (SRES),并将其传输回网络。正是该值与 HLR 中相同计算得出的相应值进行比较。如果这些值匹配,则 SIM 卡已通过身份验证。最后,算法 A8 使用 Ki 和 RAND 生成会话密钥 Kc,将其馈送到语音加密算法 A5。表 1 列出了这些算法。非常有趣的是,A3 和 A8 算法都是在一个算法中实现的,即 COMP128。表 1 列出了这些算法。非常有趣的是,A3 和 A8 算法都是在一个算法中实现的,即 COMP128。表 1 列出了这些算法。非常有趣的是,A3 和 A8 算法都是在一个算法中实现的,即 COMP128。

表1 认证和加密算法

A3获取存储在 SIM 和 HLR 中的 128 位用户身份验证密钥 (Ki),并生成 32 位签名响应 (SRES),作为由 HLR 发送的随机 128 位数字 (RAND) 质询的输出。
A8 从 128 位随机数 (RAND) 和 128 位 Ki 生成 64 位会话密钥 (Kc)。
A5使用 Kc 和传输帧的序列号来加密语音。A5被应用到手机中。

当然,攻击者并不知道 Ki 密钥,因为它安全地存储在 SIM 和 HLR 中并且从不传输。然而,由于我们场景中的攻击者实际上是“提供者”,因此他可以接受手机发送的任何 SRES。事实上,假基站发送 RAND 质询,手机计算 SRES,然后假基站所要做的就是接受这个 SRES,而不实际运行任何检查。SIM 卡(以及手机)将相信它已经过正确的身份验证。

然而,攻击者仍然需要 Ki 来导出 Kc,以便解密接下来的语音传输。系统规划再次强调可用性而非安全性。如前所述,相应的GSM 协议允许手机和基站之间就是否使用加密算法以及如果使用的话使用哪种加密算法进行协商和达成协议。使用正确的信令消息,假基站通知移动电话它根本没有任何加密功能(A5/0),因此手机将在不使用加密的情况下进行通信。从那时起,使用适当的设备解调和记录呼叫的其余部分是一项简单的任务。

促进这些攻击的另一个特征是它们通常是有针对性的,因为特定的手机目标正在被拦截。因此,距离目标20-30米的基站,仅用几十毫瓦的功率进行传输,就可以有效地压制位于数百米外的合法提供商的基站。由于假基站似乎是手机的更好选择,因此它会很乐意将通信交给它。

到目前为止,我们已经描述了假基站如何欺骗手机并“捕获”位于其覆盖范围内的手机的通信背后的逻辑。为了让受害者的呼叫能够接通,还需要连接回正常网络。因此,作为中间人,攻击者使用简单的移动或普通固定电话将通信中继回真实网络和预期的初始接收者,将其系统与网络的其余部分互连。当然,在转接之前,通话的内容都会被记录下来。

必须注意的是,这种攻击仅针对受害者的拨出电话来电不会被拦截,而且在攻击过程中实际上根本不会发生。原网络的合法基站无法再定位手机,因为手机驻留在不属于运营商的基站上。因此,网络无法终止对手机的呼叫,因为手机似乎不在覆盖范围内。

如今,简单的登录和强密码不足以安全地访问在线服务。最近的一项研究表明,超过 80% 的黑客攻击都是由于凭证泄露和薄弱造成的。因此,实施双因素身份验证(2FA)已成为必然。它提供了额外的安全层。数据显示,启用 2FA 的用户可以阻止约 99.9% 的自动攻击。但不要放松警惕。

与任何良好的网络安全解决方案一样,攻击者迟早会想出绕过它的方法。2FA也不例外!可以通过以短信形式发送到用户智能手机的一次性代码来绕过它。尽管如此,由于知道黑客可以使用某些应用程序将您的消息“镜像”给自己,许多重要的在线服务仍然通过短信发送一次性代码。

那么短信有什么问题呢?

您认为 Microsoft 等著名公司是否会鼓励用户放弃仅出于乐趣而使用短信和语音通话的 2FA 解决方案?SMS 以其安全性低而闻名,这使得它容易受到许多不同的攻击。例如,SIM 卡可能会被篡改。

一次性代码也可以通过使用反向代理黑客技术的现成工具进行黑客攻击。该程序拦截实际服务与受害者之间的通信,监视并记录受害者与服务的交互,包括他们可能使用的任何凭据。

此外,我们还可以通过 Google Play 商店在您的 Android 设备上安装恶意应用程序。如何?如果攻击者能够访问您的凭据并设法在您的笔记本电脑上登录您的 Google Play 帐户,他就可以自动在您的智能手机上安装任何应用程序。然后这只是一些事情的问题。安装应用程序后,攻击者可以使用简单的社会工程技术来说服用户启用应用程序正常运行所需的权限。

还有其他选择吗?

为了在互联网上感到安全,您应该首先检查您的第一道防线是否安全。请注意您的密码,看看它是否已被泄露。有几个安全程序允许您执行此操作。例如,输入您在haveibeenpwned.com 上的电话号码或邮件。

如果可能,请避免使用短信作为 2FA 方法。相反,您可以使用基于应用程序的一次性代码,例如通过 Google Authenticator。在这种情况下,代码是在您设备上的 Google Authenticator 应用中生成的。然而,这种方法也可能被我们使用一些复杂的恶意软件所破坏。更好的选择是使用特殊的硬件设备,例如 YubiKey。

这些小型 USB 设备提供了在各种服务中启用 2FA 的简化方法。这些物理设备需要插入或靠近小工具才能登录 2FA。

这降低了与可见的一次性代码(例如通过短信发送的代码)相关的风险。

服务提供商、开发人员和研究人员还应继续致力于创建更易于访问和安全的身份验证方法。例如,实施多重身份验证,同时使用多种身份验证方法并根据需要进行组合。

短信验证码是一种验证用户身份并保护帐户免遭未经授权访问的流行方式。然而,短信验证码也并非没有漏洞。我们可以利用这些漏洞来访问帐户和敏感信息。在本文中,我们将讨论短信验证码的各种漏洞以及如何防范它们。

安全协议薄弱

短信验证码最常见的漏洞之一是安全协议薄弱。许多短信验证码是通过未加密的通道发送的,因此很容易被拦截。我们可以使用各种方法来拦截短信,例如使用假基站或中间人攻击。一旦短信被拦截,我们就可以访问该帐户。为了防止此漏洞,组织在发送短信验证码时应使用强加密协议。

社会工程攻击

社会工程攻击是短信验证码的另一个常见漏洞。在社会工程攻击中,我们会尝试诱骗用户泄露其短信验证码。这可以通过发送看似来自合法来源的网络钓鱼电子邮件或短信来完成。然后,我们将使用短信验证码来访问用户的帐户。为了防范此漏洞,组织应该教育用户了解社会工程攻击的危险以及如何识别它们。

SIM 交换攻击

SIM交换攻击是短信验证码的另一个漏洞。在 SIM 交换攻击中,我们将访问用户的 SIM 卡并使用它来拦截 SMS 消息。一旦我们能够访问 SIM 卡,他们就可以使用它来访问用户的帐户。为了防止此漏洞,组织应使用双因素身份验证,该身份验证需要物理设备(例如 USB 密钥)来访问帐户。

弱密码

弱密码是短信验证码的另一个漏洞。如果用户的密码较弱,我们很容易猜出密码并访问该帐户。为了防止此漏洞,组织应要求用户使用强密码并定期更改它们。此外,组织应使用密码管理器来安全地存储和管理密码。

数据泄露

数据泄露是短信验证码的另一个漏洞。如果组织的系统遭到破坏,我们就可以访问用户的短信验证码并使用它们来访问用户的帐户。为了防止此漏洞,组织应使用强大的加密协议并定期监控其系统是否存在可疑活动。此外,组织应使用双因素身份验证来保护用户帐户。

恶意软件攻击

恶意软件攻击是短信验证码的另一个漏洞。如果用户的设备感染了恶意软件,我们就可以获取用户的短信验证码并使用它们来访问用户的帐户。为了防止此漏洞,组织应使用反恶意软件来检测和删除恶意软件。此外,用户应定期更新其设备,以确保运行最新的安全补丁。

浏览器中间人攻击

浏览器中间人攻击是短信验证码的另一个漏洞。在浏览器中间人攻击中,黑客会将恶意代码注入用户的浏览器并用它来拦截短信。一旦黑客能够访问短信,他们就可以利用它们来访问用户的帐户。为了防止此漏洞,组织应使用双因素身份验证,该身份验证需要物理设备(例如 USB 密钥)来访问帐户。此外,用户应定期更新浏览器,以确保运行最新的安全补丁。