老邮箱就是收到病毒多,估计读者都有体会啦。中秋节前收邮件,就又碰到了一次广撒网的钓鱼邮件。
本想直接删除了事,转念一想不如就写一篇关于钓鱼邮件的分析,尤其是对很多人看得云里雾里的“社会工程学”,有实例就容易理解了。
笔者: |
国际认证信息系统审计师(CISA) 软考系统分析师 软件工程硕士 |
本篇内容主要涉及钓鱼邮件的社会工程学手段分析、软件代码逻辑分析和电子邮件的溯源。后面两项内容专业性较高,读者可自行取舍阅读哪一部分。
一 | 钓鱼邮件的社会工程学 |
社会工程学这个词只要是关注网络安全的人多少都会听到过。说得很深奥,但说白了就是如何能成功地诱骗受害者上当的方法:
一切都离不开先挖掘和放大人的欲望,随后才是疏忽大意。
1、首先看看邮件的内容 |
邮件内容截图如下图1:
图1 钓鱼邮件实例截图
商务邮件风格,落款故意使用手写字体,联系信息附带完整的地址和联系方法,以及企业LOGO。这个被冒充使用的企业信息是真实存在的,所以图1打码处理。
2、诱骗性分析:发件人信息 |
钓鱼邮件的诱骗性在于如何能让看邮件的人一眼下去就信以为真。
首先就是前面已经提到的企业联系信息。真实的联系信息会减轻邮件接收人对邮件来自何处的疑问,因为能上网搜索到,但并不能完全排除邮件接收人的疑问,因为发件人邮箱明显和联系信息中的不符。
所以接下来就是发件人信息的诱骗。发件人信息包含了两重心理暗示和欺骗:
第一重是人名后的(Account payable,账户可支付),说到钱嘛,通常人都是对有钱收和罚款这两种情况敏感。
第二重心理欺骗是对方的邮箱。和其他一些钓鱼邮件使用的欺骗机制不同,这封钓鱼邮件的发件邮箱冒充的是典型的办公室环境自动化邮箱:邮箱名以docusign开头,冒充文档签名服务,域名以sharp开头(后面再详细分析域名情况),冒充夏普复印机。
这两重欺骗,尤其是后者,一定程度上抵消了邮件接收人对邮件发送地址和邮件内容联系信息中电邮地址不符的疑问。
3、诱骗性分析:邮件标题 |
邮件标题是和发件人信息同等重要的、会被邮件接收人同时看到的信息。所以这钓鱼邮件的标题也有两重欺骗。
首先第一重是标题上有两个 RE: 前缀冒充这是回邮,让接收人以为是之前有交流过的。这种手法非常常见,有些钓鱼邮件甚至还会加一串 RE: 前缀去冒充双方有过反复往来。
第二重欺骗是标题上的“Proof”和“payment”,前一个单词向邮件接收人暗示邮件可信,后一个单词继续暗示邮件接收人有钱收。
到这里其实已经能看出钓鱼邮件是如何一步步放大人性中的欲望,同时放松警惕的。
4、诱骗性分析:邮件内容 |
再回到邮件内容上来,看看正文和附件。
邮件正文内容简短但使用了“trust”,“find you well” ,“proof”这类心理暗示用词以示意邮件可信,并继续强调“payment”,强化“有钱收”对邮件接收人的心理冲击:
万一真的有钱收呢?(做梦还是太早)
附件方面,此钓鱼邮件附件采取的是比较常见的操作。
首先就是附件文件名和邮件标题是匹配的,这可以加强真实感。
具体到附件文件,它实际是 HTML (网页)文件,简单地通过添加日常办公文档扩展名作为文件名的一部分而尝试欺骗接收人这是个办公文档。
如果邮件接收人把附件保存为本地文件,碰巧操作系统环境设置了隐藏文件扩展名时,就有较大可能性会被欺骗到。所以笔者一直认为隐藏文件扩展名是 Windows Explorer 最失败的设计特性。
不过,读者可以注意到它添加的 xlxs 其实是错误的,正确的 Excel 文件扩展名是 xlsx。
这一点就让笔者觉得这钓鱼邮件挺失败的。
5、诱骗性分析:整体可行性 |
分析钓鱼邮件的目标之一是要分析其实施的可行性。笔者对这钓鱼邮件的可行性概括起来有如下3点,不能说必然成功,也不能说必然失败,50/50吧:
1、该钓鱼邮件内容以英文写成,表面上看对国内多数人无意义。但由于外贸因素,英语邮件反而构成对国内邮件接收人的精准筛选。
2、从钓鱼邮件内容营造的整体信息(付款凭据)来看,如果邮件接收人具备其所针对的典型人群特征,有可能打开附件并输入密码。
3、该钓鱼邮件试图把欺骗得到的信息,也就是邮件接收人填写的密码信息转发到某国外通信工具的机器人地址(详细分析在下文),但由于该地址正常情况下无法访问,所以数据提交必定失败。但也有可能,这依然也是一种精准筛选的方法,懂的都懂就是了。
二 | 软件代码逻辑分析实际行为 |
这钓鱼邮件编排铺垫那么多,目的就是让邮件接收人双击打开附件。由于附件实际是 HTML 文件,因此打开附件的操作会启动浏览器,运行文件嵌入的 JavaScript 代码。
那么这个 HTML 文件连同里面的 JS 代码做了些什么呢?
对其进行检查可以发现 JS 代码没有做混淆,很容易读。
页面构建了一个用户名和密码输入框的表单,并引用了一张外部的 EXCEL 图案的图片以欺骗邮件接收人正在访问 EXCEL 文档加密服务,这可以联系到发件人邮箱名开头的 docusign。
邮件接收人的邮箱地址预填充到表单的用户名输入框,这也是老套路了,直接代填收件人邮箱地址,以引导邮件接收人输入自己邮箱的密码,增加钓鱼成功的几率。
关键是这个表单的提交处理。表单默认的提交行为是被 JS 阻止的,取而代之的是通过 JS 实现获取收件人 IP 地址位置信息,然后连同输入的用户名和密码一起,构成一条信息后发送到某个 Telegram 机器人。
这里又暴露出钓鱼邮件发送人的不认真:their 这个单词写成了 thier,如图2。
图2 错误的拼写
随后,JS 的逻辑设计是无论输入什么都提示输入错误,并根据输入尝试的次数最终跳转到至随机的微软网址。
这样设计是为了隐藏钓鱼行为,增加欺骗性,通过跳转误导受害人以为是登录失败的过程,从而不发觉自己的信息已经被泄露出去。
三 | 电子邮件的溯源 |
对电子邮件进行溯源分析网络上教程不少,还有自动化的工具。笔者认为,无论是从事网络安全也好,网络运维也好,学会观察邮件的源代码都是必要的基本技能。
一个可用的分析工具地址是:
https://mxtoolbox.com/EmailHeaders.aspx
1、溯源分析 |
电子邮件的源代码是纯文本,包括邮件头和正文。邮件头是电子邮件的元数据的集合。通过元数据可以实现电子邮件的溯源,重点是找出真实的邮件发送方,以进一步分析。
可以溯源到邮件发送方的关键元数据是:Received 和 X-Receive-IP,主要是依据 Received 进行。
Received 记录了邮件从发件方到接收方的传输路径。每一行都表示邮件经过的一个节点,并包含了该节点的信息(如IP地址、使用的协议等),注意最新的节点在最上面。
经分析可知这个钓鱼邮件共经过3次转发,最早的记录是从 73.115.198.104.bc.googleusercontent.com 发送到 sharpccor.com:
Received: from 73.115.198.104.bc.googleusercontent.com ([104.198.115.73] helo=instance-20240910-110144)
by sharpccor.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
(Exim 4.97.1)
(envelope-from <[email protected]>)
id 1soDiL-0000000044d-22pa
for [email protected];
Wed, 11 Sep 2024 03:08:17 +0000
发送人的 IP 地址是 104.198.115.73,可以注意在域名中的逆序命名方式。
但由于 sharpccor.com 很可能是被邮件发送人控制的,所以这个节点记录内容有可能是伪造的。
而且即使不是伪造的,73.115.198.104.bc.googleusercontent.com 是个云服务动态地址,也无法再直接地跟踪分析下去,除非云服务商配合。
于是再观察邮件头的中间一条 Received 记录如下:
Received: from ([79.141.165.242])
by gateway-183831-dep-56cdf587cb-pvndb with ESMTP id 141fa7493c35466385e979d4db1d4c86 for [email protected];
Thu, 12 Sep 2024 00:59:04 CST
在撰写本文时,对 sharpccor.com 解析 IP 地址就是返回 79.141.165.242 这个地址。发出本文时(2024年9月18日)该地址解析已经变更为 185.117.91.9。
所以,能确定的就是该钓鱼邮件确实是经过 sharpccor.com 转发出来。
再加上在 whois 可以查询到该网址首次注册日期是在 2024-08-28,这很明显就是为了做坏事而注册的。
邮件头中最新的记录是笔者的邮件服务商的接收记录,会因为服务商邮件系统内部转发路径的设置而不一定有意义,这里就不列出了。
2、其他一些可关注的 |
邮件头还有一些可以关注的内容,比如:
1)为了尽量使到邮件投递成功,设置了高优先级和重要性。
Priority: 邮件的优先级,设定为“urgent”,表示紧急。
X-Priority: 同样表示邮件的优先级,数字越小(1)优先级越高。
Importance: 邮件的重要性级别,设定为“high”,表示高重要性。
2)为了使邮件更加可信,设置了签名认证和发件人地址。
DKIM-Signature:正常情况下,DKIM(DomainKeys Identified Mail)实现对邮件进行签名,可以验证邮件来源的真实性。对 DKIM-Signature 的内容解码也是确定邮件发送自前述的 @sharpccor.com 的地址。
X-Real-From: 实际的发件人地址,与 From 属性内容相同。
为免篇幅过长,原始文本就不贴了。
四 | 后记 |
在发出本文前,经笔者查询,一些安全威胁信息平台已经将该网址 sharpccor.com 列入黑名单,但仅列为发送垃圾邮件。这是不足以说明其威胁严重性的。垃圾邮件和钓鱼邮件不是一回事。
注:题头图由豆包生成,但笔者自己修改了好几处一眼错。
点赞和转发都是免费的↓
还可以看看这些内容:
Windows Server 2025 没有 SMTP 服务器组件了!有解决办法~
原文始发于微信公众号(wavecn):新鲜钓鱼邮件实例详细分析
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论