就像在桶中射击 Phish 一样绕过链接爬虫

admin 2024年9月10日13:02:13评论21 views字数 5507阅读18分21秒阅读模式

您刚刚说服了目标用户点击您的链接。这样一来,您就完成了社会工程学的关键一步:

说服某人让你进门!

现在,我们还有一些技术控制措施可能会妨碍我们捕捞。首先是链接爬虫。

什么是链接爬虫?

链接爬虫或 “受保护的链接” 是目前最烦人的电子邮件控件之一。我并不讨厌它们,因为它们在阻止网络钓鱼方面有效(或无效)。我讨厌它们,因为它们对最终用户来说是一个真正的痛苦,而且现在许多安全电子邮件网关 (SEG) 都将它们用作安全功能。以下是他们的工作以及他们为什么糟糕:

链接爬虫的作用

他们将电子邮件中的所有链接替换为指向他们自己的 Web 服务器的链接,并使用一些唯一的 ID 来查找原始链接。然后,当用户点击电子邮件中的链接时,他们首先会被送到炼狱......哎呀,我是说“受保护链接”网站。SEG 的 Web 服务器查找原始链接,然后发送一个 Web 爬虫来查看链接网页的内容。如果它看起来太网络钓鱼,用户将被阻止访问链接的 URL。如果爬虫认为该页面是良性的,它会将用户重定向到原始链接的 URL。

为什么链接爬虫很烂

首先,您是否曾经不得不重置某些您很少使用的 Web 服务的密码,并且他们向您发送了一次性使用的链接以启动重置过程?如果您的安全电子邮件网关 (SEG) 将该链接替换为“安全链接”,并且必须在允许您访问之前检查出真正的链接,那么你猜怎么着?您将永远无法重置密码,因为您的 SEG 不断杀死您的一次性链接!我知道一些链接爬虫以相反的顺序工作(即在用户访问后立即爬取链接)来解决这个问题,但它们中的大多数先点击,然后再将用户发送到一个死的一次性 URL。

其次,这些链接替换还使最终用户实际上不知道链接真正会把他们送到哪里。将鼠标悬停在电子邮件中的链接将始终向他们显示 SEG 链接爬取服务的 URL,因此用户无法检测到被屏蔽的链接。

第三,我认为这些“安全功能”实际上只是实施它们的 SEG 公开的数据抓取。他们更希望收集有价值的用户行为遥测数据,而不是真正关心保护他们免受网络钓鱼活动的侵害。我想知道有多少 SEG 将这些数据卖给了魔鬼......哎呀,我是说“营销公司”。在我看来,这一切都非常“老大哥”。

最后,这种控制甚至不难绕过。我认为如果链接爬虫在阻止网络钓鱼攻击方面非常有效,那么我会更加宽容并能够接受它们的缺点作为必要的邪恶。然而,事实并非如此。让我们继续讨论绕过它们的方法!

解析器旁路

与绕过链接过滤器保护类似,如果 SEG 的链接解析器看不到我们的链接,那么它就无法用安全链接替换它。通过专注于这种策略,我们有时可以以 1 个的价格获得 2 个 BYPASS。我们已经在 喂养网络钓鱼 中介绍了这一点,因此我将跳过此处的详细信息。

完全自动化的公共图灵测试,用于区分计算机和人类 (CAPTCHA)

链接爬虫只是机器人。因此,要击败链接爬虫,我们需要与机器人开战!几十年来,我们聪明的裤子人类一直使用 CAPTCHA 作为机器人保镖,将它们踢出我们的网站。我们也可以使用相同的方法来保护我们的网络钓鱼页面免受爬虫的侵害。因为 SEG 只想在我们的网站内容中达到峰值,以确定它是否良性,所以他们没有真正的动机来使用任何类型的 CAPTCHA 求解器逻辑。对我们来说,这意味着我们的 CAPTCHA 甚至不必像保护真实网站那样复杂或安全。我个人认为这种方法已经被垃圾邮件发送者过度使用和滥用,以至于许多用户被他们勾勒出来,但它仍然是许多 SEG 的有效链接爬虫绕过,并且是一个非常快速和明显的选择。

