本文记录一些常见的攻击手段的流量特点。
CobaltStrike
- 心跳包特征:
- 间隔一定时间,均有通信,流级上下行数据长度固定
- 域名、IP特征:
- 没有CDN,域前置时:域名和Ip暴露
- 有CDN,域前置,真实Ip会隐藏
- 指令特征
- 下发指令时,通过心跳包接收指令,这时,server端返回的包更长,甚至包含要加载的dll模块数据
- 指令执行完后,client端通过POST请求发送执行的结果数据,body部分通过加密和base64编码
- 不同指令,执行的时间间隔不一样,可以通过POST请求和GET请求的时间进行判断
- 数据特征
- 在请求的返回包中,通信数据均隐藏在jqeury*.js中
常见的webshell连接工具流量
中国菜刀
- 连接过程中使用base64编码对发送的指令进行加密,其中两个关键payload是z1和z2,名字都是可变的
- 有一段以QG开头,7J结尾的固定代码
蚁剑
- 默认的ua请求头是antsword xxx,可以修改
- 一般将payload进行分段,分别进行base64编码
- 一般具有像eval这样的关键字
- 大概率有@ini_set(“display”,”0”);这段代码
冰蝎
- PHP代码中可能存在eval,assert等关键字
- jsp代码中可能会有getclass(),getclassLoader()等字符特征
冰蝎2.0
- 第一阶段请求中返回包的状态码是200,返回内容是16位的秘钥
- 建立连接后的cookie格式都是Cookie:PHPSessid=xxxx;path=/;
冰蝎3.0
- 请求包中的content-length字段是5740或5720
- 请求头含有特征信息
哥斯拉
- jsp代码中可能会有getclass、getclassLoader等关键字
- payload使用base64编码
- PHP和ASPpayload 是普通的一句话木马
- 在响应包的cache-control字段中用no-store,no-cache等特征
- 所有请求中的cookie字段最后都存在;特征
区分扫描流量和手动流量
- 查看流量来源:
- 扫描流量通常是由自动化工具或蠕虫病毒等程序生成的,因此其源 IP或者发起请求的主机通常不固定
- 手动流量则来自人工操作的设备,其请求的 IP 地址和用户代理信息都会有所不同
- 检测流量频率和规律:
- 扫描流量通常会呈现出周期性、规律性的访问行为,例如连续大量的 TCP SYN请求等
- 手动流量通常难以呈现出明显的规律和周期性。
- 观察流量的请求路径和参数:
- 扫描流量通常是为了探测系统漏洞和弱点而产生的,它们通常会对一些已知的 URL和参数进行大量的尝试,并使用一些特殊的 HTTP 头部信息
- 手动流量则更加多样化,可能会包含更丰富的请求路径和参数
- 分析流量的响应状态码和长度:
- 扫描流量通常会通过检测返回的状态码和页面长度等信息来判断目标是否存在漏洞或弱点。
- 手动流量则通常会具有更加正常的响应状态码和页面长度。
总之,通过综合分析流量来源、访问规律、请求路径和参数以及响应状态码等特征,我们可以比较准确地区分扫描流量和手动流量,并采取相应的防御措施。