ftp协议类漏洞研究-结合snort(二)

cve-2008-4501

漏洞描述:
Serv-U 7.0.0.1到7.3中FTP服务器中的目录遍历漏洞(包括7.2.0.1)允许远程认证用户通过RNTO命令中的… \(点点反斜杠)覆盖或创建任意文件。
该漏洞是由于重命名FTP服务器上的文件时出错。 攻击者可以通过重命名位于主机系统上的现有文件来利用此漏洞。 攻击者可以利用此功能覆盖关键系统文件,从而导致拒绝服务(DoS)条件,或者在某些情况下,执行任意代码。
攻击者可以利用rnfr命令确定FTP服务器上是否存在文件,然后使用rnto命令重命名该文件。

Snort规则分析:
alert tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg:“FTP Rhino Software Serv-U Server RNTO directory traversal attempt”; flow:to_server,established; content:“RNTO”; depth:4; nocase; pcre:"/rnto\s[\s\x0d\x0a]*\x2e\x2e(\x2f|\x5c)/i"; metadata:policy balanced-ips drop, policy security-ips drop, service ftp; reference:bugtraq,31563; reference:cve,2008-4501; classtype:suspicious-filename-detect; sid:14743; rev:2;)
1)在这里插入图片描述客户端发向服务端的请求
2)在这里插入图片描述前4个字节为RNTO,不区分大小写
匹配任何空白字符
匹配除 任何空白字符或\x0d或\x0a 以外的字符任意次
匹配 …/ 或 …
不区分大小写

cve-2009-0351

漏洞描述:
WinFTP 2.3.0中WFTPSRV.exe中基于堆栈的缓冲区溢出允许远程认证用户通过以*(星号)字符开头的长LIST参数执行任意代码。

Snort规则分析:
alert tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg:“PROTOCOL-FTP LIST buffer overflow attempt”; flow:to_server,established; content:“LIST”; nocase; isdataat:128,relative; pcre:"/LIST(?!\n)\s[\n]{128}/smi"; metadata:policy max-detect-ips drop, ruleset community, service ftp; reference:bugtraq,10181; reference:bugtraq,14339; reference:bugtraq,33454; reference:bugtraq,58247; reference:bugtraq,6869; reference:bugtraq,7251; reference:bugtraq,7861; reference:bugtraq,8486; reference:bugtraq,9675; reference:cve,1999-0349; reference:cve,1999-1510; reference:cve,2000-0129; reference:cve,2004-1992; reference:cve,2005-2373; reference:cve,2007-0019; reference:cve,2009-0351; reference:url,technet.microsoft.com/en-us/security/bulletin/MS99-003; classtype:misc-attack; sid:2338; rev:35;)
1)在这里插入图片描述客户端发往服务端的请求
2)在这里插入图片描述不区分大小写匹配LIST
3)在这里插入图片描述2)匹配后至少有128字节的内容
4)在这里插入图片描述
匹配 LIST开头
匹配 ?!换行符
匹配 任何空白字符
匹配 除换行符外的字符128次
匹配 smi

组合起来,可以匹配如下:
LIST?!
A(128个)smi

cve-2010-0625

漏洞描述:
Novell NetWare 5.1到6.5 SP8中FTP服务器中5.10.01之前的NWFTPD.nlm中基于堆栈的缓冲区溢出允许远程认证用户导致拒绝服务(守护程序崩溃)或可能通过长(1)MKD(2)RMD,(3)RNFR,或(4)DELE命令执行任意代码

Snort规则分析:
alert tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg:“PROTOCOL-FTP Cisco IOS FTP MKD buffer overflow attempt”; flow:to_server,established; content:“MKD “; depth:4; isdataat:75,relative; content:!”|0D|”; within:75; content:!"|0A|"; within:75; metadata:policy max-detect-ips drop, service ftp; reference:bugtraq,11772; reference:bugtraq,15457; reference:bugtraq,23885; reference:bugtraq,39041; reference:bugtraq,612; reference:bugtraq,7278; reference:bugtraq,9872; reference:cve,1999-0911; reference:cve,2004-1135; reference:cve,2005-3683; reference:cve,2007-2586; reference:cve,2009-3023; reference:cve,2010-0625; reference:nessus,12108; reference:url,osvdb.org/show/osvdb/35334; reference:url,technet.microsoft.com/en-us/security/bulletin/MS09-053; reference:url,www.kb.cert.org/vuls/id/276653; classtype:attempted-admin; sid:23055; rev:6;)

1)在这里插入图片描述客户端到服务器的响应
2)在这里插入图片描述数据起始前4个字节为MKD (有一个空格)
3)在这里插入图片描述数据起始部分至少79个字节有内容
4)在这里插入图片描述在5~79字节内不能匹配十六进制0D

