WebShell 流量分析

蚁剑

进行连接时会进行两次请求

第一次请求

  • @ini_set ("display_errors","0"):关闭报错
  • @set_time_limit(0);@set_magic_quotes_runtime(0) :关闭 magic_quotes
  • 获取主机信息

第二次请求:

  • 列出主机目录

弱特征

蚁剑中包含了很多加密、绕过插件,数据包混淆后无法识别,但参数名以 "_0X...="开头,后面为加密数据包

冰蝎

使用动态二进制加密数据流量

冰蝎 2.0

  • 使用 AES 加密 +base64 编码发起三次请求

    • 第一次 GET 请求,产生密钥写入 session,session 和当前会话绑定
    • 第二次 GET 请求,获取密钥 key,服务端会生成 16 位的 AES 密钥
    • 第三次使用 key 的 AES 加密进行通信,通信也采用了 base64 编码。
  • 冰蝎 2.0 内置十几个 User-Agen 头,每次请求时会随机选择其中的一个,一个 ip 的请求头中的 user-agent 在频繁变换,就可能是冰蝎。

冰蝎 3.0

  • 使用 AES 加密 +base64 编码发起两次请求,取消了动态密钥获取的请求

    • 第一次请求用于判断是否可以建立连接
    • 第二次发送 phpinfo 等代码执行,获取网站的信息
  • AES 的密钥直接固定为连接密码 32 位 md5 的前 16 位,默认连接密码是"rebeyond"(即密钥是 md5('rebeyond')[0:16]=e45e329feb5d925b)

  • 服务端和客户端不再进行密钥的交互传递

弱特征:

Content-Type:application/octet-stream
application/octet-stream :只能提交一个二进制数据,而且只能是流 (或者字节数组)

冰蝎 4.0

提供了传输协议自定义的功能,让用户对流量的加密和解密进行自定义,实现流量加解密协议的去中心化。

弱特征:

1.Accept: application/json, text/javascript, /; q=0.01 :浏览器可接受任何文件
2.Content-type: Application/x-www-form-urlencoded
3.内置了十几个User-Agent头,每次请求时会随机选择其中的一个
4.每次连接使用本地端口在49700左右(较大端口),每建立一次新的连接,端口就依次增加
5.Connection:Keep-Alive:长连接

强特征:

固定的请求头和响应头:
	请求字节头:dFAXQV1LORcHRQtLRlwMAhwFTAg/M
	响应字节头:TxcWR1NNExZAD0ZaAWMIPAZjH1BFBFtHThcJSlUXWEd
默认密钥:
	e45e329feb5d925b

哥斯拉

哥斯拉为加密的通讯流量,因此通过流量进行检测会有很大的难度,由于 WAF 等流量检测型安全设备无法对加密的流量进行解密,因此只能采用一些比较宽泛的匹配规则进行检测。

弱特征:

User-Agent:默认的情况,会携带的jdk信息(可支持自定义)
Accept:text/html, image/gif, image/jpeg, *; q=.2, /; q=.2
Cookie字段最后会有一个;
哥斯拉会把一个32位的md5字符串按照一半拆分,分别放在base64编码的数据的前后两部分

  • 待分类

    用户发帖时如果不填标签,则默认加上“待分类”。这样做是为了减少用户发帖的负担,同时也减少运营维护的工作量。具有帖子更新权限的用户可以帮助社区进行帖子整理,让大家可以更方便地找到所需内容。这里是关于这样设计的一些思考,欢迎讨论。

    3 引用 • -304 回帖 • 4 关注

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...