我正在尝试熟悉Snort,因此,我设置了三个VM。 Kali,一台带有 XAMPP 和 Ubuntu 的 Windows 机器,我在其中安装了 Snort。
我相信我已经在 Afpacket 内联模式下运行 Snort。每当 Snort 启动时,它都会显示“启用内联操作 - 以 IDS 模式运行”
在 Windows 机器上,有一个 FTP 服务器,用户名为“John”,密码为:123456。我在 Kali 上使用 Ncrack 攻击该服务器,它能够在大约 2 分钟内找到密码。我试图阻止攻击并能够区分真实用户(我试图登录主机)和攻击者。我的计划是制定这样的规则:“如果服务器在 1 秒内收到超过 5 次登录尝试,则丢弃数据包/尝试。”
我进行了很多搜索,这周我花了很多时间都找不到正确的规则。
你有什么建议吗?我应该尝试什么规则?我做错了什么吗?谢谢
到目前为止我已经尝试过的:
Alert tcp any any -> $HOME_NET 21 (msg:"传入 FTP 连接"; flags:S; sid:10000010;) #alert tcp $EXTERNAL_NET any -> $HOME_NET 22 (msg: "传入 SSH 连接"; GID:1 ; sid:10000012; rev:001;) #drop tcp $HOME_NET 21 -> $EXTERNAL_NET any (msg:"FTP 登录错误"; 内容:"530 登录"; nocase; flow:from_server,built; classtype:bad-unknown ;阈值:输入两者,跟踪 by_dst,计数 5,秒 sid:491;)
#alert tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg:"可能的 FTP 暴力攻击"; 元数据:service ftp-data; session:binary; sid:10000011; rev:001;)
#drop tcp $HOME_NET 21 -> $EXTERNAL_NET any (msg:"FTP 暴力攻击尝试"; content:"530 登录或密码不正确!"; nocase; flow: 无状态; 阈值: type Both, track by_dst, count 3,秒 1;sid:10000012;rev:1;)
#drop tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg:"FTP 传入连接"; flags:S; 阈值: 键入两者, track by_src, 计数 3, 秒 1; sid:100000011; rev:1;)
#drop tcp $EXTERNAL_NET any -> $HOME_NET 21 ( msg:"协议-FTP 用户溢出尝试"; flow:to_server,builted; content:"USER",nocase; isdataat:100,relative; pcre:"/^USER( ?!\n)\s[^\n]{100}/smi";元数据:policy max-detect-ips drop,规则集社区;参考:bugtraq,1>
#drop tcp $EXTERNAL_NET any -> $HOME_NET 21 ( msg:"协议-FTP PASS 溢出尝试";flow:to_server,builted; content:"PASS",nocase; isdataat:100,relative; pcre:"/^PASS( ?!\n)\s[^\n]{100}/smi";元数据:策略 max-detect-ips drop,规则集社区参考:bugtraq,1>
#drop tcp $EXTERNAL_NET any -> $HOME_NET 21 ( msg:"协议-FTP ProFTPD 用户名 sql 注入尝试"; flow:to_server,已建立;内容:"|25 27|",fast_pattern,nocase;内容:"USER"; pcre:"/USER\s*[^\x0d]+\x25\x27/smi"; 元数据:policy max-detect-ips drop; 参考:> #drop tcp $HOME_NET 21 -> $EXTERNAL_NET any (msg:" FTP 登录失败"; 内容: "530 登录 "; nocase; flow:from_server,builted; 阈值: type Both,track by_dst,count 10,秒 15; sid:10000011; ) #drop tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg:"FTP 登录成功";内容:"PASS";nocase;偏移量:0;深度:4;内容:"|0a|";within:3;流程:from_client,已建立;阈值:键入两者,跟踪 by_dst ,计数 10,秒 sid:10000012;
拒绝 tcp $HOME_NET 任何 -> $EXTERNAL_NET 任何 (msg: "BLEEDING-EDGE-SCAN 潜在 FTP 暴力尝试"; flow:from_server,builted; content:"530 "; pcre: "/^530\s+(Login| User)/smi"; classtype:不成功的用户;阈值:类型阈值,track by_dst,计数 5,秒 30; sid:2002383; rev:3;)
#alert tcp $HOME_NET 21 -> $EXTERNAL_NET any (msg:"ET SCAN 潜在的 FTP 暴力尝试"; flow:from_server,builted; dsize:<100; content:"530 "; depth:4; pcre:"/ 530\s+(Login|User|Failed|Not)/smi";classtype:unsuccessful-user;阈值:同时输入,track by_dst,计数 5,秒 30;参考:url,doc.emergingthreats.net/2002383;参考:网址,www.emergingthreats.net/cgi-bin/cvsweb.cgi/sigs/SCAN/SCAN_FTP_Brute_Force;sid:2002383;)
上面大部分都带日志,我认为有些块,但不是我真正想要的。