cve-2010-3972

漏洞描述:
用于Internet信息服务(IIS)7.0和IIS 7.5的Microsoft FTP服务7.0和7.5中的ftpsvc.dll中的TELNET_STREAM_CONTEXT :: OnSendData函数中的基于堆的缓冲区溢出允许远程攻击者执行任意代码或导致拒绝服务( 守护程序崩溃)通过精心设计的FTP命令,即“IIS FTP服务堆缓冲区溢出漏洞”。
该漏洞的存在是因为受影响的软件无法对通过FTP请求接收的输入执行足够的清理。
未经身份验证的远程攻击者可以通过向易受攻击的系统提交包含过大参数的恶意FTP请求来利用此漏洞。 处理此类格式错误的请求可能会导致内存损坏,从而终止FTP服务,从而导致DoS情况或允许攻击者在系统上执行任意代码。
该漏洞的存在是因为受影响的软件对通过FTP请求接收的输入执行的边界检查不足。

Snort规则分析:
alert tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg:“SERVER-IIS Microsoft Windows 7 IIS7.5 FTPSVC buffer overflow attempt”; flow:to_server,established; content:"|BF FF EF EF BB BF FE FF EF BB BF FF EF FF EF EF BB BF EF BB|"; fast_pattern:only; metadata:policy max-detect-ips drop, policy security-ips drop, service ftp; reference:bugtraq,45542; reference:cve,2010-3972; reference:url,technet.microsoft.com/en-us/security/bulletin/MS11-004; classtype:attempted-admin; sid:18243; rev:10;)
1)在这里插入图片描述客户端发往服务端的请求
2)在这里插入图片描述
匹配括号中的内容

cve-2010-4228

漏洞描述:
在Novell NetWare的FTP服务器中,5.10.02之前的NWFTPD.NLM中基于堆栈的缓冲区溢出允许远程认证用户通过长DELE命令执行任意代码或导致拒绝服务(异常终止)
该漏洞是由受影响的软件对用户提供的输入执行的边界检查不足造成的
经过身份验证的远程攻击者可以通过向受影响的软件使用的DELE命令提交过大的参数来利用此漏洞。参数的处理可能导致应用程序在不适当大小的缓冲区中复制用户提供的输入,从而导致缓冲区溢出,从而破坏内存。攻击者可以利用内存损坏来利用易受攻击的应用程序的特权在系统上执行任意代码。漏洞利用尝试失败可能导致拒绝服务条件

Snort规则分析:
alert tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg:“PROTOCOL-FTP DELE overflow attempt”; flow:to_server,established; content:“DELE”; nocase; isdataat:100,relative; pcre:"/DELE(?!\n)\s[\n]{100}/mi"; metadata:policy max-detect-ips drop, policy security-ips drop, ruleset community, service ftp; reference:bugtraq,15457; reference:bugtraq,2972; reference:bugtraq,46922; reference:cve,2001-0826; reference:cve,2001-1021; reference:cve,2005-3683; reference:cve,2010-4228; reference:nessus,11755; classtype:attempted-admin; sid:1975; rev:26;)

1)在这里插入图片描述客户端发到服务端的请求
2)在这里插入图片描述匹配dele,不区分大小写
3)在这里插入图片描述在2)匹配处往后的至少有100字节数据
4)在这里插入图片描述
匹配 DELE开头
匹配 ?!换行符
匹配 任意空白字符
匹配 出换行符以外的字符100次
匹配mi

组合起来,可以匹配如下;
DELE?!
A(100个)mi

cve-2014-4877

漏洞描述:
在启用递归的情况下,1.16之前的GNU Wget中的绝对路径遍历漏洞允许远程FTP服务器写入任意文件,从而通过LIST响应执行任意代码,该响应在两个entry中引用相同的filename,其中一个表示 filename用于符号链接。

Snort规则分析:
alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:“BROWSER-OTHER WGet symlink arbitrary file write attempt”; flow:to_client,established; content:“total “; depth:6; content:”|0D 0A|l”; within:20; content:" -> "; within:100; metadata:policy security-ips drop, service ftp; reference:bugtraq,70751; reference:cve,2014-4877; classtype:attempted-user; sid:32375; rev:1;)
1)在这里插入图片描述服务端到客户端的响应
2)在这里插入图片描述数据起始处前6个字节为total (还有个空格)
3)在这里插入图片描述在数据起始处第6字节到第26字节之间匹配|0d 0a|1
4)在这里插入图片描述在3)匹配之后不超过100字节的范围内匹配 -> (前后都有一个空格)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值