【snort】snort规则编写

题目

在这里插入图片描述

题目分析

本次题目对比第一次而言有不少难点:

  1. 两条规则 :两条规则同时匹配,才会命中某个报文流;
  2. 第一条规则中是对 “login” 或者 “Initial” 进行命中;
  3. has a " IPv4Address:Port " string (E.g.123.45.6.7:8080) in payload
    第二条规则中的命中则是对一类地址进行匹配 ,

解决办法

逻辑或的内容匹配——login 或 Initial

用pcre实现

pcre:"login|Initial"
两条规则匹配:设置flowbits规则

第一条规则设置一个标志位 botlogin ,同时设定不发出警报

flowbits:set,botlogin;flowbits:noalert;

第二条规则中检测 标志位是否为1

flowbits:isset,botlogin;
IPV4地址匹配

IP地址:将0-255拆分成:0-9,10-99,100-199,200-249,250-255
(已将确定性强(更特殊)的部分放到整个正则表达式的最前面)[^2]

25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)

故IPV4地址则为:0.0.0.0—255.255.255.255则为

((25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9][0-9]|[0-9])

端口号:0-65535
(与IP同理,拆成小项)

6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|[1-5]\d{4}|\d{1,4}

故最终的匹配规则为:(IP地址:端口号)

pcre:"/((25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9][0-9]|[0-9]):(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|[1-5]\d{4}|\d{1,4})/"

提交答案

则最终的答案为:

alert tcp any any -> any 3399 (flags: A; msg: "bot founded"; pcre:"login|Initial";flowbits:set,botlogin;flowbits:noalert;sid: 1000002; )
alert tcp any any -> any 3399 (flags: A; msg: "bot founded";pcre:"/((25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9][0-9]|[0-9]):(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|[1-5]\d{4}|\d{1,4})/";flowbits:isset,botlogin;sid: 1000001;)

参考资料:
Snort Rules——使用pcre进行规则匹配.
IPv4 地址匹配 正则表达式.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值