导语
供应链攻击是指通过目标所使用的软件、工具、服务商等方式对目标进行网络攻击的行为,随着国家、企业对网络安全的重视程度越来越高,通过传统钓鱼、渗透等手法入侵一家公司变得越来越困难,因此供应链攻击成为了企业网络安全的新兴威胁。
安全解决方案公司Check Point的《网络攻击趋势:2022年安全报告》指出:2021年供应链攻击同比骤增650%。近年来,多起供应链攻击事件造成的恶劣影响,也让软件供应链的固有风险显露无遗,近几年影响巨大的供应链攻击事件有:
2015年 通过污染非官方渠道的Xcode传播XcodeGhost病毒导致大量苹果app感染。
2017年 NetSarang公司的Xshell软件被捆绑Gh0st后门导致大量公司被入侵。
2021年 远程IT服务管理软件Kaseya供应链污染事件,导致其大量用户遭受勒索软件攻击。
2021年 IT管理软件供应商SolarWinds供应链污染事件,导致微软、FireEye等大量公司被入侵。
随着企业供应链安全监管力度的加大和员工安全意识的增强,供应链攻击正向着变种多、隐蔽强的趋势发展。攻击手法包括但不限于:
通过捆绑,重打包等方式污染非官方渠道的开发、运维工具。
通过入侵开发、运维工具公司直接篡改工具源代码。
通过入侵具有远程管理权限的工具厂商。
我们结合近期的Navicat的攻击案例,针对第一种攻击方式:通过捆绑,重打包等方式污染非官方渠道的开发、运维工具进行探讨,我们建议使用如下防御思路:
根据公司的开发、运维需要对软件进行统一采购,在企业内部建立企业软件商店。
对于常用的开发、运维工具,加强员工安全教育,让员工在企业内部的软件商店或软件官网进行下载。
企业要在终端或服务器部署零信任、XDR等安全产品,此类安全产品不是基于软件的签名等静态特征检测,而是基于软件的异常行为进行检测和风险阻拦,可有效防御软件供应链攻击。
接下来就对一起捕获的样本(利用知名运维软件Navicat进行供应链攻击)进行详细分析,希望能对大家有所帮助。
1.样本的攻击流程:
近期我们发现有攻击者精心构造了多个迷惑性很高的Navicat官方网站,通过SEO优化抢占搜索结果,散播多种捆绑木马的Navicat软件,进行供应链攻击。一旦开发、运维人员被攻击成功,会对公司的网络安全构成极大的威胁。Navicat是一款知名的数据库管理软件、具有非常广泛的用户,用以方便管理 MySQL、Oracle、PostgreSQL、SQLite、SQL Server、MariaDB 和 MongoDB 等不同类型的数据库,是各类开发、运维从业人员的常用工具软件。以下是其中一个木马的具体攻击流程图:
图1. 仿冒navicat供应链攻击流程示意图
2.精心构造的Navicat下载站
2.1 水坑攻击:
攻击者针对国内用户精心构造了虚假的Navicat中文下载站,站点中包含几乎所有的Navicat公司产品,所有产品均捆绑了木马。伪造的网站包括但不限于navicat-cn.com、navicat-zh.com,系列网站域名均于近半年注册,还做了SEO优化,通过搜索引擎搜索navicat很容易被引流到该网站。此外,我们在多个下载站提供的navicat中也发现了该木马的多种不同变种。
图2. 仿冒的navicat官网之一
3.木马详细分析
目前有多款navicat捆绑有木马,此外其他行业软件也有少部分捆绑了相似木马,以下针对navicat-zh.com网站下载的捆绑了木马的Navicat进行详细分析
3.1 初始木马植入
安装包是攻击者重新打包的,与正常的安装包在行为上并没有多大区别,因此几乎所有的安全软件都不会拦截该软件安装包,安装后木马和正常的navicat程序一同被释放到软件安装目录,文件名也做了深度伪装,看起来均与软件本身相关,十分隐蔽。而安装过程在桌面、开始菜单释放的快捷方式则直接指向木马文件,当用户每次双击快捷方式启动navicat的时候率先启动了木马,并由木马启动真正的navicat程序,此启动过程用户也难以察觉。
图3. 初始入侵示意图
3.1.1 安装过程会释放木马文件Navicat-version.dll、NAVICATlaunch.exe到安装目录中,并在桌面上释放Navicat Premium.lnk文件,该lnk文件直接指向木马文件和命令如下:
C:Program Files (x86)Navicat Premium 12NAVICATlaunch.exe" Navicat-version.dll cYreenQillmnavicat01
图4. 快捷方式指向木马文件
3.1.2 木马使用dll侧加载(白加黑)技术,NAVICATlaunch.exe带有正常数字签名(Zhuhai Kingsoft Office Software Co.,Ltd)的白文件,该文件会加载通过命令行传入的dll名称和接口函数名(功能类似于rundll32)。
图5. 白文件的有效数字签名信息
3.1.3 Navicat-version.dll使用伪造的数字签名, vmp加壳,并将功能代码全部虚拟化加密,开启反调试功能。
图6. 恶意dll的伪造数字签名信息
3.1.4 恶意dll启动后主要功能是连接C2:global.apple-cdn.com:8081,先接收payload大小后在内存中申请相应大小的内存,再接收payload,解密后作为shellcode执行。
图7. 下载payload过程数据包信息
3.1.5 解密后得到一个PE文件,在内存中展开并调用其fuckyou接口。
图8,下载payload解密出PE文件并内存加载调用其fuckyou接口
图9,内存加载的PE文件
3.2 内存加载远控木马gh0st
经分析,内存加载的为远控控制木马,C2:jp.aws-oss[.]com,该木马与开源木马gh0st具有较高的相似性,功能与gh0st相似,包括键盘记录、文件管理、插件加载等功能。分析过程中,我们发现攻击者会向重点目标下发更加高级的远控木马PlugX。
3.2.1 连接C2成功后会发送机器名、系统版本、安装日期、木马版本、备注、杀软信息等上线,上线后接收控制端指令实现远程控制。
图10. 加密前的木马上线包内容
3.2.2 木马支持远控指令及对应的功能如下表:
指令
功能描述
0 重启、关机、注销等操作
1 卸载木马自身
2 修改host
3 修改group:分组信息
4 删除系统日志
5 下载执行文件
6 下载执行文件后删除
7 运行程序
8 隐藏窗口运行程序
9 接收文件
0xA MessageBox弹窗
0xB 查找进程
0xC 查找窗口
0xD 加载代理插件,调用OpenProxy接口
0xE 关闭代理
0xF 加载插件,调用PluginMe接口
...
表1. gh0st 木马远控指令及对应功能
图11. gh0st远控命令分发相关代码
3.2.3 通过执行cmdshell命令向重点目标下发高级木马,执行curl命令,从139.5.200.6:13621下载了iTunesHelper.exe、CoreFoundation.dll、Apple.xml三个文件到C:UsersPublic目录并启动iTunesHelper.exe。
图12. 下发高级木马plugx行为日志
3.3 向重点目标下发后渗透远控木马plugX分析
在分析过程中,我们发现攻击者会向感兴趣的目标机器下发高级木马Plugx,该木马是一款功能十分强大的远程控制木马,常用于APT攻击,攻击者通过gh0st远控使用curl命令下发的三个恶意文件,是plugx木马经典的攻击组合,白文件+黑dll加载器+加密的payload数据文件,经分析此版本Plugx与之前公开曝光的相比绝大多数行为一致,但多了如下新功能:1)自动横向移动的线程,该线程会自动对内网共享机器进行横向渗透,将自身复制到目标机器运行。2)向lsass.exe注入BootCamps.sys文件,但分析过程中并未获取到该文件,疑似用于域渗透。
图13. PlugX木马执行示意图
3.3.1 下发的同样使用dll侧加载(白加黑)技术iTunesHelper.exe带有正常的数字签名(Apple Inc.),运行后会加载同目录下的CoreFoundation.dll。
图14. 白文件带有正常的数字签名
3.3.2 恶意dllCoreFoundation.dll启动后会读取同目录下的Apple.xml文件解密后作为shellcode执行,该文件PDB:C:UsersAdministratorDesktopCoreFoundationReleaseCoreFoundation.pdb。
图15. 读取并解密Apple.xml后执行shellcode相关代码
3.3.3 解密后的shellcode通过RtlDecompressBuffer解密出payload,经分析payload为Plugx木马,带有经典的PLUG标志。
图16. 代码中带有的大量PLUG特征标志
3.3.4 随后创建傀儡进程Synchost.exe和msdt.exe将payload注入进程中,根据命令行参数不同分别实现与C2:steam.Ladygaag.com通讯和执行远程控制功能。
图17. 注入相关代码
3.3.5 随后木马会将自身安装到
%ALLUSERSPROFILE%MicrosoftDiagnosisSquadcloud目录并创建服务持久化,具体配置信息如下图所示。
图18. plugx远控配置硬编码信息
3.3.6 与之前曝光的PlugX版本相比,多了自动横向移动线程,主要功能是自动查找内网中的共享机器,将木马拷贝到目标机器,并在目标机器启动目录中释放Update.vbs启动木马实现自动横移。
图19. 自动横移线程相关代码1
图20. 自动横移线程相关代码2
3.3.7 plugx远控的主指令及相关功能如下表:
指令功能描述
Disk 磁盘/文件操作,包括上传下载删除移动运行查找等
Nethood 枚举内网共享资源
Netstat 查询网络连接情况:TCP,UDP
Option 电源操作:关机、重启、锁屏、弹窗等
PortMap 端口映射
Process 进程操作:创建、枚举、结束进程操作
RegEdit 注册表操作:创建,删除、查询、修改等
Service 服务操作:创建删除查询修改等操作
Shell 启动CMDshell
SQL 数据库操作:列出数据库驱动,获取数据库信息,连接数据库
Telnet 启动telnet服务
表2. PlugX远控控制指令及功能描述表
图21. PlugX远控命令分发相关代码
3.4 附录IOC
1a3d2691eab8d1b95103ddd105fcdb49 CoreFoundation.dll
af52b1cd6f51da77b8f6f69c8e5eca0a Apple.xml
6ce6784df5fc5b8550c44f90382c2cdd iTunesHelper.exe
d5632e4fbc93bae9f05a1cd74f4057e9 Navicat_Premium_cs_x64..exe
8b58f37fefc0665fff67f2b8c7d45d2b NAVICATlaunch.exe
7dd07fff9d1d7aad98b1a00aabc3b12a Navicat-version.dll
jp.aws-oss.com
global.apple-cdn.com:8081
steam.Ladygaag.com
上一条:ChemDraw绘制窗口的基本操作
下一条:11月-12月 Minitab 公开课培训计划新鲜出炉!