Snort+Scapy(二)

本次实验的目的是构造规则检测连续的俩个流
if snort see two packets in a TCP flow with
• first packet has “login” or “Initial” in payload, destination port is 3399;
• and second packet has a “IPv4Address:Port”string(E.g. 123.45.6.7:8080) in payload. destination port is 3399;
• output a alert with msg “bot founded” and sid 1000001;

利用flowbits来控制对连续多条流的检测
flowbits:set,name
flowbits:isset,name 当对应name的flowbits为置位状态时,才执行规则的其它操作
flowbits:toggle,name 反置当前操作
flowbits:unset,name 取消流中的置位。
flowbits:isnotset,name
flowbits:noalert 设置后将不会发出警报

例如如下规则:

alert tcp any any -> any any (content:"***";flowbits:set,userlogin;flowbits:noalert;sid:100001;)
alert tcp any any -> any any (msg:"bot";content:"***";flowbits:isset,userlogin;sid:1000001;)

在这样的规则条件下,当一个报文的负载被第规则1匹配后,flowbits置位,并且不发出警报,等到接下来另一条流被规则2匹配后,假如flowbits已置位,则发出警报。

关于ipv4地址正则表达式部分:
[1-9] 匹配数字1-9
\d{2,5} 匹配任意数字,允许重复出现2-5次
\. 匹配小数点
\: 匹配冒号

接下来就是利用scapy构造流
可以选择向上篇文章一样一直打开snort,每次用scapy手动发送两个包
或者直接利用wrpcap("bot.pcap",pkt)封装报文
有个小技巧,可以利用命令行mergecap,将两个pcap包合并成一个

mergecap -w bot.pcap bot1.pcap bot2.pcap

tips:snort的检测规则可能是设定了两个流之间的间隔时长,相隔时间较久的话第一个flowbits置位会被取消。

直接用snort检测pcap包

sudo ./snort -c ./soft/snort-2.9.19/rules/snort.conf -r bot.pcap -A fast
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值