文章总结: 攻击者利用HTTPCookie作为PHPWebshell的控制通道,在Linux托管环境中实现隐秘攻击。该技术通过Cookie值触发恶意代码执行,结合多层混淆和定时任务持久化机制降低检测概率。微软威胁情报团队发现三种主要变体:带执行门控的加载器、直接PayloadStager和交互式Webshell。建议加强账户安全、限制Web进程执行、监控定时任务和可疑文件创建。 综合评分: 87 文章分类: WEB安全,渗透测试,应急响应,漏洞分析,安全运营
Cookie控制的PHP Webshell:Linux托管环境中的隐秘攻击手法
bitbot bitbot
Desync InfoSec
2026年4月7日 20:00 北京
攻击者正越来越多地将 HTTP Cookie 用作 Linux 服务器上 PHP Webshell 的控制通道。他们不再通过 URL 参数或请求体暴露命令执行逻辑,而是将恶意功能隐藏在 Cookie 值中——只有在特定 Cookie 条件满足时,Webshell 才会被激活。
这种技术通过让恶意代码在正常应用行为下保持休眠、仅在满足特定 Cookie 条件时才执行,显著降低了可见性。微软威胁情报团队披露了完整分析,揭示了攻击者如何利用 Cookie 控制的 PHP Webshell 在 Linux 托管环境中建立持久化远程代码执行(RCE)。
────────────────
一、Cookie 驱动的执行行为
在所有分析的案例中,HTTP Cookie 都充当了恶意执行的主要触发器。Webshell 逻辑保持休眠状态,除非请求中包含特定的 Cookie 值。只有当这些条件被满足时,脚本才会重建并执行攻击者控制的行为。
攻击者偏爱这种方式是因为 Cookie 融入正常 Web 流量,通常比请求路径或请求体受到更少的审查。在 PHP 中,Cookie 值可通过 $_COOKIE 超全局变量直接在运行时获取,无需额外解析。通过将执行控制转移到 Cookie,Webshell 能够隐藏在正常流量中,仅在攻击者刻意交互时激活,显著降低了日志记录和流量检测的可见性。
核心洞察:在不同执行场景(Web 请求、定时任务、受信任的后台工作线程)中均已观察到该技术,表明 Cookie 控制的 Webshell 攻击手法正在跨场景扩散。
二、观察到的变体类型
变体 1:带执行门控和多层混淆的加载器
一种实现在处理任何 Cookie 输入之前引入了额外的执行门控。加载器首先评估请求上下文,然后通过算术运算和字符串操作动态重建核心 PHP 函数。敏感函数名完全不以明文形式出现,显著降低了静态检测能力。
Base64 解码后,PHP 脚本不会立即暴露明显的命令功能,而是暴露第二层刻意构建的混淆层。关键操作在运行时逐字符组装,确保有意义的行为在执行条件满足之前始终保持隐藏。Cookie 值被分段和转换为函数标识符、文件路径和解码例程。
如果二级 payload 尚不存在,加载器将从编码数据中重建它、写入动态确定的位置,并使用 include 转移执行权。这种分层方法将部署、混淆和激活分离为不同阶段:常规流量下文件看似无害,而在收到攻击者控制的输入时则转变为完全可执行的框架。
变体 2:直接 Cookie 驱动的 Payload Stager
另一种实现依赖结构化的 Cookie 数据,无需复杂的前置门控。脚本对 Cookie 输入进行分段,重构文件处理和解码函数等操作组件。尽管结构更简单,但实现了相同的目标:由 Cookie 值控制的阶段性部署和执行,而非可见的请求参数。
变体 3:Cookie 门控的交互式 Webshell
还观察到一种精简变体,单个 Cookie 值充当执行密钥。当满足预期的 Cookie 条件时,脚本启用攻击者控制的操作,包括直接执行提供的输入和文件上传。与分阶段的加载器链不同,此实现在单个脚本内运行,不依赖写入磁盘的独立二级 payload。Cookie 主要充当验证机制而非 payload 容器。
三、通过定时任务实现持久化
在一个入侵事件中,攻击者在 Linux 托管环境中建立了”自愈”持久化机制。获取受害者托管账户的访问权限后,攻击者利用平台的合法管理界面(如 cPanel 控制面板工作流)注册 cron 任务。
在共享托管场景中,该级别的访问通常等效于账户隔离环境中的用户级控制——虽不代表 root 级别妥协,但足以修改 Web 内容、部署 PHP 脚本并安排重复执行。
⚠ 关键发现:cron 任务以固定间隔(如每分钟一次)执行,调用 shell 脚本将混淆的 PHP 加载器重建到 Web 可访问位置。即使加载器被删除,定时任务会在下一个执行周期重新创建它。攻击者还设置了严格的文件权限,进一步阻止手动修改或删除。
一旦部署完成,PHP 加载器遵循前述的低可见性模式:正常流量下保持休眠,特定 Cookie 条件满足时激活,在运行时动态重建功能并将执行转移给攻击者控制的逻辑。通过将 cron 重建的持久化与Cookie 门控的执行分离,攻击者降低了操作噪音和可观察指标。
持久化 RCE 提供了长期灵活性:攻击者可以随时返回执行额外命令、部署后续 payload、更改应用行为,或在不重新触发同一利用链的情况下转向其他资源。这降低了运营风险,减少了可能引发警报的入侵尝试次数。
────────────────
四、MITRE ATT&CK 技术映射
| | | | | — | — | — | | 战术 | 技术ID | 技术名称 | | 初始访问 | T1190 | Exploit Public-Facing Application | | 持久化 | T1505.003 | Server Software Component: Web Shell | | 防御规避 | T1027 | Obfuscated/Encrypted File or Information | | 防御规避 | T1140 | Deobfuscate/Decode Files or Information | | 横向移动 | T1105 | Ingress Tool Transfer | | 执行 | T1059.004 | Command and Scripting Interpreter: Unix Shell | | 持久化 | T1053.003 | Scheduled Task/Job: Cron | | 防御规避 | T1222.002 | File and Directory Permissions Modification |
────────────────
五、检测与缓解建议
1. 加强托管账户安全:强制启用 MFA,监控异常登录活动,特别是来自陌生 IP 或地理位置的登录。受损账户凭据通常足以部署 Webshell 和创建持久化机制。
2. 限制 Web 服务器进程执行:限制 php-fpm 等面向 Web 的服务生成 shell 进程的能力,禁止从 Web 服务器执行上下文中调用 sh、bash、dash 以及 base64、curl、wget 等常见滥用工具。
3. 审计和监控定时任务:定期审查账户级 cron 任务,关注调用 shell 命令或向 Web 可访问目录写入文件的异常条目。异常短执行间隔(如每分钟循环)和与文件创建相关的命令行都是 Webshell 持久化的高频信号指标。
4. 检查 Web 目录中的可疑文件创建:监控通过 base64 解码管道(echo | base64 -d)或 curl/wget 从 Web 服务器上下文写入的 PHP 文件。关注编码管道、重定向操作符或网络检索工具与 Web 面向工作负载的关联。
5. 限制控制面板 Shell 功能:尽可能禁用 jailshell 等 shell 访问。如需 shell 访问,则强制严格访问控制并密切监控命令执行。
💡 检测提示:Microsoft Defender XDR 已覆盖此攻击的所有技术。Advanced Hunting 查询可检测 Web 服务器进程派生 shell、Base64 解码写入 PHP 文件、cPanel/jailshell 滥用、1 分钟 cron 重复执行等高风险模式。
────────────────
来源:Microsoft Security Blog · 2026年4月2日 原文链接:microsoft.com/security/blog
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:Desync InfoSec bitbot bitbot《Cookie控制的PHP Webshell:Linux托管环境中的隐秘攻击手法》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。



![[吃瓜速递]突发!ClaudeCode急刹车:OpenClaw用户集体被“割韭菜”,免费午餐彻底终结](/images/random/titlepic/5.jpg)







评论