自学内容网 自学内容网

Suricata

02-Suricata

一 ICMP流量预警

一条ICMP报文有四个重要内容,可与相应的ICMP关键字相匹配。它们是:消息的类型、代码、ID和序列。

通过ICMP的type进行匹配

alert icmp any any <> any any (msg:"icmp流量预警";itype:8;threshold:type threshold,track by_src, count 5, seconds 30;sid:10021;)

二 TCP流量预警

1 全连接预警

alert tcp any any <> any any (msg:"TCP全连接流量预警";flow:to_server,established;threshold:type threshold,track by_src, count 5, seconds 30;sid:10022;)

利用wrk进行全连接攻击

wrk -c 300 -t 5 -d 600 http://192.168.209.131/dashboard/

-c 并发数

-t 线程数

-d 持续的时间

2 半连接预警

alert tcp any any <> any any (msg:"TCP半连接流量预警";flow:to_server,not_established;flags:S;threshold:type threshold,track by_dst, count 20, seconds 10;sid:10023;)

flags:S是一个规则选项,用于指定匹配TCP报文中SYN标志位为1的数据包

TCP协议在建立连接时需要进行三次握手,其中第一次握手就是客户端向服务器发送一个SYN报文,请求建立连接。此时,SYN标志位被设置为1。因此,flags:S选项允许Suricata规则专门匹配这种TCP连接建立初期的数据包。

track <by_src|by_dst|by_rule|by_both>
    by_src 源ip一样
    by_dst 目的ip一样

tcp半连接攻击,源ip随机

hping3 -c 1000 -d 120 -S -w 64 -p 80 --flood --rand-source 192.168.209.131

三 MySql流量预警

Sruicata没有提供对MySql应用层协议的支持,所以我们使用TCP协议

1 MySql爆破预警

预警mysql登录失败

alert tcp any any <> any any (msg:"MySql登录失败预警";content:"Access denied for user";sid:10024;)

预警mysql登录爆破-方式1

alert tcp any any <> any any (msg:"MySql登录爆破预警";content:"Access denied for user";threshold:type threshold,track by_src, count 5, seconds 30;sid:10025;)

预警mysql登录爆破-方式2

alert tcp any any <> any any (msg:"MySql登录失败预警";content:"|41 63 63 65 73 73 20 64 65 6e 69  65 64 20 66 6f 72 20 75 73 65 72|";sid:10026;)

使用流量载荷中ASCII对应的十六进制数据进行匹配

2 MySql木马文件写入预警

#查看mysql写入文件的权限  
show variables like "secure_file_priv";
    空:在任意路径写入文件
    路径:在固定的路径写入
    NULL:不能写入文件
​
#写入木马文件
select "<?php eval($_POST[0]);?>" into outfile "/opt/lampp/htdocs/mm22.php"
​
#预警规则
alert tcp any any <> any any (msg:"MySql写入木马文件预警";content:"into outfile";pcre:"/eval/i";sid:10027;)

四 SSH爆破预警

1、特征分析

SSH 协议交互主要分为三个阶段,传输层协议,用户认证协议,连接协议。在传输层协议中主要完成服务端和客户端之间的ssh版本协商,密钥和算法协商,在该阶段的最后客户端会发送New Keys数据包,表示双反构建了一个加密通道,从而开始用户认证。最后就是如果认证登录成功后,持续不断地进行数据通信,这个过程不再具备用户认证的数据和交换密钥的过程。

image-20241111161241806

根据New Keys数据包中总是0x15和10个字节的0x00结尾的特点,可以标记该类数据包,与之类似的,Key Exchange Init过程也存在以较多的 00 00 00 00 等特征可以使用。当完成认证后,后续的通信全是常规加密流量,并且也不再存在Key Exchange或者New Keys流量。所以,针对SSH爆破的情况,必须存在较多的Key Exchange和New Keys流量。

image-20241111162640934

alert ssh any any <> any any (msg:"ssh登录预警";content:"|15 00 00 00 00 00 00 00 00 00 00|";sid:10028;)

alert ssh any any <> any any (msg:"ssh登录爆破预警";content:"|15 00 00 00 00 00 00 00 00 00 00|";threshold:type threshold,track by_src, count 5, seconds 30;sid:10029;)

原文地址:https://blog.csdn.net/zhuge_long/article/details/143690710

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!