绕过邮件安全控制pt1:URL扫描

SoftNight 其他 2019年3月5日发布
Favorite收藏

导语:本文是高级钓鱼能力和绕过邮件安全机制系列文章的第一篇文章。本文的重点是URL分析和绕过链接扫描能力,这里我们会使用微软的O365的链接扫描过滤器来进行演示。

介绍:绕过邮件安全

本文是高级钓鱼能力和绕过邮件安全机制系列文章的第一篇文章。本文的重点是URL分析和绕过链接扫描能力,这里我们会使用微软的O365的链接扫描过滤器来进行演示。

钓鱼技术并不新鲜,已经是存在多年的老问题了,但这种攻击手法总是能够成功,表明邮件安全还有待提升和发展。

在这整个系列中,尽管我们讨论的方法并不是最新的,但事实是,这些方法在社工中却十分奏效,这表明,我们在防御方面还要下很多功夫,防御团队需要解决这个问题。

钓鱼背景

任何红队评估的关键领域就是钓鱼或社工,关于这个主题网上已经有大量的文章了。虽然网络钓鱼的风险有详细的记录,但有关攻击者是如何绕过这些防御也是非常有用的。

用户培训和教育十分重要,网上有很多的资源可以学习,也有很多公司提供这种安全培训计划,来帮你处理这种攻击方法的人工因素。据2018年DBIR报告所观察,防御团队是无法阻止这种攻击的,4%的人会随手点击攻击者发来的任何的钓鱼邮件。

防钓鱼工具的作用

很多公司都倾向于使用第三方邮件,如Gmail,office365和其他的,并完全依赖这些服务的防御机制。虽然这些邮件服务在处理常规的垃圾邮件方面的确做的不错,但是默认的配置是无法帮你检测,阻止或缓解更加复杂的电子邮件攻击的。所以,合适的配置对于有效的防钓鱼策略来说是至关重要的。

当进行评估邮件安全服务时,了解如何识别恶意电子邮件非常重要,我们可以问以下这些问题:

· 发件人域是否具有有效的SPF记录,连接的IP是否在可接受的发件人白名单中?

· 发件人IP是否具有有效的DKIM记录,邮件认证和签名是否有效?

· 发件人域是否具有有效的DMARC记录,如果有,是否有一组策略可以处理恶意邮件?

· 邮件内容是否匹配已知的恶意邮件内容,如“点击此处重置密码”?

· 邮件内容中是否有危险网站的域名链接或者是登陆页面?

· 邮件内容中是否存在链接跳转到链接保护扫描机制检测到的登录页?

· 邮件中的附件是恶意的吗?是被基于签名的系统检测或标记的吗?

· 发件人域是新创建的还是未分类的域?

这个列表并不完整,并且我确信每个服务的后端还有很多工作要做。当客户使用第三方邮件安全提供商时尤其如此,比如使用Proofpoint和Mimecast,他们可能会部署其他技术,这些是攻击者和用户看不到的。

我们的目的是分析正在使用的邮件服务器,识别任何安全提供商,准备多种技术控制来规避问题。

这是本系列的第一篇文章,为了简单起见,我们将重点介绍微软使用的链接扫描机制。

微软Exchange邮件在线保护

微软的EOP服务是预装Exchange或者云托管邮箱的附加组件。下面是EOP的一些功能:

· 入站和出站垃圾邮件检测

· 反射邮件保护。注释:反射邮件指的是当目标邮件地址无效时,由目标邮箱服务器生成并返回的无效通知邮件

· 批量电子邮件过滤

· URL禁止列表查询和禁止

· 已经垃圾邮件和钓鱼邮件发件人和域过滤

· 反恶意软件扫描和检测

通过更加深入的阅读此功能清单,你就会更了解EOP这个服务的强大功能并且对它记忆深刻。更重要的是,它为管理员和安全团队提供了配置选项,可以进一步对入站邮件进行处理。

EOP基础知识

根据EOP服务器在邮件传输流程图中的位置,我们可以看到它其实是一个中间人的角色,使用内置的扫描器和用户定义的配置来过滤先前被识别的而已邮件。

下图简要概述了邮件通过EOP服务器是如何进行处理的,如图:

1.png

链接过滤是对邮件,作为整个邮件传输过程的一部分,进行过滤的第一阶段。目的是允许或阻止由管理员配置的对应的白名单或黑名单策略中的电子邮件。

下一步,反恶意软件阶段将会把附件传递给EOP扫描器,查找是否存在已知的恶意签名。跟第一阶段类似,一旦邮件被识别为恶意邮件,它们将会被立即删除。

传输策略过滤的选项比连接过滤更多,管理员可以调节反垃圾邮件和路由的处理。关于管理员可以进行哪些修改的更多信息,请阅读官方文档。

