文章目录
对于常见的webshell管理工具有中国菜刀,蚁剑,冰蝎,哥斯拉。同时还有渗透工具cobaltstrike(CS)。
CS
CobaltStrike有控制端,被控端,服务端。(相当于黑客,服务器,代理)
CS的工作原理
基本的工作流程如下:
- 被控端发送心跳包
- 服务端接收并记录相关信息
- 被控端再次发送心跳包询问是否有指令
- 控制端发送需要进行的操作指令到服务端
- 服务端将操作指令加密发送到被控端
- 解密执行,返回信息
CS流量特征
关于其流量特征:
- 心跳包,间隔一定时间发送请求
- 有CDN,与前置的,IP会被隐藏
- 心跳包中服务端返回的包更长,甚至包含dll模块数据
- 返回结果body会被加密,base64编码
- 通信数据都隐藏在jqeury.js中
菜刀
分为php,jsp,asp三类
php
- 数据包中会存在eval用来传递执行函数
- 形式:会提交一个含有base64编码的参数。数据通常为固定的QGlua...7J,参数名可能为z0,webshell写的提交方式有三种:POST,GET,REQUEST
csharp
cmd=eval((base64_decode($_POST[z0]))&z0=QGluaV9zZXQ...
JSP
通常含有i=一个字母&参数=编码方式&参数=payload的形式
csharp
i=A&z0=ASCII&z1=.......
ASP
execute函数,----->相当于php中eval函数
Onerror ResumeNext函数,---->相当于php的@,报错不会影响继续执行
Response.write和Response.end完善整个操作
蚁剑
解密后的密文会包含ini_set("display_errors","0")
冰蝎
一般的webshell工具流量特征比较明显,容易被发现,冰蝎其最大特点就是对交互流量进行对称加密,且加密密钥是由随机数函数动态生成,因此该客户端的流量几乎无法检测。
Accept: application/json, text/javascript, / ; q=0.01
User-agent。冰蝎设置了多种User-Agent,每次连接shell时会随机选择一个进行使用。
也可以查看是否存在eval,post等特征函数。但是大部分都采用了加密
还有很多方法,可以自己查查资料
哥斯拉
是利用动态加密流量来躲避传统的安全防护设备基于流量特征的检测
- Cookie。对于一般的数据包来说,cookie结尾不应该使用;而在哥斯拉数据包中使用了;
- User-Agent,如果使用默认的情况,会暴露使用的jdk信息,可以去除.
- 响应体的数据有一定特征,哥斯拉会把一个32位的md5字符串按照一半拆分,分别放在base64编码的数据的前后两部分。整个响应包的结构体征为:md5前十六位+base64+md5后十六位。