用于翼ftp服务器认证命令执行的Snort规则

时间:2015-02-16 13:11:41

标签: snort intrusion-detection

您好我正在为大学项目编写一些自定义规则,我想知道是否有人可以检查我的规则是否存在此漏洞; http://www.exploit-db.com/exploits/34517/

这是我的规则;

任何警告tcp任何 - >任何5466 (msg:“FTP命令执行”;内容:“/ admin lua script html”;内容:“POST”; http_method;内容:“os execute”;)

修订规则;提醒你任何一个 - >任何5466 (msg:“FTP命令执行”;内容:“/ admin_lua_script.html”;内容:“POST”; http_method;内容:“os execute”;)

1 个答案:

答案 0 :(得分:0)

我会推荐以下内容:

alert tcp any any -> any 5466 / 
(msg:"FTP command execution"; flow:to_server,established; /
content: "POST"; http_method; nocase; /
content:"/admin_lua_script.html"; fast_pattern; http_uri;/ 
content:"command=os.execute"; http_client_body; nocase; /
metadata: service http;) 

说明:

dest port 5466:
您应该始终指定端口。如果源/目标snort的规则是“any / any”,则它们的处理方式与定义端口的规则不同 重要事项:由于此漏洞利用模块在端口5466上运行并且是http,因此您需要确保此端口位于端口的http预处理器配置中。具体来说,您的snort.conf应具有类似于以下内容的配置行:

预处理程序http_inspect_server:服务器默认配置文件所有端口{80 ... 5466 ...}

(显然不要点,只是代表你应该拥有的其他端口)。如果您的预处理器配置中没有此端口用于http,则所有http内容修饰符都不匹配,因为snort不会将此端口上的流量视为http,这可能是您遇到的主要问题。

流量:to_server成立;
您只想检查流到服务器的已建立会话。这将更有效,因为snort不必检查未建立会话的随机流量,也不必检查流向客户端的流量,因为您知道此漏洞的方向将始终发送到服务器。请求成功的唯一方法是,如果已经在客户端和服务器之间建立了连接,如果不是漏洞利用将不会成功,并且对此提出警告毫无意义。

内容:“POST”; http_method; NOCASE;
您希望nocase用于匹配匹配,因为http不需要该方法为全部大写字母。

内容: “/ admin_lua_script.html”; fast_pattern; http_uri;
添加fast_pattern选项将使规则更有效,因为它将把它放入snort中的快速模式匹配器中。您知道此内容是静态的且永远不会更改(包括案例),因此这适用于快速模式匹配器。由于这是区分大小写的唯一内容匹配,因此区分大小写的snort会将其放入快速模式匹配器中,但如果您稍后使用其他内容匹配修改规则,则您希望此内容匹配使用对于fast_pattern匹配器。

内容: “命令= os.execute”; http_client_body; NOCASE;
这将在客户端主体中,因此添加http_client_body选项。

元数据:服务http;
如果您使用target based(现在应该是一天),则需要添加服务http关键字。如果您没有使用基于目标的规则,那么在规则中使用此规则将无法阻止规则触发,因此如果您知道此流量所使用的服务,那么将其置于其中也是一种很好的做法。

附加说明:
您的自定义规则sid应为1000000或更高,低于此值的任何内容都将保留用于snort分发规则。查看有关here

的更多信息