webshell工具流量特征
常见的webshell管理工具及流量特征
菜刀
作为老牌 Webshell 管理神器,中国菜刀的攻击流量特征明显,容易被各类安全设备检测,实际场景中越来越少使用,加密 Webshell 正变得日趋流行。
最开始使用明文传输,后来采用base64加密
UA字段
通常为百度,火狐
存在特征字符
请求体中存在eavl,base64等特征字符
payload编码
请求体中传递的payload为base64编码,并且存在固定的数值,z0=
QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtpZihQSFBfVkVSU0lPTjwnNS4zLjAnKXtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO307ZWNobygiWEBZIik7J



蚁剑
中国蚁剑是一款开源的跨平台网站管理工具,它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。
将蚁剑的正文内容进行URL解码后,流量最中明显的特征为@ini_set("display_errors","0");这段代码基本是所有WebShell客户端链接PHP类WebShell都有的一种代码,同时蚁剑也有eval这种明显的特征。
蚁剑中包含了很多加密、绕过插件,所以导致很多流量被加密后无法识别,但是蚁剑混淆加密后还有一个比较明显的特征,参数名大多以“_0x.....=”这种形式(下划线可替换为其他)所以,以_0x开头的参数名,后面为加密数据的数据包也可识别为蚁剑的流量特征。
====================================================================

解码后的数据包ini_set

冰蝎
冰蝎是一款基于Java开发的动态加密通信流量的新型Webshell客户端
冰蝎的通信过程可以分为两个阶段:
一、密钥协商
1)通过 GET 或者 POST 方法请求服务器密钥;
2)服务器使用随机数 MD5 的高16位作为密钥,存储到会话的 $_SESSION 变量中,并返回密钥
二、加密传输
1)客户端把待执行命令作为输入,利用AES或 XOR 运算进行加密,并发送至服务端;
2)服务端接受密文后进行 AES 或 XOR 运算解密,执行相应的命令;
3)执行结果通过AES加密后返回给攻击者。
====================================================================
冰蝎2.0
1、ACCEPT字段
冰蝎2默认Accept字段的值很特殊,而且每个阶段都一样
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
2、UA字段
冰蝎内置了十余种 UserAgent ,每次连接 shell 会随机选择一个进行使用。但都是比较老的,容易被检测到,但是可以在burp中修改ua头。
3、Content-Length
Content-Length: 16, 16就是冰蝎2连接的特征
====================================================================
冰蝎3.0
相比较冰蝎2,冰蝎3取消动态密钥获取,目前很多waf等设备都做了冰蝎2的流量特征分析,所以3取消了动态密钥获取;只有在无动态密钥交互失败后,才会进入常规的密钥交互阶段。
<?php@error_reporting(0);session_start();$key="e45e329feb5d925b"; //该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond$_SESSION['k']=$key;
从密钥的生成可以看出,使用密码的md5结果的前16位。
1、content-type
在冰蝎3.0 的服务端,是通过如下代码读取post请求
request.getReader().readLine()
代码的意思是,直接读取post请求中body的内容。所以请求的http中,content-type一定为application/octet-stream
2、内置16个ua头
冰蝎3.0 每次请求都会在16个默认的UA头中随机选择一个作为user-Agent,当然,普通用户很容易就可以修改
3、content-length 请求长度
在冰蝎中,任何请求,最终都会调用Utils.getData函数,对请求的参数加密。对于上传文件,命令执行来讲,加密的参数不定长。但是对于密钥交互,获取基本信息来讲,payload都为定长,且无随机padding。
====================================================================
冰蝎4.0
Accept字段
通信过程中会携带以下Accept字段,在进行数据通讯中会携带Accept字段
Accept: application/json, text/javascript, /; q=0.01
Content-Type字段
PHP站点:Application/x-www-form-urlencoded
ASP站点:Application/octet-stream
User-agent 字段
冰蝎4.0设置了10种User-Agent,每次连接shell时会随机选择一个进行使用
特征长连接
通讯默认使用长连接,避免了频繁的握手造成的资源开销。默认情况下,请求头和响应头里会带有 Connection。
Connection: Keep-Alive
PHP webshell 中存在固定代码
JSP webshell 中存在固定代码
连接密码
默认时,所有冰蝎4.* webshell都有“e45e329feb5d925b” 一串密钥。该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond
哥斯拉
哥斯拉是一款继冰蝎之后又一款于Java开发的加密通信流量的新型Webshell客户端,内置了3种有效载荷以及6种加密器,6种支持脚本后缀,20个内置插件,也是目前在HVV中使用较多的一款工具。
cookie字段
最后一个Cookie的值出现;(结尾处通常会出现分号)

User-Agent (弱特征)
哥斯拉客户端使用JAVA语言编写,在默认的情况下,如果不修改User-Agent,User-Agent会类似于Java/1.8.0_121(具体什么版本取决于JDK环境版本)。但是哥斯拉支持自定义HTTP头部,这个默认特征是可以很容易去除的。
Accept(弱特征)
Accept为text/html, image/gif, image/jpeg, *; q=.2, /; q=.2
冰蝎也出现过同样的Accept,这个是JDK引入的一个特征,并不是作者自定义的Accept,同样的这个默认特征也可以通过自定义头部去除

响应体
如果请求体采用base64编码,响应体返回的也是base64编码的数据。在使用base64编码时,响应体会出现一个很明显的固定特征。这个特征是客户端和服务端编写的时候引入的。他会把一个32位的md5字符串按照一半拆分,分别放在base64编码的数据的前后两部分。整个响应包的结构体征为:md5前十六位+base64+md5后十六位。从响应数据包可以明显看到这个特征
需要注意的是md5需要同时匹配字母大小写两种情况,因为在JAVA版webshell响应中为大写字母,在PHP版中为小写字母。

