时间 : 2022年07月19日 来源: 安天CERT
近日,安天CERT监测到一起针对Linux系统的破坏性攻击活动。恶意代码在系统时间2022年6月20日0时之后触发破坏功能,导致感染的用户因系统无法正常启动而感知到了恶意代码的存在。
该样本执行后,会将curl、top等系统命令劫持为恶意代码,并创建计划任务,实现持久化驻留。定时条件触发后,样本会尝试删除root账户、破坏启动扇区、系统引导文件和Linux内核,使系统无法正常启动,然后删除系统中的特定文件,破坏业务系统环境,最后清除日志,抹除痕迹。由于大部分Linux系统未进行有效防护,使恶意代码长期潜伏在系统中而未能及时发现。
根据样本代码中出现的汉字字符串内容,推测本次攻击的目标为国内人员。攻击者自称是“正大黑客组织”,但通过关联并未发现与该组织相关的其它信息,同时结合代码中的注释“fake information”(虚假信息)及语句结构,判断推断这段文字是攻击者伪造的,目的是转移视线,掩盖攻击者的真实身份。
经验证,安天智甲终端防御系统(简称IEP)Linux版本可实现对该木马的有效查杀和对用户终端的切实防护。
样本对应的技术特点分布图:
图2-1 技术特点对应ATT&CK的映射
具体ATT&CK技术行为描述表:
表2-1 ATT&CK技术行为描述表
ATT&CK阶段/类别 |
具体行为 |
注释 |
持久化 |
创建或修改系统进程 |
替换常用系统指令 |
持久化 |
执行流程劫持 |
替换系统自启动指令 |
持久化 |
利用计划任务/工作 |
创建计划任务 |
防御规避 |
混淆文件或信息 |
利用RC4算法加密脚本 |
防御规避 |
反混淆/解码文件或信息 |
内存中解密脚本 |
影响 |
删除账户权限 |
删除root账户 |
影响 |
损毁数据 |
删除日志文件和配置文件 |
影响 |
篡改可见内容 |
向登录显示器显示文本 |
影响 |
擦除磁盘 |
删除启动扇区 |
针对该破坏行动,安天建议企业采取如下防护措施:
(1)强化终端防护:安装反病毒软件,建议安装安天智甲终端Linux版本;
(2)加强SSH口令强度:避免使用弱口令,建议使用16位或更长的密码,包括大小写字母、数字和符号在内的组合,同时避免多个服务器使用相同口令;
(3)及时更新补丁:建议开启自动更新功能安装系统补丁,服务器、数据库、中间件等易受攻击部分应及时更新系统补丁;
(4)安天服务:若遭受恶意软件攻击,建议及时隔离被攻击主机,并保护现场,等待安全工程师对计算机进行排查。安天7*24小时服务热线:400-840-9234。
经验证,安天智甲终端防御系统(简称IEP)可实现对该恶意程序的有效查杀。
图3-1 安天智甲为用户终端提供有效防护
本次行动中,攻击者对受害者机器投放了9个样本,其中包含1个将系统指令替换成其它样本的伪装器样本和8个执行恶意功能的破坏型样本。
4.1.1 样本标签
表4-1 伪装器样本标签
病毒名称 |
Trojan/Linux.Dropper |
原始文件名 |
rep |
MD5 |
E88619E9EF1BF95AA683370D469B0809 |
处理器架构 |
Advanced
Micro Devices X86-64 |
文件大小 |
11.88
KB (12,160字节) |
文件格式 |
ELF |
时间戳 |
无 |
数字签名 |
无 |
加壳类型 |
无 |
编译语言 |
C/C++ |
VT首次上传时间 |
2022-06-26
04:46:32 UTC |
VT检测结果 |
7/55 |
4.1.2 详细分析
伪装器和破坏型样本被同时投放到系统中。伪装器执行后依次写入各个破坏型样本,将系统指令分别替换对应的样本,以替换sort指令的样本为例:伪装器用sort指令替换grub2-mkimage指令,再使用恶意代码替换sort指令,达到实现持久化的目的。在执行sort指令时,系统将在执行恶意代码时正常输出,用以迷惑用户。
图4-1 受影响的系统指令
图4-2 替换系统指令
表4-2 替换对应表
样本MD5 |
被替换的系统指令 |
被替换的grub2工具集指令 |
3ECC6A14AB062BA2C459A49CCC6DA6CA |
sort |
grub2-mkimage |
34394E6BBE41629AA645F01A949757FE |
scp |
grub2-mkrescue |
FE31F69BFC3CBA3E3148E0828A28AFB7 |
nmcli |
grub2-render-label |
CFF44FD00A926C112EA30CB8E2F1C7D8 |
du |
grub2-script-check |
56FC7CE52006F41E72255ED24E4CAA75 |
df |
grub2-fstest |
B8A94EBD8A7F1EEA8969D0FD4F88335D |
curl |
grub2-mknetdir |
AE0FF4BB866B2FD03D7019E2251AC24F |
top |
grub2-mkpasswd-pbkdf2 |
C1D496BE65D18BABF1252DF8CCF95660 |
find |
grub2-mkstandalone |
4.2.1 样本标签
表4-3 破坏型样本标签
病毒名称 |
Trojan/Linux.Dropper |
原始文件名 |
abs |
MD5 |
C1D496BE65D18BABF1252DF8CCF95660 |
处理器架构 |
Advanced Micro Devices X86-64 |
文件大小 |
526.25 KB (538,880字节) |
文件格式 |
ELF |
时间戳 |
无 |
数字签名 |
无 |
加壳类型 |
无 |
编译语言 |
C/C++ |
VT首次上传时间 |
2022-06-23 08:43:19 UTC |
VT检测结果 |
21/60 |
4.2.2 详细分析
为了规避杀毒软件的检测,攻击者利用开源混淆器将脚本编译成可执行文件,实现在内存中动态执行脚本。
图4-3 使用RC4解密脚本
当用户执行系统指令时,实际执行的为破坏型样本。样本执行后,调用grub2工具集的指令,此时实际执行的为系统指令。通过输出系统指令执行的结果,将样本伪装成系统正常程序,使受害者放松警惕。
图4-4 样本执行回显
创建计划任务,每月执行一次恶意代码。
图4-5 创建计划任务
判断执行时间晚于2022年6月20日0时,触发破坏行为。
图4-6 判断是否达成触发条件
攻击者在定时触发的基础上,增加了提前触发的功能。攻击者只需要再次投放样本并执行伪装器,就会将grub2工具集指令再次替换为top等指令,而这些指令已在第一次执行时被替换为恶意代码,因此最终grub2工具集被替换为恶意代码。当受害者执行系统指令时,文件名为grub2工具集指令的恶意代码启动,立即触发破坏行为,不受前面所述的日期限定。
图4-7 判断自身名称触发恶意功能
遍历各软件的日志目录并将日志删除。
图4-8 清空日志
尝试将密码“nofairsodestoryrebuild”写入用户root的密码本中。之后将root账户删除。
图4-9 修改密码和删除账户
通过um**nt、ls**k等指令强制卸载删除启动扇区,并删除/boot目录下的引导文件和内核文件。文件删除后,重新启动计算机将无法进入系统。
图4-10 删除启动文件导致GRUB无法执行系统载入
删除/etc文件夹下所有名称匹配*con*的文件,导致系统中软件的配置文件缺失,造成进一步的破坏。
图4-11 删除指定文件
样本将预设的中文内容输出到登录提示中。结合代码中的注释“fake information”(虚假信息)及语句结构判断,这段不完整的字符串可能是伪造和拼接的。通过关联,并未发现与“正大黑客组织”相关的其它信息,可确定这段文字是攻击者伪造的,目的是转移视线,掩盖攻击者的真实身份。
图4-12 写入登录提示的字符串
在本次捕获的样本中发现多处代码编写错误,具体如下:
1、攻击者试图向root账户中写入密码,但是参数设置错误。在下文的指令中删除了root账户,间接导致了写入的密码失效;
2、攻击者替换了find指令,在执行脚本中的find指令时引起阻塞循环,导致后续指令无法执行;
3、当攻击者在2022年6月20日之前触发恶意代码时,grub2工具也被替换为恶意代码。由于脚本编写失误,此条件被触发后将循环执行恶意代码,导致系统资源被耗尽。
关于本攻击事件的背后逻辑推演:
1、根据样本代码中出现的汉字字符串内容,推测本次攻击的目标为国内人员;
2、在本次捕获的样本中未发现横向移动、窃密回传等操作,推测攻击者以破坏系统正常运行为目的。结合定时触发,推测攻击在触发事件之前已经开始,攻击者通过定时触发的方式,在触发时间之前手动感染尽可能多的主机,以造成更大的破坏效果。
3、样本中大量的逻辑错误表明攻击者水平不高,载荷尚不成熟。
本次捕获的样本将系统命令劫持为恶意代码,并创建计划任务实现持久化,定时触发破坏功能,导致系统无法启动并破坏业务系统数据,对数据安全产生极大威胁。由于目前未获取到更多的上下游信息,无法对攻击者的入侵方式进行判定。因此,建议用户做好常规的终端安全防护工作,安装终端防御软件,同时将重要数据在异地、多地进行安全备份,作为数据安全的有力保障。
3ECC6A14AB062BA2C459A49CCC6DA6CA |
E88619E9EF1BF95AA683370D469B0809 |
34394E6BBE41629AA645F01A949757FE |
FE31F69BFC3CBA3E3148E0828A28AFB7 |
CFF44FD00A926C112EA30CB8E2F1C7D8 |
56FC7CE52006F41E72255ED24E4CAA75 |
B8A94EBD8A7F1EEA8969D0FD4F88335D |
AE0FF4BB866B2FD03D7019E2251AC24F |
C1D496BE65D18BABF1252DF8CCF95660 |