在过去的一个月里,我们调查了一次网络间谍攻击,我们将其归因于 Earth Freybug(也称为APT41的子集)。 Earth Freybug 是一个网络威胁组织,至少自 2012 年以来一直活跃,专注于间谍活动和经济动机活动。据观察,该攻击针对的是不同国家不同部门的组织。 Earth Freybug 攻击者使用多种工具和技术,包括 LOLBins 和自定义恶意软件。本文深入研究了 Earth Freybug 攻击者使用的两种技术:动态链接库 (DLL) 劫持和应用程序编程接口 (API) 脱钩,以防止子进程被我们发现并命名为的新恶意软件监控联合国APIMON。
攻击流程背景
此活动中使用的策略、技术和程序 (TTP)与 Cybereason 发表的文章中描述的活动类似。在此事件中,我们观察到vmtoolsd.exe进程使用schtasks.exe创建远程计划任务。执行后,这将在远程计算机中启动预先部署的cc.bat 。
图 1. Earth Freybug 攻击链
vmtoolsd.exe是 VMware Tools 的一个组件,称为 VMware 用户进程,它安装并在来宾虚拟机内运行,以促进与主机的通信。同时,schtasks.exe是Windows的一个组件,称为任务计划程序配置工具,用于管理本地或远程计算机中的任务。根据我们从遥测中观察到的行为,未知来源的代码被注入到启动 schtasks.exe 的vmtoolsd.exe中。需要注意的是,vmtoolsd.exe和schtasks.exe都是合法文件。尽管此事件中vmtoolsd.exe中的恶意代码的来源尚不清楚,但已记录感染情况,其中合法应用程序中的漏洞通过易受攻击的外部服务器被利用。
图 2. 用于执行任务计划程序配置工具的命令行
第一个用于侦察的cc.bat
一旦触发计划任务,就会在远程计算机中执行先前部署的批处理文件%System%cc.bat 。根据我们的遥测数据,该批处理文件启动命令来收集系统信息。执行的命令包括:
powershell.exe -command "Get-NetAdapter |select InterfaceGuid"
arp -a
ipconfig /all
fsutil fsinfo drives
query user
net localgroup administrators
systeminfo
whoami
netstat -anb -p tcp
net start
tasklist /v
net session
net share
net accounts
net use
net user
net view
net view /domain
net time \127.0.0.1
net localgroup administrators /domain
wmic nic get "guid"
通过这些命令收集的系统信息收集在名为%System%res.txt 的文本文件中。
完成此操作后,将设置另一个计划任务来在目标计算机中执行%Windows%Installercc.bat,从而启动后门。
第二次 cc.bat 劫持用于 DLL 侧面加载
第二个cc.bat值得注意的是,它利用加载不存在的库的服务来旁加载恶意 DLL。在本例中,服务是SessionEnv。有关该技术如何工作的详细技术描述可以在此处找到。在此技术中,第二个cc.bat首先将先前删除的%Windows%Installerhdr.bin复制到%System%TSMSISrv.DLL。然后,它会停止SessionEnv服务,等待几秒钟,然后重新启动该服务。这将使服务加载并执行文件%System%TSMSISrv.DLL。
TSMSISrv.DLL完成的两个令人感兴趣的操作是删除并加载名为Windows%_{5 到 9 随机字母字符}.dll 的文件,以及启动cmd.exe进程,其中也注入了相同的删除的 DLL。根据遥测数据,我们注意到这个 cmd.exe 实例用于执行来自另一台计算机的命令,从而将其变成后门。我们将在服务和cmd.exe中加载的删除的 DLL称为 UNAPIMON。
引入 UNAPIMON 用于防御规避
我们在这次攻击中观察到的一个有趣的事情是使用了一种特殊的恶意软件,我们将其命名为 UNAPIMON。从本质上讲,UNAPIMON 采用防御规避技术来防止子进程受到监视,我们将在后续部分中详细介绍。
恶意软件分析
UNAPIMON 本身很简单:它是一个用 C++ 编写的 DLL 恶意软件,既没有加壳也没有混淆;它不加密保存单个字符串。
在DllMain函数中,它首先检查它是否正在加载或卸载。当DLL被加载时,它会创建一个事件对象以进行同步,并启动挂钩线程。
如图 3 所示,挂钩线程首先从kernel32.dll获取函数CreateProcessW的地址,并保存该地址以供以后使用。CreateProcessW是可用于创建进程的 Windows API 函数之一。然后,它使用 Microsoft Detours 安装一个钩子,Microsoft Detours 是 Microsoft 开发的开源软件包,用于监视和检测 Windows 上的 API 调用。
图3. Hooking thread disassembly
此机制将从加载该 DLL 的进程中对CreateProcessW的任何调用重定向到挂钩。
挂钩函数使用先前保存的地址调用原始CreateProcessW来创建实际进程,但在创建标志参数中使用值CREATE_SUSPENDED (4)。这有效地创建了进程,但其主线程被挂起。
图 4. 使用“CREATE_SUSPENDED”调用“CreateProcessW”
然后它会遍历硬编码的 DLL 名称列表,如图 5 所示。
图 5. DLL 名称列表
对于子进程中加载的列表中的每个 DLL,它会创建 DLL 文件的副本到%User Temp%_{5 到 9 个随机字母字符}.dll(以下称为本地副本) ,然后使用 API 函数LoadLibraryEx和参数DONT_RESOLVE_DLL_REFERENCES (1) 加载该库。这样做是为了防止出现本文所述的加载错误。
图 6. 复制并加载 DLL
加载 DLL 的本地副本后,它会继续在子进程中创建具有相同名称的已加载 DLL 映像的本地内存副本。为了确保两个 DLL 相同,它会比较标头中校验和字段的值以及导出表中名称指针数量的值。
一旦验证相同,它将遍历导出表中的所有导出地址。对于每个导出的地址,它会检查以确保该地址指向可执行内存页中的代码,并且起始代码已被修改。具体来说,它检查内存页保护的值是否为PAGE_EXECUTE (0x10)、PAGE_EXECUTE_READ (0x20)或PAGE_EXECUTE_READWRITE (0x40)。如果导出地址中的第一个字节是 0xE8 (CALL)、0xE9 (JMP),或者其前两个字节不等于加载的本地副本中相应的前两个字节,则检测到修改。此外,它还验证导出地址的名称不是RtlNtdllName,它包含数据而不是可执行代码。
图 7. 导出的地址检查
如果导出的地址通过了这些测试,则会将其添加到要取消修补的列表中。
一旦列表中的所有 DLL 名称都已处理完毕,它就会遍历未修补列表中的每个地址。对于每个地址,它将 8 个字节从加载的本地副本(原始)复制到先前已修改的远程地址。这有效地删除了应用于导出地址的任何代码补丁。
图 8. 解除循环修补
最后,它卸载并删除随机命名的 DLL 本地副本并恢复主线程。当恶意软件被卸载时,它会从CreateProcessW中删除钩子。
影响
观察 UNAPIMON 的行为以及它在攻击中的使用方式,我们可以推断其主要目的是在任何子进程中取消关键 API 函数的挂钩。对于沙箱系统等通过hook实现API监控的环境,UNAPIMON会阻止子进程被监控。因此,该恶意软件可以允许任何恶意子进程在其行为未被检测到的情况下执行。
该恶意软件的一个独特而显着的特点是其简单性和独创性。它对现有技术(例如 Microsoft Detours)的使用表明,任何简单且现成的库如果创造性地使用,都可能被恶意使用。这也显示了恶意软件编写者的编码能力和创造力。在典型情况下,是恶意软件进行挂钩。然而,在本例中情况恰恰相反。
安全建议
在这个特定的 Earth Freybug 攻击中,威胁行为者使用管理员帐户,这意味着威胁行为者知道管理员凭据,从而使组策略毫无用处。防止这种情况在环境中发生的唯一方法是良好的内务管理,其中包括频繁的密码轮换、限制实际管理员对管理员帐户的访问以及活动日志记录。
在这起事件中,数据泄露是使用我们无法控制的第三方协作软件平台完成的。即使撤销了可通过协作软件访问的受影响文件夹的写入权限,威胁参与者也可以简单地覆盖它,因为从系统的角度来看,威胁参与者是管理员。
用户应限制管理员权限并遵循最小权限原则。拥有管理员权限的人越少,恶意行为者可以利用的系统漏洞就越少。
结论
Earth Freybug 已经存在相当长一段时间了,而且他们的方法随着时间的推移而不断演变。从我们从这次攻击中观察到的情况可以明显看出:我们得出的结论是,他们仍在积极寻找改进技术的方法,以成功实现其目标。
这种攻击还表明,如果应用正确,即使是简单的技术也可以有效地使用。将这些技术应用于现有的攻击模式会使攻击更难以发现。安全研究人员和 SOC 不仅必须密切关注恶意行为者的先进技术,还必须关注容易被忽视的简单技术。
妥协指标
参考链接: https://www.trendmicro.com/en_us/research/24/d/earth-freybug.html
图片来源网络侵权可联系删除