原文链接:注意:钓鱼邮件常见的html附件,你中招了吗?
在钓鱼邮件中使用 HTML 嵌入式文档是攻击者的惯用伎俩。它不需要在电子邮件正文中添加链接,而反垃圾邮件引擎和电子邮件反病毒软件可以很容易地检测到这些链接。在伪装钓鱼内容方面,HTML比电子邮件的隐蔽性要强得多。 攻击者使用的HTML附件主要有两种:带有虚假网站链接的HTML文件,或者是一个完整的钓鱼页面。在第一种情况下,攻击者不仅可以隐藏文件中的链接,还可以在用户打开此文件时自动将用户重定向到欺诈网站。第二种类型的 HTML附件可以完全跳过创建网站并节省服务器成本,直接将网络钓鱼表单和收集数据的脚本直接嵌入在附件中。此外,像电子邮件这样的HTML文件还可以根据目标受害者和攻击载体进行修改,从而实现更加个性化的网络钓鱼内容。 图1 带有HTML附件的邮件示例 一、网络钓鱼HTML附件结构 HTML附件中的钓鱼元素通常使用JavaScript实现,它处理将用户重定向到钓鱼网站或收集凭据并将其发送给诈骗者。 图2 钓鱼HTML页面及其源代码 通常,HTML页面将数据发送到脚本中指定的恶意URL。有些附件完全或大部分包含一个JS脚本。 在电子邮件源代码中,HTML附件看起来像纯文本,通常是base64编码的。 图3 电子邮件中的HTML附件源代码 如果文件包含明文的恶意脚本或链接,安全软件可以快速解析并阻止它。为了避免这种情况,攻击者们使出了各种手段。 二、JavaScript 混淆 JavaScript混淆是用于隐藏HTML附件的最常用技术之一。为了防止文件中的URL被快速发现和阻止,网络钓鱼者要么混淆钓鱼链接本身,要么混淆整个脚本,有时甚至混淆整个HTML文件。在某些情况下,攻击者会手动混淆代码,但他们通常使用现成的工具,其中很多都是免费的,比如JavaScript混淆器。 例如,在文本编辑器中打开据称来自汇丰银行(HSBC Bank)的钓鱼电子邮件中的HTML附件(见图1),我们看到一些相当令人困惑的JS代码,这似乎既不暗示打开链接,也不暗示任何其他有意义的操作。 图4 HTML附件中的混淆示例 然而,它实际上是一个将用户重定向到钓鱼网站的混淆脚本。为了隐藏钓鱼链接,攻击者使用了一个现成的工具,使我们能够轻松可以轻松地反混淆脚本。 图5 来自 HSBC 银行的电子邮件附件中的反混淆脚本 如果脚本、链接或 HTML 页面被手动混淆,则恢复原始代码要困难得多。要检测此类文件中的网络钓鱼内容,可能需要进行动态分析,其中涉及运行和调试代码。 三、编码 有时攻击者会使用更有趣的方法,例如,在一封网络钓鱼电子邮件中,我们发现了一个不寻常的 HTML 附件。如上例所示,它包含 JavaScript。由于该代码非常简洁,人们可能会认为它在做的事情与伪造的汇丰电子邮件中的代码相同,即将用户重定向到一个钓鱼网站。但是在运行它时,我们发现了一个用这个小脚本编码的完整的网络钓鱼页面。 图6 使用unescape()方法的HTML文件,该文件的源代码只包含五行,其中一行是空的。 图7 HTML附件中的钓鱼页面 攻击者使用了一个有趣的技巧,涉及到已弃用的JS方法unescape()。此方法将“%xx”字符序列替换为传递给它的字符串中的等价ASCII字符序列。运行脚本并查看结果页面的源代码,我们将看到纯HTML。 图8 生成的HTML文件 JavaScript 现在使用 decodeURI() 和 decodeURIComponent() 方法代替 unescape(),但大多数浏览器仍然支持 unescape()。我们不能肯定为什么攻击者选择了一种已弃用的方法,这也可能是因为目前的方法更有可能被反垃圾邮件引擎解释和检测到。 四、数据统计 在2022年1-4月,据相关数据显示近200万封的电子邮件包含恶意HTML附件。其中近50%(851328人)在3月份被发现并被阻止,仅仅1月份最少就有299,859封带有钓鱼HTML附件的电子邮件。 图9 2022 年 1 月至 4 月检测到的带有恶意 HTML 附件的电子邮件数量 五、小结 网络钓鱼攻击者善于使用各种技巧绕过电子邮件拦截,并引诱尽可能多的用户访问那些欺诈性网站,比如 。HTML 文件允许攻击者使用脚本、混淆恶意内容以使其更难检测,并将网络钓鱼页面作为附件而不是链接发送。
|