趣闻(想想看)

由于该测试由计算机管理,因此与由人类管理的标准图灵测试相反,CAPTCHA 有时被描述为反向图灵测试。— 维基百科

加入重定向军备竞赛

警告: 我实际上并不推荐这个,但它有效,因此我们必须讨论它。我会尽量保持简短。

问:如果你的任务是实现一个链接检查器,你应该如何处理像 HTTP 302 响应这样的重定向?

一个:它们很常见,因此您可能应该遵循重定向。

问:如果它再次重定向怎么办?这次通过 JavaScript 而不是 HTTP 响应代码。你应该遵循它吗?

一个:是的,这也很常见,所以也许我们应该遵循它。

问:但有多少次呢?

A: ???

这由您作为软件工程师来决定。如果您指定深度为 3,并且您的脚本被重定向 3 次,它将停止跟踪重定向,只评估当前页面上的内容。网络钓鱼者将重定向 4 次并击败您的机器人。你要提高深度,然后他们要提高重定向,等等,等等,令人作呕。

欢迎来到重定向军备竞赛。

我一直在“野外”看到这个,所以它必须作为一个旁路,但在我看来,这很烦人,很陈词滥调,而且有点愚蠢。所以。。。

请不要加入重定向军备竞赛!!

警报!

链接爬虫机器人往往有两种不同的风格:

  1. 内容抓取脚本

  2. 自动化浏览器脚本

最容易实现,因此也是最常见的链接爬虫类型只是一个简单的内容抓取脚本。您可以将这些视为使用 cURL 等工具提取 URL 内容并检查其是否存在网络钓鱼语言的脚本版本。这些脚本还可能在页面上查找链接,并将每个链接抓取到一定深度。