虽然前面提到的EOP传递邮件的阶段十分重要,不过真正的恶意邮件会在连接过滤阶段就被发现,管理员可以根据邮件内容来加强对邮件传输的控制。有很多选项我们可以进行设置来防御主动社工活动,某些选项如下:

· 禁用图片链接(这是网络钓鱼平台来用来判断目标是否打开初始邮件的一个指标)。

· IP地址链接,通常用于绕过内网的代理过滤器。

· 域名TLD黑名单。

· 特定内容过滤,拦截敏感词或其他指标

作为一名社工人员,无论是内部安全团队的一员还是外部渗透测试人员,了解邮件安全工具比如EOP的默认配置和常见的修改配置是非常重要的。

使用EOP扫描链接和附件

如前所述,对于任何优秀的邮件安全提供商而言,内容过滤都是非常重要的。比如EOP,还有其他服务,有些处理过程对于客户端来说是不可见的,比如链接和附件扫描。虽然你可以配置是否隔离附件,不过那些被表明为恶意的链接,通常都会根据你的组织过滤策略在后台对它们进行处理。

根据官方文档,EOP链接扫描过程包括:

· 识别邮件中的链接是否指向下载内容(比如二进制文件和文档),然后将它们传递给附件扫描引擎。

· 分析来自各个合作伙伴的URL可信度,确认它们的URL是否是恶意的。

虽然这些规则还不太成熟,但它们可以成为一种重要的防御手段,来降低邮件传输过程中大规模的社工活动的危害。

攻击者可以将钓鱼基础设施和邮件模板组合在一起,但还是会被已知的恶意登陆页面URL所阻止。

最后,尽管EOP引入了邮件安全,也提供了大量的安全配置选项,但是当攻击者使用0day方法来发起攻击时,EOP的安全策略就起不到什么作用了。总结以下,该服务可以识别和阻止带有已知的明显的钓鱼和附件特征的电子邮件,对于那些未知的也就无济于事了。

O365高级威胁保护(ATP)插件

除了EOP服务之外,ATP提供更主动的方法来防御更复杂的攻击,比如扫描沙盒环境中的文档以查找链接和对象。

ATP的核心功能:

· 未知或是0day的安全附件保护;

· 安全链接,重写邮件中的链接并实时扫描威胁的功能,包括扫描文档中的链接并根据需要进行重写;

· 更多配置和日志记录选项,管理员和安全团队可利用这些选项对环境进行调节;

· 欺诈情报,用于检测组织域发送或接收的欺诈邮件机制;

· 机器学习和其他检测钓鱼邮件的能力。

2.png

ATP中引入的一个重要的功能是安全链接,它会对邮件和附件文档中的链接进行主动扫描(EOP也可以扫描),然后重写链接并指向ATP网关。链接点击的时候就开始进行扫描,当链接能够导航到URL之前会进行一系列的检查。

扫描期间进行的一些检查如下:

· 检查链接是否被组织列入黑名单;

· 检查链接是否指向可下载的内容(文档,二进制文件)并进行扫描;

· 检查链接是否以前被标记为恶意链接。

如果一切正常,你就能够访问该链接,如果弹出类似下面的消息,它就会阻止你访问该链接

3.png

此时,用户就会收到恶意邮件指示的警告,这就会大大降低攻击者进行社工的效率。

过去针对EOP和ATP的攻击

虽然链接扫描和安全链接机制是一种非常不错的概念,它会尝试阻止复杂的因素和已知的攻击活动,但它们不会出现安全性故障或配置错误。像其他安全工具一样,它的实际功能可能会因为某些“特色”而受到影响,比如那些看似有危险的或者是像漏洞的特色,也可能会在处理某些特定数据时产生bug。

在Oddvar Moe的一项调查结果中,他发现ATP的“安全链接”机制可以被绕过,只要在邮件中发送没有超链接标签的链接,也就是只发送纯文本的链接,而不使用”<a href=URL>”这种标签。不过,微软认为这并只是一个设计问题,并不是一个实际的漏洞,也就没有进行修复,因此这种方法也是一种潜在的问题。

另一个发现也非常有意思,Avanan的人们发现,如果你使用”<base>”标签,理论上你可以基于base标签来分割URL,而且ATP也无法正确的处理指定的链接。虽然这个问题在最初报道之后很快就解决了,不过当它存在的时候,这确实是一个行之有效的方法。

绕过链接扫描产品

遇到上面的产品时,我们的方法就是首先记录下链接扫描器和沙箱使用的IP范围。有了这个列表,我们可以创建一个处理我们所需的入站流量的策略,以此来欺骗它们认为我们的内容是合法的。

