一、 概述

DLL侧加载是一种利用Windows DLL加载机制,将恶意DLL伪装成合法DLL放置在DLL搜索路径上,由合法程序自动加载后实施恶意行为的攻击技术。这种攻击技术利用了防护软件对合法进程的信任,使得DLL的恶意行为不会触发告警,绕过了防护软件的检测。这种信任机制对降低误报起到重要作用。例如,输入法软件需要将自己的DLL注入到其他软件的内存中,防护软件显然不能将输入法标识为病毒,为了实现这一点,防护软件会检测输入法的签名信息,如果具备合法签名,则不予告警。黑客利用DLL侧加载机制,让受信任软件主动加载执行恶意代码,相比于主动注入,不需要调用VirtualAllocEx这类敏感API,被防护软件告警的几率也更低。

DLL侧加载变种繁多,但也具有一些共同特点。首先,一定存在可信进程,这通常是一个具备高可信度签名的exe。其次,可信进程在启动或运行阶段加载一系列DLL,在此阶段黑客编写的恶意DLL也会被加载,恶意DLL一般不具备合法签名,或者DLL签名和主程序不一致。有些时候为了不影响主程序的运行,还会实现DLL转发,即存在一个白DLL和一个黑DLL,它们之间的导出函数高度一致,黑DLL接受调用请求,转发给白DLL。

针对此类攻击行为,天穹沙箱在近期适配了静态与动态层面的DLL侧加载检测。利用该功能,沙箱既可以在静态层面检测压缩包内是否包含疑似白加黑样本,也可以在动态层面检测可信签名进程是否存在DLL侧加载行为。

二、 样本信息

该样本静态信息如下:

  • SHA1:CCC382B93B842BD916C703A48E30B548CD843ABD
  • 文件名:Huawei JD.zip
  • 文件类型:ZIP
  • 文件大小:317.63 KB

通过对样本的初步分析,我们可以发现压缩包内包含四个文件,其中一个为具有高可信签名的Huawei JD (Job Description).exe,其签名者为Shanghai Ccwork Network Technology Co., Ltd. ,另一个为签名不合法的libcef.dll,其签名者也为Shanghai Ccwork Network Technology Co., Ltd. ,但实际为自签证书,另外两个文件则分别为cfg.dat和cfg.ini文件:

图1 样本签名

根据上述分析,该样本极可能是一个DLL侧加载样本。

三、 样本分析

1、样本投递

天穹沙箱开箱即用,进入开始分析页面,直接点击投递样本即可,沙箱会自动针对压缩包类样本智能选择合适的分析环境:

2

图2 样本投递

2、白加黑检测

进入压缩包分析页面,在深度威胁分析部分可以看到,通过白加黑检测成功检出样本使用DLL侧加载技术,在检测信息中描述了可信签名程序、被利用DLL、供应商、已被利用的可执行文件名和被利用的可执行文件路径信息:

image-20240319105723937

图3 白加黑检测

3、威胁配置提取

查看Huawei JD (Job Description).exe分析结果,在威胁配置信息部分可以看到,威胁配置识别样本为CobaltStrike家族,并且提取到了C2等重要配置信息。查看libcef.dll的分析结果可以看到相同的配置信息,这说明本样本的黑DLL是一个CobaltStrike样本:

image-20240319105929954

图4 威胁配置信息

4、静态分析

首先检查Huawei JD (Job Description).exe的导入表,可发现导入表内导入了libcef.dll,导入函数中包含cef_api_hash接口,根据DLL加载的优先级,显然其会优先加载同级目录下的黑DLL:

image-20240319112326862

图5 可信签名EXE导入表

分析libcef.dll,进入cef_api_hash接口,可以看到内部调用了一个函数,跟进可发现函数会打开并读取同级目录的ctf.dat文件,随后将读取的内容解密,并作为shellcode执行:

image-20240319113020916

图6 读取、解密并执行shellcode

通过Yara检测,解密后的Shellcode为CobaltStrike RAW文件:

image-20240319113808301
图7 shellcode定性

5、动态行为

接着查看动态行为类目,我们可以看到样本加载可疑模块libcef.dll,疑似通过DLL侧加载技术执行恶意代码:

image-20240319110601005

图8 使用DLL侧加载技术

结合上述静态分析,可以确定样本确实利用了DLL侧加载技术实施恶意行为。

最后,样本尝试使用HTTP协议上线C2:

image-20240319111235166

图9 C2上线

四、IOC

1
2
3
4
5
6
7
CCC382B93B842BD916C703A48E30B548CD843ABD    Huawei JD.zip
80135DC923FCE82D450678B8A79612B8CD63E37E Huawei JD (Job Description)
7A1DD158579D620FF196B579139CD385AED2D8A1 libcef.dll
5C91C9129FE8624767134E9F04368AAFCF3754F1 cfg.dat
72B5070DBC972A3B7E0563ED105902957784A2D3 cfg.ini
https[:]//img[.]kuaike.cn.dsa.dnsv1.com.cn C2域名地址
61[.]170.84.253 C2域名解析IP地址

注意:截止发稿时,该链接已死亡。

参考案例链接天穹沙箱报告 (内部访问)

五、 防护建议

为防止DLL侧加载攻击,可以采取以下措施:
1、使用数字签名技术对DLL文件进行签名,确保DLL文件的完整性和可信性。
2、禁止程序加载非系统默认路径下的DLL文件,限制DLL文件的搜索路径。
3、对系统进行定期漏洞扫描和修补,及时更新补丁程序以避免被攻击者利用漏洞进行攻击。
4、加强对系统管理员权限的控制,确保只有授权的用户才能够对系统进行修改和配置。
5、在系统中部署防病毒软件和网络安全设备,及时检测和清除恶意软件。

六、 技术支持与反馈

星图实验室深耕沙箱分析技术多年,致力于让沙箱更好用、更智能。做地表最强的动态分析沙箱,为每位样本分析人员提供便捷易用的分析工具,始终是我们追求的目标。各位同学在使用过程中有任何问题,欢迎联系我们。

1


天穹沙箱支持模拟14种CPU架构的虚拟机,环境数量50+,全面覆盖PC、服务器、智能终端、IoT设备的主流设备架构形态。在宿主机方面,除了Intel/AMD的x86架构CPU和CentOS操作系统之外,天穹沙箱支持海光、飞腾、鲲鹏等x86、ARM架构国产CPU和银河麒麟、中科方德等信创操作系统。

天穹沙箱系统以云沙箱、引擎输出、数据接口等多种形式服务于公司各个业务部门,包括天眼、终端安全、态势感知、ICG、锡安平台、安服等。

天穹内网地址(使用域账号登录):https://sandbox.qianxin-inc.cn
天穹公网地址(联系我们申请账号):https://sandbox.qianxin.com