我需要为以下数据包编写snort规则以进行OS检测(Nmap):
ICMP回显(IE) IE测试包括向目标发送两个ICMP回显请求数据包。第一个具有IP DF位置1,服务类型(TOS)字节值为零,代码为9(即使应为零),序列号295,随机IP ID和ICMP请求标识符,并将120字节的0x00用作数据有效载荷。
第二个ping查询类似,除了使用的TOS为4(IP_TOS_RELIABILITY),代码为零,发送了150个字节的数据以及ICMP请求ID和序列号从之前的查询值增加了一个
这两种探针的结果都合并到一个IE行中,该行包含R,DFI,T,TG和CD测试。如果两个探针均引起响应,则R值仅是true(Y)。 T和CD值仅用于对第一个探针的响应,因为它们极不可能发生差异。 DFI是针对这种特殊双探针ICMP情况的自定义测试。
这些ICMP探查紧随TCP序列探查之后,以确保共享IP ID序列号测试的有效结果(请参阅“共享IP ID序列布尔(SS)共享”部分)。
我写了以下规则:
alert icmp any any -> any any (msg:"i1"; sid:1000001; icmp_seq:295; tos:0; dsize:120; content:"|00|"; fragbits:D; icode:9;)
alert icmp any any -> any any (msg:"i2"; sid:1000002; icmp_seq:296; tos:4; dsize:150; content:"|00|"; fragbits:D; icode:0;)
此规则是错误的。我不知道如何纠正它们,如果有人可以帮助我,我会很高兴。提前致谢。