因为爬虫只是读取内容,所以它们实际上不会像 Web 浏览器那样执行任何 JavaScript。我们可以利用这一点,使用 JavaScript 检测需要用户交互的操作,然后将它们转发到真正的网络钓鱼内容。一种非常简单的方法是在 “window.location” 更改之前包含一个 “alert()” 语句。如果我们混淆了 “window.location” 更改,那么 scraper 将看不到任何需要审查的额外内容。当人类用户点击我们的链接,并在浏览器中查看我们的页面时,他们会收到一条简单的警报消息,他们必须接受,然后将被转发到真正的网络钓鱼页面。提醒的内容无关紧要,因此我们可以使用它来发挥我们的借口措辞(例如,“下载您的文档。单击 Okay 继续。

因为使用 JavaScript 击败内容爬虫太容易了,所以一些 SEG 已经遇到了编写自动浏览器脚本来爬取链接的麻烦。虽然自动化浏览器可以执行 JavaScript,但模拟人类交互仍然很困难。同样,如果我们在页面上使用 “alert()” 函数,JavaScript 执行将被阻止,直到用户接受消息。在某些情况下,如果编写脚本的软件工程师没有考虑警报框,那么当警报要求用户输入时,他们的自动浏览器实例将卡在页面上。如果软件工程师确实考虑了警报,那么他们可能会偶然发现如下的常见解决方案:

browser.target_page.on('dialog', async dialog => {
await dialog.accept()
})

我自己在为 OSINT 编写网络爬虫时就使用了这种技术来接受警报。

此解决方案的问题在于,当对话框(警报)出现时,它会立即接受该对话框。真人至少需要一两秒钟才能看到警报、阅读警报、将鼠标移动到接受按钮并单击。如果我们在警报框接受时设置计时器,我们可以很容易地检测到机器人何时接受警报并将其发送到其他位置。很少有负责实现这些链接爬虫脚本的软件工程师会提前考虑这么多步骤,因此即使是像这样的简单绕过也往往效果非常好。

计算点击次数

如果我们记住,大多数链接爬虫在将用户引导至同一 URL 之前访问链接 URL,我们通常可以通过简单地在第一次点击时显示一组不同的内容来击败它们。链接爬虫看到一些良性的东西并允许用户访问,这时我们就会换掉内容。可以直接在 Apache 中使用 'mod_security' 功能或在 Nginx 中使用 'map' 功能来实现这一点。尽管在大多数情况下,使用像 Satellite 这样的工具使用“times_served”功能为您执行此操作可能是最简单的:

https://github.com/t94j0/satellite/wiki/Route-Configuration

我倾向于编写自己的基本 Web 服务器来托管网络钓鱼网站,这样我就可以更精细地控制要跟踪和记录的数据。然后,在内存中保留字典以跟踪点击次数,或者添加 SQLite 数据库(如果您需要重新启动服务器,则添加 SQLite 数据库)非常简单。

浏览器指纹识别

一种检测机器人的侵入性和烦人的方法是使用浏览器指纹识别。这里的想法是使用 JavaScript 的功能来确定访问您的网页的浏览器类型。如今,浏览器指纹识别对于在没有 cookie 的情况下跟踪用户和防御机器人来说都非常普遍。许多自动化浏览器框架(如 Selenium 和 Puppeteer)具有易于检测的默认行为。例如,大多数无头浏览器的 'outerHeight' 和 'outerWidth' 属性设置为零。还有许多其他众所周知的指标表明您的网站正在被机器人查看。如果您想开始修补,这里有一个不错的工具:

https://github.com/infosimples/detect-headless

另一个更广泛的开源项目是 FingerprintJS,该项目专为用户跟踪而设计,但也可用于这种类型的机器人保护:

https://github.com/fingerprintjs/fingerprintjs

大多数实施链接爬虫的 SEG 在隐藏他们的机器人时并没有真正被激励保持在最前沿。因此,在绝大多数情况下,我们将能够仅使用开源工具来阻止 SEG 链接爬虫。但是,也有一些非常令人惊叹的付费选项专门用于机器人保护,并且始终处于前沿。例如,Dylan Evans 写了一篇很棒的博客和一些工具,演示了如何使用 Cloudflare Turnstile 阻止机器人:

https://fin3ss3g0d.net/index.php/2024/04/08/evilgophishs-approach-to-advanced-bot-detection-with-cloudflare-turnstile/

我想几乎任何像样的付费解决方案都会挫败您可能遇到的任何 SEG 链接爬虫。这有点像带枪去打刀战。

就像在桶中射击 Phish 一样绕过链接爬虫

ASN 锁定

自治系统编号 (ASN) 是属于实体或域的 IP 范围组。实际上,每个公有 IP 地址都属于一个 ASN,您可以查找拥有每个 ASN 的组织。由于大多数 SEG 使用 SAAS 模型运行,因此当他们的链接爬虫访问您的网站时,流量将来自 SEG 拥有的 ASN、他们的互联网服务提供商或他们用来运行其软件的云计算服务。在任何情况下,特定 SEG 的 ASN 都可能是一致的,并且不会与目标用户的 IP 关联的 ASN 相同。如果您在网络钓鱼网站上收集 IP 和 ASN 数据,则可以构建一个已知不良 ASN 列表,您应该阻止这些 ASN 查看您的真实内容。这可以帮助您向 SEG 链接爬虫显示良性内容,还有助于保护您免受可能将您的域列入阻止列表的 Web 爬虫的侵害。

打电话给他们

再一次,因为链接爬虫是一个电子邮件控件,我们可以通过简单地不使用电子邮件作为社会工程的消息传输来绕过它们。使用欺骗性号码拨打电话很容易,而且通常非常有效。

Aggressive Link Crawler 的故事

一些 SEG 实际上会抓取电子邮件中的所有链接,无论它们是否被用户点击。我第一次遇到一个时,我以为我正在进行有史以来最成功的网络钓鱼活动,直到我意识到我的点击率略低于 100%(有些邮件一定被退回了什么)。

幸运的是,此时我已经为 Phishmonger 添加了一个快速的 IP 地址查找功能,我能够看到 SEG 正在从世界各地的 IP 产生点击。他们所做的是使用 IP 轮换服务来使自己更难被阻止和/或停止。

同样幸运的是,我的客户只在美国的一个州开展业务。我能够在用作 Web 服务器的 HumbleChameleon 上放置一个 GeoIP 过滤器,并将虚假点击重定向到其他地方。

在这种情况下,这种解决方法效果很好,但不适用于全球业务范围更广的大公司。我很幸运。因此,我认为这种类型的链接爬虫更好的通用绕过是跟踪发送电子邮件与用户点击之间的时间。这些激进的链接爬虫试图在用户有机会看到和点击它们之前审查电子邮件中的链接,因此他们几乎会在收到每封电子邮件后立即(几秒钟到几分钟内)访问您的链接。他们无法在不严重干扰传入电子邮件流的情况下 “抖动” 他们的点击时间。因此,我们可以将发送电子邮件后 2-3 分钟内发生的任何点击视为高度可疑,并拒绝它们(即 404 并要求用户稍后返回),或者应用一些额外的审查逻辑来确保我们没有处理机器人。

总结

链接爬虫或“安全链接”将允许 SEG 在允许用户访问之前使用机器人来审查您的网络钓鱼链接。此控件很烦人,但并非很难绕过。我们只需要使用一些久经考验的真实方法来检测机器人。有一些很棒的开源和付费解决方案可以帮助我们检测爬虫程序并向其展示良性内容。

SEG 没有得到适当的激励来保持在编写隐蔽网络爬虫的最前沿,因此我们可以从已知的技术和免费工具中获得一些相当不错的收益。只需为军备竞赛带来一条腿:

就像在桶中射击 Phish 一样绕过链接爬虫

最后,除了点击之外,还要收集有关你的推广活动的数据,并查看这些数据以寻找链接爬虫等控制措施的证据,这始终是一个好主意。如果您没有跟踪任何浏览器指纹、IP 位置或交付点击时间,那么您怎么能自信地说什么是合法点击,什么是查看您的网络钓鱼页面的安全产品?反馈循环是开发和改进我们的交易技巧的重要组成部分。去收集一些数据吧!

其它课程

linux恶意软件开发对抗与进程安全管理视频教程

就像在桶中射击 Phish 一样绕过链接爬虫

linux文件系统存储与文件过滤安全开发视频教程(2024最新)

就像在桶中射击 Phish 一样绕过链接爬虫

linux高级usb安全开发与源码分析视频教程

就像在桶中射击 Phish 一样绕过链接爬虫

linux程序设计与安全开发

就像在桶中射击 Phish 一样绕过链接爬虫

  • windows恶意软件开发与对抗视频教程

  • 就像在桶中射击 Phish 一样绕过链接爬虫

  • 就像在桶中射击 Phish 一样绕过链接爬虫

  • windows

  • 就像在桶中射击 Phish 一样绕过链接爬虫

  • windows()

  • 就像在桶中射击 Phish 一样绕过链接爬虫

  • USB()

  • 就像在桶中射击 Phish 一样绕过链接爬虫

  • ()

  • 就像在桶中射击 Phish 一样绕过链接爬虫

  • ios

  • 就像在桶中射击 Phish 一样绕过链接爬虫

  • windbg

  • 就像在桶中射击 Phish 一样绕过链接爬虫

  • ()

  • 就像在桶中射击 Phish 一样绕过链接爬虫就像在桶中射击 Phish 一样绕过链接爬虫就像在桶中射击 Phish 一样绕过链接爬虫

  • 就像在桶中射击 Phish 一样绕过链接爬虫

  • 就像在桶中射击 Phish 一样绕过链接爬虫

  • 就像在桶中射击 Phish 一样绕过链接爬虫

原文始发于微信公众号(安全狗的自我修养):就像在桶中射击 Phish 一样绕过链接爬虫

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年9月10日13:02:13
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   就像在桶中射击 Phish 一样绕过链接爬虫http://cn-sec.com/archives/3148610.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息