Snort+中文手册

2026/4/23 10:38:58

注:多内容的规则可以放在一条规则中,还有(: ; / “)不能出现在content规则中。如果一条规则前面有一个“!”。那么那些不包含这些内容的数据包将触发报警。这对于关注那些不包含一定内容的数据包是有用的。 offset

offset规则选项被用作使用content规则选项关键字的规则的修饰符。这个关键字修饰符指定模式匹配函数从包净荷开始处开始搜索的偏移量。 它对于cgi扫描检测规则很有用,cgi扫描的内容搜索字符串不会在净荷的前4个字节中出现。小心不要把这个偏移量设置的太严格了,会有可能漏掉攻击!这 个规则选项关键字必须和content规则选项一起使用。 格式: offset: ; depth

depth也是一个content规则选项修饰符。它设置了内容模式匹配函数从他搜索的区域的起始位置搜索的最大深度。它对于限制模式匹配函数超出 搜索区域指定范围而造成无效搜索很有用。(也就是说,如果你在一个web包中搜索\,你可能不需要浪费时间搜索超过净荷的头20 个字节)。 格式: depth: ;

例子:

alert tcp any any -> 192.168.1.0/24 80 (content: \offset: 3; depth: 22; msg: \nocase

nocase选项用于取消content规则中的大小写敏感性。它在规则中指定后,任何与包净荷进行比较的ascii字符都被既作为大写又作为小写对待。 格式: nocase;

例子:

alert tcp any any -> 192.168.1.0/24 21 (content: \root\nocase; msg: \flags

这个规则检查tcp标志。在snort中有9个标志变量:

F - FIN (LSB in TCP Flags byte) S - SYN R - RST P - PSH A - ACK U - URG

2 - Reserved bit 2

1 - Reserved bit 1 (MSB in TCP Flags byte) 0 - No TCP Flags Set

在这些标志之间还可以使用逻辑操作符:

+ ALL flag, 匹配所有的指定的标志外加一个标志。 * ANY flag, 匹配指定的任何一个标志。

! NOT flag, 如果指定的标志不在这个数据包中就匹配成功。

保留位可以用来检测不正常行为,例如IP栈指纹攻击或者其他可疑的行为。 格式:

flags: [,mask value];

例子:

alert any any -> 192.168.1.0/24 any (flags: SF,12; msg: \SYN FIN scan\seq

这个规则选项引用tcp顺序号(sequence number)。基本上,它探测一个包是否有一个静态的顺序号集,因此很少用。它是为了完整性而包含进来的。 格式: seq: ; ack

ack规则选项关键字引用tcp头的确认(acknowledge)部分。这个规则的一个实用的目的是:检查nmap tcp ping,nmap tcp ping把这个域设置为0,然后发送一个tcp ack flag置位的包来确定一个网络主机是否活着。 格式: ack: ;

例子:

alert any any -> 192.168.1.0/24 any (flags: A; ack: 0; msg: \ping\Window

这条规则选项指向TCP窗口大小。这个选项检查静态窗口大小,此外别无他用。包括它只是为了完整性。 格式:

window:[!];

Itype

这条规则测试ICMP的type字段的值。它被设置为使用这个字段的数字值。要得到所有可能取值的列表,可以参见Snort包中自带的decode.h文 件,任何ICMP的参考资料中也可以得到。应该注意的是,type字段的取值可以超过正常范围,这样可以检查用于拒绝服务或flooding攻击的非法 type值的ICMP包。 格式: itype: ; Icode

Icode规则选项关键字和itype规则非常接近,在这里指定一个数值,Snort会探测使用该值作为code值的ICMP包。超出正常范围的数值可用于探测可疑的流量。 格式: icode: ; Session

Session关键字用于从TCP会话中抽取用户数据。要检查用户在telnet,rlogin,ftp或web sessions中的用户输入,这个规则选项特别有用。Session规则选项有两个可用的关键字作为参数:printable或all。 Printable关键字仅仅打印用户可以理解或者可以键入的数据。All关键字使用16进制值来表示不可打印的字符。该功能会显著地降低Snort的性 能,所以不能用于重负载环境。它适合于对二进制(tcpdump格式)log文件进行事后处理。 格式:

session: [printable|all];

例子

log tcp any any <> 192.168.1.0/24 23 (session: printable;) Icmp_id

Icmp_id选项检查ICMP ECHO数据包中ICMP ID数值是否是指定值。许多秘密通道(covert channel)程序使用静态ICMP字段通讯,所以该选项在检查这种流

量时非常有用。这个特别的插件用于增强由Max Vision编写的stacheldraht探测规则,但是在探测一些潜在攻击时确实有效。 格式:

icmp_id: ; Icmp_seq

Icmp_seq选项检查ICMP ECHO数据包中ICMP sequence字段数值是否是指定值。许多秘密通道(covert channel)程序使用静态ICMP字段通讯,所以该选项在检查这种流量时非常有用。这个特别的插件用于增强由Max Vision编写的stacheldraht探测规则,但是在探测一些潜在攻击时确实有效。(我知道该字段的信息和icmp_id的描述几乎完全相同,实际上它们就是同样的东西!) 格式:

icmp_seq: ; Rpc

这个选项查看RPC请求,并自动将应用(Application)、过程(procedure)和程序版本(program version)译码,如果所有三个值都匹配的话,该规则就显示成功。这个选项的格式为\应用、过程、版本\。在过程和版本域中可以使用通配符\。 格式: rpc: ;

例子 alert tcp any any -> 192.168.1.0/24 111 (rpc: 100000,*,3; msg:\getport (TCP)\alert udp any any -> 192.168.1.0/24 111 (rpc: 100000,*,3; msg:\getport (UDP)\alert udp any any -> 192.168.1.0/24 111 (rpc: 100083,*,*; msg:\ttdb\??搠?敧?捯浵???o??< Resp

Resp关键字可以对匹配一条Snort规则的流量进行灵活的反应(flexible reponse -FlexResp)。FlexResp代码允许Snort主动地关闭恶意的连接。该插件合法的参数如下:

rst_snd - 向发送方发送TCP-RST数据包 rst_rcv - 向接受方发送TCP-RST数据包 rst_all - 向收发双方发送TCP_RST数据包 icmp_net - 向发送方发送ICMP_NET_UNREACH


Snort+中文手册.doc 将本文的Word文档下载到电脑
搜索更多关于: Snort+中文手册 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219