记一次钓鱼邮件分析过程

admin 2021年4月24日03:07:37评论27 views字数 2167阅读7分13秒阅读模式

记一次钓鱼邮件分析过程

今天打开邮件,无意中发现了一封全英文的报价信息邮件,附件是 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.lug.ustc.edu.cn/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 病毒库已经更新,该钓鱼样本可以及时进行查杀了。 

记一次钓鱼邮件分析过程

以上就介绍到这,2021 年已经到来,祝大家元旦快乐。

记一次钓鱼邮件分析过程

本文始发于微信公众号(信安之路):记一次钓鱼邮件分析过程

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年4月24日03:07:37
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   记一次钓鱼邮件分析过程http://cn-sec.com/archives/229959.html

发表评论

匿名网友 填写信息