Snort:当Wordpress登录违反规则时,用户将无法登录


Snort: users are not able to login when Wordpress Login Bruteforcing rule is on

我从https://rules.emergingthreats.net/open/snort-2.9.0/rules/emerging-web_server.rules

警告tcp$EXTERNAL_NET任意->$HTTP_SERVERS$HTTP_PORTS(消息:"ET检测到WEB_SERVER Wordpress登录漏洞";流:to_server,已建立;内容:"/wp-login.php";nocase;fast_pattern;http_uri;内容:"POST";http_method;content:"log|3d|";http_client_body;内容:"pwd|3d|";http_client_body;阈值:键入both,track by_src,count 5,seconds60;classtype:尝试重新配置;sid:2014020;修订版:3;(

当我将其从"提醒"更改为"拒绝"时,我将无法登录。(上面写着连接被重置(我不太明白这个规则是什么意思。(我所理解的是,当登录时,它在post/get方法中查找log或3d。查找client_body pwd 3d。尝试重新配置意味着,有人在"探测"服务器(

当使用"拒绝"时,只有一个用户能够登录wordpress。另外三个用户在Chrome中拥有"ERR_CONNECTION_RESET"

该规则可能写得不太好,因此您在合法登录时会得到误报。该规则可能需要修改,这样它就不会阻止合法的登录尝试,或者你应该将其保留为警报,只需调查每个警报,看看它是否是侦察尝试。

为了澄清这条规则的目的:

内容:"/wp-login.php";nocase;fast_pattern;http_uri;

这是在uri中查找登录页面,即"http://example.com/wp-login.php">

内容:"POST";http_method;

这是在寻找POST方法,所以它将是对类似上面URL的内容的POST请求。

content:"log|3d|";http_client_body;

这并不是像你建议的那样,寻找内容"log"或3d,当你在snort内容规则中使用垂直管道时,这意味着它在寻找垂直管道内的十六进制值。这实际上是在寻找从十六进制转换为ascii时的内容"log=",因为3d是"="。您可以使用像这样的网站将十六进制转换为ascii。因此,这本质上是在http客户端主体中寻找一个名为"log"的变量。

内容:"pwd|3d|";http_client_body;

这是在客户端主体中查找内容"pwd="。

阈值已折旧,不应使用(应使用detection_filter(,但它只是用来确定何时生成警报。

该规则可能试图寻找试图获得服务器日志存储位置信息的人,因为"pwd"通常指"打印工作目录",而日志将是日志文件,所以我猜wordpress中存在某种漏洞,允许某人发送精心编制的请求,服务器会返回其当前目录和日志记录到的文件或类似的东西。

此内容或请求可能在某些wordpress服务器中很常见,因此您可能希望修改此规则,使其不查找合法请求中的内容。

当您将其更改为拒绝时,snort会在该规则发出警报时发送重置数据包,这就是为什么客户端会在chrome中收到重置消息。