webshell工具流量特征的更多相关文章
- CobaltStrike去除流量特征
CobaltStrike去除流量特征 普通CS没有做流量混淆会被防火墙拦住流量,所以偶尔会看到CS上线了机器但是进行任何操作都没有反应.这里尝试一下做流量混淆.参考网上的文章,大部分是两种方法,一种 ...
- dns隧道攻击原理及常用工具流量分析
DNS协议是一种请求应答协议,也是一种可用于应用层的隧道技术.虽然DNS流量的异常变化可能会被发现,但是在基于传统socket隧道已经濒临淘汰,TCP.UDP通信大量被安全设备拦截的大背景下,DNS. ...
- 转 :scikit-learn的GBDT工具进行特征选取。
http://blog.csdn.net/w5310335/article/details/48972587 使用GBDT选取特征 2015-03-31 本文介绍如何使用scikit-learn的GB ...
- scikit-learn的GBDT工具进行特征选取。
http://blog.csdn.net/w5310335/article/details/48972587 使用GBDT选取特征 2015-03-31 本文介绍如何使用scikit-learn的GB ...
- 冰蝎动态二进制加密WebShell基于流量侧检测方案
概述 冰蝎是一款新型动态二进制加密网站工具.目前已经有6个版本.对于webshell的网络流量侧检测,主要有三个思路.一:webshell上传过程中文件还原进行样本分析,检测静态文件是否报毒.二:we ...
- kali下的webshell工具-Weevely
Weevely ------------------------------------------------ 主要特点: · 隐蔽的类终端的PHP webshell · ...
- kali中的webshell工具--webacoo
webacoo webshell其实就是放置在服务器上的一段代码 kali中生成webshell的工具 WeBaCoo(Web Backdoor Cookie) 特点及使用方法 类终端的shell 编 ...
- Assassin暗杀者-自用短小精悍的webshell管理工具分享
Assassin Assassin是一款精简的基于命令行的webshell管理工具,它有着多种payload发送方式和编码方式,以及精简的payload代码,使得它成为隐蔽的暗杀者,难以被很好的防御. ...
- DNS通道检测 国内学术界研究情况——研究方法:基于特征或者流量,使用机器学习决策树分类算法居多
http://xuewen.cnki.net/DownloadArticle.aspx?filename=BMKJ201104017&dbtype=CJFD<浅析基于DNS协议的隐蔽通道 ...
- 开源Webshell利用工具——Altman
开源Webshell利用工具--Altman keepwn @ 工具 2014-06-04 共 6114 人围观,发现 43 个不明物体收藏该文 Altman,the webshell tool,自己 ...
随机推荐
- Prism Sample 9 ChangeConvention
上个例子跳过了ViewModelLocator,因是采用约定的方式最为方便. 如果有人要修改约定,自定义view和viewModel的默认自动定位方式,怎么办呢? 在app.xaml.cs重写以下方法 ...
- 自制ASP.NET 本地授权文件
asp.net登录时验证本地ini文件是否正确,主要步骤. 1.导入myini.DLL文件. 下载地址:http://yunpan.cn/cKw9kHJUk9Ui8 提取码 6631 2.添加引用 ...
- java英文字符串首字母大写
java英文字符串首字母大写 /** * 首字母大写 * @param string * @return */ public static String toUpperCase4Index(Strin ...
- 2020-12-08:TIME_WAIT的等待时间为什么是2MSL?
福哥答案2020-12-08:[答案来自此链接:](http://bbs.xiangxueketang.cn/question/646)这里假设主动关闭方为A,被动关闭方为B,TIME_WAIT状态是 ...
- 2021-03-05:go中,io密集型的应用,比如有很多文件io,磁盘io,网络io,调大GOMAXPROCS,会不会对性能有帮助?为什么?
2021-03-05:go中,io密集型的应用,比如有很多文件io,磁盘io,网络io,调大GOMAXPROCS,会不会对性能有帮助?为什么? 福哥答案2021-03-05: 这是面试中被问到的.实力 ...
- 2021-08-09:给定一个有正、有负、有0的数组arr,给定一个整数k,返回arr的子集是否能累加出k。1)正常怎么做?2)如果arr中的数值很大,但是arr的长度不大,怎么做?
2021-08-09:给定一个有正.有负.有0的数组arr,给定一个整数k,返回arr的子集是否能累加出k.1)正常怎么做?2)如果arr中的数值很大,但是arr的长度不大,怎么做? 福大大 答案20 ...
- 华为Atlas 200I DK A2开箱!
摘要:Atlas 200I DK A2是Atlas 200DK之后的一款产品,从2022年一直酝酿至今,终于在2023年5月6日-7日昇腾AI开发者峰会2023正式发布. 本文分享自华为云社区< ...
- java解决中文乱码的几种写法
工作中总会遇到中文乱码问题,以导出文件,文件名称是中文的话,下载下来的文件名称会乱码问题,总结了几种解决文件名乱码的写法,仅供参考. 首先定义一个汉语字符串 String zhName = " ...
- Netty实战(一)
目录 第一章 Java网络编程 1.1 Java NIO 1.2 选择器 第二章 Netty是什么 2.1 Netty简介 2.2 Netty的特性 2.2.1 设计 2.2.2 易于使用 2.2.3 ...
- ODOO13之12:Odoo 13开发之报表和服务端 QWeb
报表是业务应用非常有价值的功能,内置的 QWeb 引擎是报表的默认引擎.使用 QWeb 模板设计的报表可生成 HTML 文件并被转化成 PDF.也就是说我们可以很便捷地利用已学习的 QWeb 知识,应 ...