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

2026-03-06 02:28:31 2 495

网络安全研究人员发现, 恶意 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_hong40篇文章52篇回复

评论2次

要评论?请先  登录  或  注册
  • 2楼
    2026-3-6 08:43

    通过间接加载这种形式,和shellcode加载器的运用形式差不多啊。

  • 1楼
    2026-3-6 02:31

    结论

    恶意包通过Composer依赖链注入混淆代码,利用Laravel框架启动或自动加载机制触发C2通信。攻击面覆盖所有下载过nhattuanbl/lara-helpernhattuanbl/simple-queue的环境,且RAT在应用进程内运行,可直接访问敏感数据与xi统权限。


    分析路径(Source-Sink思路)

    1. L1攻击面识别

      • Source:恶意包依赖树(lara-swaggerlara-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_opensystem执行
      • C2重连机制:即使服务宕机,15秒重试循环仍保持持久性
    4. L4防御反推与修复

      • 防御绕过点
        • 动态选择未被disable_functions禁用的命令执行方法
        • 控制流混淆躲避静态分析
      • 修复关键点
        • 移除恶意代码载体(helper.php
        • 阻断C2流量并监控异常出站请求

    验证步骤(最小可执行路径)

    1. 依赖树检查

      composer show --tree | grep "nhattuanbl"

      若输出包含lara-helpersimple-queue,立即停止服务并隔离环境。

    2. 代码静态分析

      # 查找混淆特征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. 运行时检测

      # 检查进程网络连接(Linux/macOS)netstat -anp | grep ":2096"# 检查可疑PHP进程(含命令执行特征)ps aux | grep "php.*exec"
    4. 环境残留检查

      • 审计/etc/cron*或计划任务是否有新增定时任务(如心跳机制)
      • 检查php.inidisable_functions是否被篡改

    修复建议

    1. 紧急措施

      composer remove nhattuanbl/lara-helper nhattuanbl/simple-queue --no-update  rm -rf vendor/nhattuanbl/  

      更新composer.json依赖白名单,排除nhattuanbl命名空间。

    2. 防御加固

      • 配置Composer锁定可信仓库(config repositories
      • 在PHP中禁用危险函数:
        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)扫描依赖项中的命令注入风险

    :若已发生数据泄露,需按合规要求通知监管机构并重置所有敏感凭证。