记一次钓鱼邮件分析过程
来自公众号:信安之路
今天打开邮件,无意中发现了一封全英文的报价信息邮件,附件是 html 的网页文件。NND,我们就一个破小公司充其量也就做几单本地业务哪来的国际大单呢,嘿嘿,既然人家给咱报价了,来而不忘非礼也。那就动手分析一下这个大单吧。
首先把这个钓鱼的网页复制到安全的 VM,用记事本打开看看什么内容吧,跟自己料想的差不多满篇的“小蝌蚪”,太正常不过了,如果钓鱼的话随随便便右键一下把裤衩都漏出来了,也有点太 low 了。
打开一下看看什么效果,网页界面做的较逼真,第一个框是我的邮件地址,第二框是用来欺骗输入密码提交查看文档的,到这就也大概理解了此钓鱼网页是用来钓用户邮件密码的。如图
好吧,那接下来看看它是如何实现钓鱼的,钓完之后的密码是通过什么路径收集的,下面开始网页的代码分析。
以上为正常网页内容,无需过多解释。
这里有个 src 的调用 pdf.JS 脚本,服务器还是阿里云看看是什么东东,打开后发现原来引用的是 jQery 脚本,对于天天在坛子的各位大虾这个脚本的作用就一掠而过,Query 是一个高效、精简并且功能丰富的 JavaScript 工具库。它提供的 API 易于使用且兼容众多浏览器,让诸如 HTML 文档遍历和操作、事件处理、动画和 Ajax 操作,说白了作者引用这就是所有的浏览器都可执行。
接着往下看,让我们看看这一坨是什么东东,
JS 不用过多解释一看便知,加密方式是什么呢,在这忽然之间看到了 'unescape' 单词,那就简单多了,解密方法找到了,拿出我的站长工具解密一下看看什么鬼。
NND 这多乱码竟然加密了三次,经过三次 unescape 解密,得到了三个链接的脚本,看看是啥功能。
先看第一个 https://smtpjs.com/v3/smtp.js, 从脚本内容看应该是可以通过该脚本执行邮件发送哦 。
往前翻翻看看主站 smtpjs.com 是干哈的, 哦,果然被我猜中该网站可以帮助实现通过调用 smtp.js 来实现邮件发送。
而且网站还为了安全还可以让使用用户通过 Token 的形式实现邮件发送。
第二个 JS 的调用 https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js,就不分析了同调用阿里云的 jquery 脚本一样,略过。
看第三个 JS 的调用 http://api.ipify.org?format=jsonp&callback=getIP, 从该链接一看初步估计是获取被钓鱼的 IP 地址的,果然不错。
到了这,大概了解该钓鱼网页的思路,利用网页钓鱼用户邮箱密码和 IP 地址,然后通过调用 smtp.js 实现密码和 IP 的收集,继续往下分析看看,还有什么可以挖掘的。
接下来是这个链接,既然看到了明显的标志 type='image/png' href='data:image/png; base64就不用看了以下内容是经过 base64 加密的用于网页显示的图片,略过不看了。
这段内容同 base64 加密的 stylesheet, 也略过了。
这段内容就在正常不过了,通过用户点击 'View Document' ,调用的按钮函数是 testbutton 事件进行文件查看, 估计这个文件查看也是蒙人的,那下面看看 testbutton 实现了哪些功能。
废话不说了,核心的 testbutton 按钮功能实现肯定在这段加密的 JS 脚本,这段代码钓鱼者为了混淆代码把所有的变量通过 _0x3cf7 等定义混淆,简单整理一下,如下:
通过简单整理后 testbutton() 函数的构成变量定义,常量定义已经非常清晰了。
然后大家再看以上的这个 Email.send 的函数和网站 smtpjs.com 是不是一模一样。好了下面拿出JS解密的利器
通过 https://tool.lu/js 揭秘一下庐山真面目。
解密后的 JS 脚本内容全出来了,var _0x3cf7
作为一个数组包含了以上的内容,通过更换变量的名称我们再简单整理一下。这坨乱码所实现的功能可以全部被识别了,_0x3cf7
作为数组变量,里面包含了 26 个数组成员,不过多解释,如图
$[_0x3cf7[2]]
函数其实对应的 _0x3cf7[2]
,即:getJSON,通过通过链接获取被钓鱼的 IP 地址:
https://api.ipify.org/?format=json
解析后的代码如下:
$[_0x3cf7[7]]
函数对应的 _0x3cf7[7]
,即:https://api.ipdata.co/?api-key=test
实现的功能通过链接 https://api.ipdata.co/?api-key=test
获取 JSON,然后截取 城市,国家字段,解析后代码:
function testbutton()
函数通过利用 SMTP.JS 调用完成被钓鱼的邮箱地址,密码,IP,城市和国家的发送,解密后的代码如下:
好了分析到这,该邮件钓鱼的内容差不多分析完毕。另外既然得到了该钓鱼者在 smtpjs.com 留下的 SecuriyToken,和邮箱地址,可以做的就有很多了,大家可以自己百度。同时为了保护国内的小白把该邮件钓鱼木马上传 360 杀毒团队,现在 360 病毒库已经更新,该钓鱼样本可以及时进行查杀了。
以上就介绍到这。