标题 | 简介 | 类型 | 公开时间 | ||||||||||
|
|||||||||||||
|
|||||||||||||
详情 | |||||||||||||
[SAFE-ID: JIWO-2024-2663] 作者: Taber 发表于: [2020-05-11]
本文共 [501] 位读者顶过
0x01 背景介绍GuLoader是一个使用VB语言编写的恶意软件下载器。它通常从Google Drive、Microsoft OneDrive、MediaFire等托管站点下载恶意代码执行。常见的后续恶意远控程序有:LokiBot、Remcos RAT和Agent Tesla等等。 GuLoader本身具有较为复杂的执行流程,较强的反调机制使得当前部分在线沙盒无法精确检测恶意行为,同时也给分析人员造成一定阻碍。 [出自:jiwo.org] 360-CERT监测到今年以来使用GuLoader恶意软件的网络攻击活动呈现不断增加的态势。我们在此发布该恶意软件风险分析,提示用户及时防范规避安全风险。
0x02 样本动态分析攻击者使用伪装成“顺丰速运”的恶意钓鱼邮件下发钓鱼链接。 该钓鱼链接指向MediaFire下载GuLoader恶意软件压缩包(链接信息部分隐藏)。 hxxps[:]//www[.]mediafire[.]com/file/ifu***empc/SF342012300120.7z/file 一旦用户下载该恶意软件压缩包,并且无意执行恶意程序,整个恶意流程被立即激活。 恶意代码进入shellcode首先进行一系列的调试和虚拟化环境的检测,shellcode入口如下: 加载DLL以及获取即将调用的函数地址(例如:ZwQueryVirtualMemory) 调用ZwQueryVirtualMemory在内存0x10000 ~ 0x7FFFF000范围内通过校验HASH的方式比较字符串。 例如查找字符串“vmtoolsdControlWndClass” 一旦检测到虚拟机环境,将对以下字符串进行解密,并调用MessageBoxA进行输出。 枚举顶层串口句柄,当句柄值小于0x0C时结束进程。 调用ZwProtectVirtualMemory函数修改DbgBreakPoint和DbgUiRemoteBreakin所在内存地址的属性,并修改它们的函数实现。 修改DbgBreakPoint函数字节码。 修改DbgUiRemoteBreakin函数字节码。 调用ZwSetInformationThread函数,利用传入参数HideThreadFromDebugger(对应数值:0x11)隐藏进程。 调用CreateFile函数,以GENERIC_READ(对应数值:0x80000000)方式打开指定路径(C:\ProgramData\qemu-ga\qga.state)文件,检测QEMU环境。 利用cpuid指令检测虚拟机。 调用ZwGetContextThread函数获取进程上下文并比较DR寄存器的值判断是否处于调试环境。 然后以挂起的方式开启傀儡进程。 一边检测DR寄存器一边执行一系列操作将msvbvm60.dll映射到傀儡进程并注入shellcode然后恢复进程。 恢复执行傀儡进程后,重新执行前文的所有检测,然后进行联网操作,下载RAT载荷解密执行。 0x03 防护建议
360-CERT建议用户安装360安全卫士进行防护
用户可以在指定路径创建特定文件对该版本GuLoader恶意软件进行临时防护 C:\ProgramData\qemu-ga\qga.state
0x04 IOCs
4F97FF7B772E9C31D9620EC8110A3094 5FEEDDE4790C300C6CEBC20684F79987
hxxps[:]//www[.]mediafire[.]com/file/ifuhhu63u37empc/SF342012300120[.]7z/file hxxps[:]//www[.]mediafire[.]com/file/6mukpc6m24uifiu/fresh_rLANVHaEFt60[.]bin/file |