使用域名同态技术(IDN homograph)对邮件系统进行高效的钓鱼攻击

Kiven  1793天前

在过去的几个月里,我们做了一些关于如何创建网络钓鱼电子邮件的研究,这些电子邮件足以骗过专业的安全人员。

为此,我们正在研究一个相当古老的话题:Punycode域和IDN同态攻击。

注解:

1. Punycode是一种特殊的编码,用于将Unicode字符转换为ASCII。

2. IDN homograph attacks :IDN同形异义字攻击,本文将使用“同态攻击”来描述。

我们将用“bücher.example”这个域名来说明它的编码过程。

“bücher”部分通过Punycode编码转换为“bcher-kva”,然后以“xn--”作为前缀,因此DNS记录将会变成“xn--bcher-kva.example”。

然而,这种编码方式也可用于欺骗用户来访问恶意URL。之前张旭东也曾撰写了一篇关于使用Unicode代码转换域名进行网络钓鱼的博客文章。

他们使用了西里尔语中的'a'字符构建了一个“apple.com”的同态域名,最后浏览器只显示了编码后的域名。

这种情况下,即使有经验的用户也很难发现这种攻击手段。与此同时,除Firefox之外的所有浏览器都默认以显示Punycode编码形式表示。这造成了大多数Web浏览器将面临这种攻击的情况。

那么,电子邮件是否也可以实现这样的攻击手段呢?

我们尝试在“A1 Digital”(一家公司名称)邮件系统中不断发送高隐蔽性的网络钓鱼邮件。经过验证,这种编码后的域名似乎是一种实现近乎完美的网络钓鱼邮件的有前途的方式。

我用西里尔文语中的'а'(U+0430)替换我们域名“a1.digital”中的“a”字符,并创建了相应的钓鱼邮件。

我们非常想知道当先比较流行的电子邮件客户端是如何处理带有Punycode域名的电子邮件的,并且我们也想了解这些客户端将采用哪些安全机制帮助用户发现潜在的钓鱼攻击风险。

我们对一下产品进行了测试:

  • Outlook for Windows
  • Outlook Mobile
  • Office365 Web (outlook.office365.com)
  • Gmail Web
  • Gmail Android
  • Mail for iPhone
  • Thunderbird

我们使用了不同的测试方法如下:

  • 发送带有Punycode编码的“FROM”字段的电子邮件(例如: FROM: Bud Spencer <bud.spencer@xn--1-7sb.digital>)
  • 发送带有Unicode编码的“FROM”字段发送电子邮件(例如: FROM: Bud Spencer <bud.spencer@а1.digital>)
  • 发送带有合法“FROM”字段的电子邮件,但使用Punycode编码或Unicode编码的电子邮件地址伪造“回复”字段。(例如: FROM: Bud Spencer <bud.spencer@a1.digital>, Reply-To: Bud Spencer <bud.spencer@xn--1-7sb.digital>)

利用场景如下:

Bud Spencer(bud.spencer@a1.digital)收到一封恶意攻击者冒充Terence Hill写的一封包含以下内容的电子邮件:

---------------------------------------------------------------

你好Terence,

您可以在下面找到我们的安全意识培训的注册链接:

https://а1.digital/security-awareness-training

祝工作顺利!

---------------------------------------------------------------

下表显示针对几款软件的测试结果:

  阅读邮件时即可检测到风险 恢复邮件时可检测到风险
Outlook for windows
Outlook for Mobile
Office365 Web
Gmail Web
Gmail Android
Imail(Mobile)
Thunderbird

在下文中,我们将介绍此研究的详细结果,包括测试应用程序的屏幕截图以及成功攻击的过程。

Outlook for Windows

测试版本: Office 365 16.0.11328.20286

以下电子邮件是使用Punycode编码的“FROM”字段发送的

图片.png

从上面的情况来看,Outlook确实会向用户发出警告。 虽然大多数用户都不会注意到警告。但是……,我们还想再更完美一些。 我们使用了合法的“FROM”字段,但是使用Punycode编码的“Reply-To”字段,并创建了以下内容:

图片.png

没有警告!以下屏幕截图显示,在回复假电子邮件时客户端无法识别攻击。 请注意,在此示例中,受害者正在回复攻击者。

图片.png

注意:Outlook 2016显示的是Punycode编码后的假电子邮件地址,当使用Unicode编码的“FROM”字段发送网络钓鱼电子邮件时,攻击行为将无法识别。

Outlook Mobile for Android

测试版本: 3.0.63 (319)

测试电子邮件分别以Unicode和Punycode两种编码形式发送。 但是,如下所示,Outlook forAndroid始终以Punycode编码显示,可以帮助用户检测到攻击行为。

图片.png

Office365 Web (outlook.office365.com)

下面的电子邮件是使用representation1.digital的Unicode编码方式发送。 在这种情况下,用户无法识别出网络钓鱼电子邮件,即使是在回复时也是如此。☹


图片.png

Gmail Web

Gmail是非常受欢迎的,它是目前使用最广泛的网络邮件界面之一。当收到电子邮件(发件人使用Punycode编码后,以Unicode格式发送,Gmail服务器将不接受该电子邮件)时,无法检测到网络钓鱼攻击。 此外,Google垃圾邮件保护服务未将其归类为垃圾邮件。

图片.png

打开联系人细节,您可以看到电子邮件是由xn--1-7sb.digital作为签名的,这是因为使用了DKIM签名。 我们使用了外部电子邮件提供商提供的所有传出邮件签名,我们当然可以在设置我们自己的电子邮件服务器时停用它,这将导致更隐蔽的攻击。不利的一面是,如果没有有效的DKIM签名,SPAM(垃圾邮件评定)得分就不会那么好。

图片.png

最有意思的是,在回复网络钓鱼邮件时,Gmail会通过以下消息警告用户:


图片.png

在我们看来,这是一个非常好的安全功能。 受害者一旦回复钓鱼邮件,就会在回复此发件人发送的另一封电子邮件时触发警告。

Gmail Android

测试版本: 2019.04.28.246421133.release

如上所示,Gmail网页版提供了良好的安全功能,可在回复此类网络钓鱼电子邮件时向用户发出警告。 Gmail for Android却不提供此功能。 在我们的测试中,我们无法触发类似的警告,这就是我们向Google报告的原因。 经过一番讨论后,谷歌回应说,他们正在研究这个问题,他们可能会提供修复方案。

图片.png

Mail for iPhone

IMail在测试时并不容易受到这种攻击,并且可以显示发送者的Punycode编码地址。

图片.png

Thunderbird

测试版本: 60.6.1 (32-bit)

当使用Unicode编码发送网络钓鱼电子邮件时, Thunderbird无法检测到此类攻击。


图片.png

回复此电子邮件如下所示:

图片.png

总结

研究表明,使用IDN Homograph(IDN 同态)的网络钓鱼攻击在邮件系统上是很容易实现的,并且不易发觉。 像Outlook和Thunderbird这样的供应商尚未实施有效的对策来检测和发现此类攻击。

这种域名转义的网络钓鱼技术,强大之处在于可以实现双向交互,我们实际上也可以收到网络钓鱼电子邮件的回复,这样看起来是成为了一种正常的交互行为,并且这些邮件往往具有更高的风险,同时这种方法也开辟了有针对性的网络钓鱼活动的新途径。

本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场
来源:https://www.offensity.com/en/newsroom/sophisticated-spear-phishing-campaigns-using-homograph-attacks/

最新评论

昵称
邮箱
提交评论