安全研究人员发现一种此前未被记录的Linux恶意软件,名为Quasar Linux RAT (QLNX),该恶意软件专门针对开发人员和DevOps环境。恶意代码可以窃取凭据、记录键盘输入、篡改文件、监控剪贴板活动,并创建网络隧道进行远程访问。
专家警告称,该恶意软件会攻击软件开发工作流程中使用的系统,从而对供应链构成严重威胁。
Quasar Linux RAT (QLNX) 是一款功能全面的 Linux 植入程序,它结合了远程访问功能以及高级规避、持久化、键盘记录和凭证窃取等特性。该恶意软件将 PAM 后门和 LD_PRELOAD rootkit 的嵌入式 C 源代码以字符串字面量的形式嵌入到二进制文件中。
趋势科技发布的报告指出:“它使用动态编译工具在目标主机上编译 rootkit 共享对象和 PAM 后门模块 gcc,然后通过 /etc/ld.so.preload 部署工具将其部署到系统范围内进行拦截。”
QLNX 是一款功能强大的 Linux 远程访问木马,它直接从内存运行以逃避检测,利用 eBPF 隐藏自身活动,清除日志,并检查自身是否运行在容器化环境中。它通过恶意 PAM 模块收集大量信息,包括系统详情、剪贴板数据、shell 历史记录、SSH 密钥、Firefox 配置文件和凭据。
QLNX 通过加密通道与攻击者通信,并支持多种命令,包括远程 shell 访问、文件管理、代码注入、屏幕截图、键盘记录、SOCKS 代理和网络隧道。该恶意软件还包含多种持久化机制,使其能够在系统重启后继续存在,并长期控制受感染的 Linux 系统。
QLNX 是一款复杂的 Linux 恶意软件,旨在完全在内存中运行,避免在磁盘上留下任何痕迹。
执行后,它会使用 `mk` 命令将自身复制到 RAM 中的一个文件中,删除原始二进制文件,然后使用 ` mk` 或 ` mk`(作为备用方案)memfd_create直接从内存重新启动。它使用环境变量 `--no-remove` 来防止无限循环执行。execveat/proc/self/fd/<memfd>_MFD_RE
该恶意软件随后对受感染系统进行分析,检查权限、内核版本、SELinux 状态、容器化情况、GCC 可用性、X11 访问权限以及对进程注入或键盘记录的支持情况。基于这些结果,它会选择性地启用某些功能。
为了逃避检测,QLNX 会将自身伪装成合法的内核线程,例如 `src`、`dist`[kworker/0:0]和 `dist`,并重写`.htm` ps、top`.htm` 和 `.htm`中可见的进程元数据。它还会移除取证环境变量,并通过在 `.htm` 中创建一个伪造的 X11 锁文件来防止出现多个实例。
QLNX 建立连接后,会初始化 58 个命令处理程序,并通过自定义的基于 TLS 的协议、HTTPS 或 HTTP 连接到其 C2 服务器。
它会发送一个包含系统详细信息、权限级别、地理位置、机器指纹、主机名和网络数据的信标。该恶意软件支持广泛的入侵后功能,包括 shell 访问、文件管理、持久化、凭据窃取、SSH 横向移动、屏幕截图、键盘记录、rootkit、SOCKS 代理、端口转发、日志擦除、PAM 凭据钩子、eBPF 隐藏和内存 BOF 执行。
QLNX 支持三种通信通道:原始 TCP、HTTPS 和 HTTP,它们都使用相同的二进制命令协议。TCP 和 HTTPS 使用 TLS 进行保护,而 HTTP 在分析或回退场景中以明文形式使用。
每个会话都以 4 字节的魔数“QLNX”(0x51 4C 4E 58)开始,该魔数用于标识和初始化协议。在 TCP/TLS 模式下,它嵌入在初始签入数据包中;在 HTTPS/HTTP 模式下,它作为独立的有效负载发送或编码在请求中。之后,服务器会响应会话状态数据(例如,Cookie 或 ID)。
在默认的原始TLS模式下,QLNX在禁用证书验证后使用自定义的长度前缀二进制协议。四步握手之后是完整的双向通信,随后建立一个持久的命令循环。
对于 HTTP/HTTPS 协议,该恶意软件使用 POST 请求发送 Base64 编码的数据,并使用 GET 请求每五秒轮询一次命令。会话跟踪依赖于服务器生成的十六进制 ID,该 ID 通过 URL 和 Cookie 传递。在联系 C2 服务器之前,它会查询 ip-api.com 以获取地理位置数据,该数据与从系统标识符派生的机器指纹一起包含在初始注册数据包中。
注册完成后,服务器会发出 ACK 和确认数据包,然后才会启用命令执行。如果没有可用命令,则响应为空;否则,Base64 编码的有效载荷将被解码,并通过处理程序表进行分发,在本地执行,并将结果返回给 C2 服务器。
持久化子系统包含七种机制,例如 systemd 服务、cron 作业、初始化脚本、XDG 自动启动项和基于 LD_PRELOAD 的注入。工件带有“QLNX_MANAGED”标签以便跟踪。
LD_PRELOAD 持久化机制尤其具有侵略性:它会将编译后的共享库注入到所有动态链接进程中,确保每次程序执行都会重新感染。即使是像ls`or` 这样简单的命令ps,如果预加载条目仍然存在,也能使恶意软件重新生成。
QLNX 还实现了两个可在目标系统上编译的 PAM 后门,从而能够窃取凭证和拦截身份验证。日志存储在隐藏文件中,并可选择将其导出。
报告指出:“QLNX 内置了一个带有内联钩子的 PAM 后门,可以在身份验证期间拦截明文凭证。它利用硬编码的主密码 O$$f$QtYJK 和 XOR 加密的凭证窃取技术来实现这一目的 。”
用户空间 rootkit 通过 LD_PRELOAD 钩取 libc 函数来隐藏文件、进程和二进制文件,而可选的 eBPF 控制器则操纵内核映射,在内核级别隐藏进程、文件和端口。
最后,凭证窃取模块会提取 SSH 密钥、浏览器数据、云令牌、开发人员凭证、系统密钥和剪贴板内容,从而实现对开发和云环境的完全控制。
QLNX 包含一个点对点 (P2P) 网状网络功能,可将受感染的主机连接起来,从而将单个植入程序变成一个分布式网络。这种设计增强了恶意软件的韧性,因为即使其部分控制基础设施遭到破坏,恶意软件仍能保持通信和协调,这使得从环境中彻底清除恶意软件变得更加困难。
报告总结道:“QLNX植入程序旨在长期隐蔽运行并窃取凭证。其危险之处并非在于任何单一功能,而在于其各项功能如何环环相扣,构成一套完整的攻击流程:入侵系统、从磁盘擦除数据、通过六种冗余机制持久化、在用户空间和内核层面隐藏自身,最终窃取最重要的凭证。rootkit、能够静默拦截明文密码的PAM后门,以及允许植入程序之间相互中继的P2P网状网络,所有这些因素共同增加了检测和清除的难度。”
技术报告:
《Quasar Linux (QLNX)——供应链中的隐形立足点:深入剖析一款功能齐全的 Linux 远程访问木马,它具备 Rootkit、PAM 后门和凭证窃取功能》
https://www.trendmicro.com/en_us/research/26/e/quasar-linux-qlnx-a-silent-foothold-in-the-software-supply-chain.html
新闻链接:
https://securityaffairs.com/191898/malware/quasar-linux-rat-qlnx-a-fileless-linux-implant-built-for-stealth-and-persistence.html