通过观察,我们发现,从我们的登陆页面,将来自EOP范围的流量重定向到我们目标组织域的有效URL上,成功率还是很高的,不过检测率依然很低。

虽然创建自定义邮件模板和登陆页面,可以帮助我们获得成功,但是下面的方法确实比这种特殊的防御方法更具优势:

· 微软在官方文档某页面或者通过API发布EOP IP范围的完整列表

· 两种服务(EOP/ATP)的链接扫描都由EOP独自完成

攻击此向量,需要你配置登录页web服务器,以便将EOP的流量重定向到合法的地址,正如下面的部分所描述的一样。

配置钓鱼web服务器

以下说明适用于Nginx钓鱼平台,使用geoip模块来处理基于IP的重定向。也有其他方法来实现重定向,不过这里我们选择它并没有什么特别的目的,只是因为这种方法是可行的。你可以使用任何你喜欢的方法来处理这个问题。

如果你使用的是web服务器或者不是基于Nginx的技术,你应该阅读官方文档进行深入了解,以便你实现下面这些步骤:

1)  Install ngx_http_geoip module on Debian/Ubuntu:
          # apt install nginx-module-geoip
 
     2)  Modify /etc/nginx/nginx.conf to include:
load_module modules/ngx_http_geoip_module.so;
 
     3)  Create a 'bad' array inside of /etc/nginx/conf.d/[domain].conf before the main server {} config:
geo $bad_user {
 default 0;
 2a01:111:f400:7c00::/54 1;
 2a01:111:f400:fc00::/54 1;
 2a01:111:f403::/48 1;
 23.103.132.0/22 1;
 23.103.136.0/21 1;
 23.103.144.0/20 1;
 23.103.198.0/23 1;
 23.103.200.0/22 1;
 40.92.0.0/14 1;
 40.107.0.0/17 1;
 52.100.0.0/14 1;
 52.238.78.88/32 1;
 65.55.88.0/24 1;
 65.55.169.0/24 1;
 94.245.120.64/26 1;
 104.47.0.0/17 1;
 157.55.234.0/24 1;
 157.56.110.0/23 1;
 157.56.112.0/24 1;
 207.46.100.0/24 1;
 207.46.163.0/24 1;
 213.199.154.0/24 1;
 213.199.180.128/26 1;
 216.32.180.0/23 1;}
 
     4) Modify the location config for / within /etc/nginx/conf.d/[domain].conf to look like:
    location / {
    if ($bad_user) {
        rewrite ^ http://www.contoso.com/target/path/;
        }
    }

完成这4个步骤后,你可以重启服务器并测试你的登陆页面。为了测试目的,你应该将你的IP或者IP段添加到恶意用户名单中,以便确认当你点击登陆页面时是否进行了正确的重定向。

应用此方法攻击其他安全工具

使用重定向来骗过链接扫描产品也已经是屡见不鲜了。我们在各种各样的APT攻击和红队活动中都能观察到这种方法的使用。

我最近发现了一款强大的工具mkhtaccess_red,能够生成功能性的.htaccess文件,重定向流量以已知的沙箱和威胁防护程序。这对于红队或是扩充钓鱼工具库来说,都是一个非常不错的工具。

修复钓鱼漏洞

防御这些攻击,第一步就是利用ATP强大的安全配置选项,确保有关链接问题已经配置成了显示警告并且绝不允许用户继续并绕过警告提示框。

使用集成DNS安全工具,不管是在企业网路本地还是作为云服务,这个工具也能帮助我们捕获用户点击钓鱼链接的web流量。使用对新创建域进行分类和阻止的服务可以解决你遇到的绝大多数的恶意链接问题。将它与web代理配合使用来监控web流量,能够提供更加深层次的防护。

用户教育和培训

由于人为因素是最薄弱的环节,因此社工培训对于任何企业和阻止来说都是至关重要的。教会员工如何识别钓鱼页面和其他恶意链接标志,以及如何正确的报告恶意的payloads,你会发现这是非常卓有成效的。

总结

前面提到过,这些技术并不是什么新技术,但是如果绕过了技术控制,对于我们深刻理解其影响是非常重要的。

除了ATP和EOP,其他任何类似的服务,对于这类攻击也是无能为力。

从防御和攻击角度来看,你们公司的安全能力也是十分重要的,相较于你现在的理解而言,它会提供一个更广阔的视野来看待安全问题。保护你的用户安全需要采用多种方法,我希望通过这些文章能够让企业有意识的去提高邮件安全状况。

本文翻译自:https://rhinosecuritylabs.com/social-engineering/bypassing-email-security-url-scanning/如若转载,请注明原文地址: https://www.4hou.com/others/16423.html
点赞 0
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论