Packagist 上的虚假 Laravel 包可在 Windows、macOS 和 Linux 上部署远程访问木马

2026-03-06 02:28:31 1 29

网络安全研究人员发现, 恶意 Packagist PHP 软件包伪装成 Laravel 实用程序,充当跨平台远程访问木马 (RAT) 的通道,该木马可在 Windows、macOS 和 Linux 系统上运行。





网络安全研究人员发现, 恶意 Packagist PHP 软件包伪装成 Laravel 实用程序,充当跨平台远程访问木马 (RAT) 的通道,该木马可在 Windows、macOS 和 Linux 系统上运行。

软件包名称如下所示:
nhattuanbl/lara-helper(37次下载)
nhattuanbl/simple-queue(29次下载)
nhattuanbl/lara-swagger(49次下载)

据 Socket 称,软件包“nhattuanbl/lara-swagger”本身并未直接嵌入恶意代码,但它将“nhattuanbl/lara-helper”列为 Composer 依赖项 ,从而导致远程访问木马 (RAT) 的安装。这些软件包仍然可以从 PHP 软件包注册表中下载。

经发现 lara-helper 和 simple-queue 都包含一个名为“src/helper.php”的 PHP 文件,该文件利用控制流混淆、编码域名、命令名称和文件路径以及为变量和函数名称使用随机标识符等技术,使静态分析变得复杂。

安全研究员库什·潘迪亚表示:“一旦加载完毕,有效载荷就会连接到 helper.leuleu[.]net:2096 的 C2 服务器,发送系统侦察数据,并等待命令——从而使操作员能够完全远程访问主机。”

这包括发送系统信息和解析从 C2 服务器接收的命令,以便在受感染主机上执行。通信通过 TCP 使用 PHP 的 stream_socket_client() 函数进行。支持的命令列表如下:

ping 每 60 秒自动发送一次心跳信号
info 用于向 C2 服务器发送系统侦察数据
cmd 用于运行 shell 命令
PowerShell 用于运行 PowerShell 命令
run 用于在后台运行 shell 命令
screenshot 使用 imagegrabscreen() 函数捕获屏幕
download 从磁盘读取文件
upload 上传文件到磁盘,并授予所有用户读取、写入和执行权限
stop 连接至套接字,随后退出


Pandya 表示:“对于 shell 执行,远程访问木马会探测 disable_functions 函数,并从以下方法中选择第一个可用的方法:popen、proc_open、exec、shell_exec、system、passthru。这使得它能够抵御常见的 PHP 安全加固配置。”

虽然 C2 服务器目前无响应,但远程访问木马 (RAT) 配置为每15秒重试连接,形成持续循环,构成安全风险。建议已安装相关软件包的用户假定系统已被入侵,立即卸载这些软件包,轮换所有可从应用程序环境访问的密钥,并审核发往 C2 服务器的出站流量。

除了上述三个软件包外,该行动背后的威胁行为者还发布了另外三个干净的库(“nhattuanbl/lara-media”、“nhattuanbl/snooze”和“nhattuanbl/syslog”),这很可能是为了建立信誉并诱骗用户安装恶意软件包。

Socket 表示:“任何安装了 lara-helper 或 simple-queue 的 Laravel 应用程序都在运行持久性远程访问木马(RAT)。攻击者拥有完整的远程 shell 访问权限,可以读写任意文件,并持续获取每个连接主机的系统信息。”

“由于激活发生在应用程序启动时(通过服务提供商)或类自动加载时(通过简单队列),因此 RAT 与 Web 应用程序在同一进程中运行,具有相同的文件系统权限和环境变量,包括数据库凭据、API 密钥和 .env 内容。”

关于作者

weak_hong16篇文章26篇回复

评论1次

要评论?请先  登录  或  注册
  • 1楼
    3 小时前

    ### 结论 恶意包通过Composer依赖链注入混淆代码,利用Laravel框架启动或自动加载机制触发C2通信。攻击面覆盖所有下载过`nhattuanbl/lara-helper`或`nhattuanbl/simple-queue`的环境,且RAT在应用进程内运行,可直接访问敏感数据与xi统权限。 --- ### 分析路径(Source-Sink思路) 1. **L1攻击面识别** - **Source**:恶意包依赖树(`lara-swagger`→`lara-helper`) - **Sink**: - `stream_socket_client()`:与C2 `helper.leuleu[.]net:2096`建立TCP连接 - `exec/popen/system`等命令执行函数 - `imagegrabscreen()`:截屏功能 - 环境变量与文件读写(如.env文件) 2. **L2假设与验证** - 假设1:恶意代码通过`src/helper.php`启动C2通信 - 验证:检查该文件是否存在base64编码字符串、随机命名函数(如`_0x5f7a10()`)、域名硬编码(解码后检查是否指向C2) - 假设2:RAT在框架启动时加载 - 验证:检查是否存在`ServiceProvider`注册或`autoload`触发代码 3. **L3边界/异常场景** - **跨平台兼容性**: - Windows通过PowerShell执行命令 - Linux/macOS通过`proc_open`或`system`执行 - **C2重连机制**:即使服务宕机,15秒重试循环仍保持持久性 4. **L4防御反推与修复** - **防御绕过点**: - 动态选择未被`disable_functions`禁用的命令执行方法 - 控制流混淆躲避静态分析 - **修复关键点**: - 移除恶意代码载体(`helper.php`) - 阻断C2流量并监控异常出站请求 --- ### 验证步骤(最小可执行路径) 1. **依赖树检查** ```bash composer show --tree | grep "nhattuanbl" ``` 若输出包含`lara-helper`或`simple-queue`,立即停止服务并隔离环境。 2. **代码静态分析** ```bash # 查找混淆特征 grep -rEi "stream_socket_client|base64_decode|exec|popen|proc_open" vendor/nhattuanbl/ # 查找C2域名 strings vendor/nhattuanbl/lara-helper/src/helper.php | grep -i "leuleu" ``` 3. **运行时检测** ```bash # 检查进程网络连接(Linux/macOS) netstat -anp | grep ":2096" # 检查可疑PHP进程(含命令执行特征) ps aux | grep "php.*exec" ``` 4. **环境残留检查** - 审计`/etc/cron*`或计划任务是否有新增定时任务(如心跳机制) - 检查`php.ini`中`disable_functions`是否被篡改 --- ### 修复建议 1. **紧急措施** ```bash composer remove nhattuanbl/lara-helper nhattuanbl/simple-queue --no-update rm -rf vendor/nhattuanbl/ ``` 更新`composer.json`依赖白名单,排除`nhattuanbl`命名空间。 2. **防御加固** - 配置Composer锁定可信仓库(`config repositories`) - 在PHP中禁用危险函数: ```ini disable_functions = exec,passthru,shell_exec,system,popen,proc_open,... ``` - 阻断C2域名与端口(2096/TCP)的出站流量 3. **长期监控** - 监控应用日志中`stream_socket_client`调用 - 对`/var/log/auth.log`(Linux)或Windows事件日志进行异常登录审计 - 使用SAST工具(如RIPS)扫描依赖项中的命令注入风险 --- **注**:若已发生数据泄露,需按合规要求通知监管机构并重置所有敏感凭证。