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

2023-11-21 12:59

本文主要是介绍ftp协议类漏洞研究-结合snort(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

cve-2004-1166

漏洞描述:
Microsoft Internet Explorer 6.0.2800.1106及更早版本中的CRLF注入漏洞允许远程攻击者通过ftp:// URL执行任意FTP命令,该URL在ftp command之前包含一个URL编码的换行符(“%0a”),这会导致命令插入到生成的FTP会话中,如使用PORT command所示。
此漏洞是由于ASCII控制字符处理不当造成的。 攻击者可以通过诱使用户单击包含ASCII控制字符的精心设计的URL来利用此漏洞。 利用漏洞攻击者需要知道FTP服务器的位置和地址以及目标用户可以连接的有效用户名和密码组合。 攻击者只能利用此漏洞以恶意URL中包含的帐户的权限运行FTP控制台命令。
由于FTP URL中的ASCII控制字符处理不当,存在此漏洞。 在Konqueror中,这些字符由kio_ftp和kioslave库处理。 当受影响的浏览器遇到ASCII控制字符(例如换行符)时,应用程序会将字符作为换行符传递。 因此,ASCII控制字符后面的任何字符都将作为控制台命令发布到FTP服务器。 这可以允许攻击者从受影响的用户系统向远程FTP服务器发出任意命令。 攻击者必须了解可以在恶意URL中使用的有效身份验证凭据,以获取对目标FTP服务器的访问权限。

Snort规则分析:
找到两种
第一种:
alert tcp $EXTERNAL_NET $HTTP_PORTS -> $HOME_NET any (msg:“ET EXPLOIT Microsoft IE FTP URL Arbitrary Command Injection” ; flow:from_server,established; content:“ftp://”; nocase; pcre:"/ftp://[^’ “]*%0a/i”; reference:url,osvdb.org/12299;reference:cve,2004-1166; classtype:attempted-user; sid:2003230; rev:2;)

1)在这里插入图片描述服务端对客户端的响应
2)在这里插入图片描述匹配
1.ftp://
2.除’,”之外的字符,匹配任意次
3.%0a,不区分大小写
组合起来,可以匹配:ftp://lalala%0a

第二种:
alert tcp $EXTERNAL_NET $HTTP_PORTS -> $HOME_NET any (msg:“BROWSER-IE Microsoft Internet Explorer FTP command injection attempt”; flow:to_client,established; file_data; content:“ftp|3A 2F 2F|”; fast_pattern:only; pcre:"/ftp\x3A\x2F\x2F[^\s]+?\x250[ad]/i"; metadata:service http; reference:bugtraq,11826; reference:cve,2004-1166; classtype:attempted-user; sid:18300; rev:7;)

1)在这里插入图片描述服务端对客户端的响应
2)在这里插入图片描述设置用来探测以下缓冲区的光标:http,smtp等
3)在这里插入图片描述
fast_only表示仅用于快速匹配,不用于规则选项。
^\s表示匹配任何非空字符
+?是惰性匹配,从左往右匹配,直到匹配到\x25(\x25其实就是%),0,a或b,不区分大小写
组合后,可以匹配如下:
ftp://abcdx%a

cve-2004-1376

漏洞描述:
Microsoft Internet Explorer 5.01,5.5和6.0中的目录遍历漏洞允许远程恶意FTP服务器覆盖任意文件,通过LIST command返回的文件名中的…(点点)序列

Snort规则分析:
alert tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg:“BROWSER-IE Microsoft Internet Explorer FTP client directory traversal attempt”; flow:to_server,established; content:“RETR|20 2F 2E 2E 2F 2E 2E 2F 2E 2E 2F 74 65 73 74 2F 70 6F 63 2E 61 61 61|”; fast_pattern:only; metadata:policy max-detect-ips drop, service ftp; reference:cve,2004-1376; classtype:misc-activity; sid:17446; rev:12;)
1)在这里插入图片描述客户端到服务器的请求
2)

匹配RETR,事实上,.是2e,/是2f
所以和漏洞描述的一样,标志性特征就是./…/…/
在这里插入图片描述
这个匹配过拟合,可以只匹配十六机制20 2F 2E 2E 2F 2E 2E 2F 2E 2E 2F

cve-2004-1992

漏洞背景:
漏洞是由于对某些命令的参数的边界检查不足造成的。 远程攻击者可以通过提供过长的字符串作为受影响命令的参数值来利用此漏洞。这会触发缓冲区溢出并导致Serv-U尝试从无效的内存位置读取。这会导致应用程序失败,从而导致拒绝服务(DoS)条件。
该漏洞是由于对list命令的参数的边界检查不足造成的。远程攻击者可以通过在执行list命令时向-l参数提交过长的值来利用此漏洞。结果,Serv-U尝试从应用程序的内存空间之外的内存中读取。这会触发未处理的异常并导致应用程序崩溃。

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 表示匹配LIST开头,\n为换行符,(?!\n)表示匹配?!和换行符,\s表示匹配任意空白符,[^\n]表示匹配换行符以外的字符,{128}表示匹配128次,后面跟着匹配smi
组合后的意思能匹配如下:
LIST?!
Fsdfg(128个)msi

cve-2007-0217

漏洞描述:
Microsoft Internet Explorer 5.01和6中的wininet.dll FTP客户端代码可能允许远程攻击者通过特定长度的FTP服务器响应执行任意代码,这会导致终止空字节写入缓冲区之外,从而导致堆损坏。
The vulnerability is due to insufficient sanitization of FTP server responses

Snort规则分析:
alert tcp $EXTERNAL_NET 21 -> $HOME_NET any (msg:“BROWSER-IE Microsoft Internet Explorer FTP Response Parsing Memory Corruption”; flow:to_client,established; isdataat:1023; pcre:"/\d{3}\s+[^\n]{1019}/smi"; metadata:service ftp; reference:bugtraq,22489; reference:cve,2007-0217; classtype:web-application-attack; sid:17367; rev:5;)
1)在这里插入图片描述服务器对客户端的响应
2)在这里插入图片描述确认数据起始处往后至少还有1023字节的数据
3)在这里插入图片描述
匹配数字3次
匹配非换行符1019次
匹配smi

组合起来可以匹配如下:
123a(1019个)smi

cve-2007-0247

漏洞描述:
Squid中的squid / src / ftp.c在2.6.STABLE7之前允许远程FTP服务器通过精心设计的FTP目录列表响应(FTP directory listing responses)导致拒绝服务(core dump),可能与(1)ftpListingFinish和(2)ftpHtmlifyListEntry函数有关。

Snort规则分析:
alert tcp $EXTERNAL_NET any -> $HOME_NET 3128 (msg:“DOS Squid proxy FTP denial of service attempt”; flow:established,to_server; content:“GET”; depth:3; nocase; content:“FTP|3A|//”; nocase; pcre:"/ftp\x3A\x2F\x2F[\w\x2E\x2F]+[^\x2F]\x3Btype=D/i"; metadata:policy security-ips drop; reference:bugtraq,22079; reference:cve,2007-0247; classtype:denial-of-service; sid:10135; rev:3;)

1)在这里插入图片描述客户端向服务器的请求
2)在这里插入图片描述数据部分前三个字节为get,不区分大小写
3)在这里插入图片描述
3a就是:
不区分大小写
ftp://
(字母或数字或下划线或汉字)或.或/
除/以外的字符
3b就是;
Type=D,不区分大小写

组合起来可以匹配:
ftp://.a;type=D

cve-2008-2541

漏洞描述:
CA eTrust Secure Content Manager 8.0中的HTTP网关服务(icihttp.exe)中的多个基于堆栈的缓冲区溢出允许远程攻击者通过长FTP响应执行任意代码或导致拒绝服务,这与(1)LIST命令中的file month字段相关; (2)PASV命令; (3)LIST命令中的directories,files和links。

由于对FTP PASV服务器响应过长的不安全处理,HTTP网关服务icihttp.exe中存在此漏洞。 默认情况下,该服务在TCP端口8080上运行。 未经身份验证的远程攻击者可以通过在HTTP网关外部创建恶意FTP服务器来利用此漏洞。 然后,从HTTP网关内部,攻击者可以登录到FTP服务器并发出PASV FTP命令。 此时,恶意FTP服务器可以使用非常长的响应来回复PASV命令。 当icihttp.exe处理此响应时,可能会发生缓冲区溢出,因为该服务没有分配足够的空间来处理精心设计的数据响应。 此溢出可能导致服务崩溃或使用SYSTEM权限执行任意代码。

Snort规则分析:
1.alert tcp $EXTERNAL_NET [20,1024:] -> $HOME_NET [20,1024:] (msg:“PROTOCOL-FTP Computer Associates eTrust Secure Content Manager LIST stack overflow attempt”; flow:established; stream_size:either,>,12800; content:“4096”; fast_pattern:only; pcre:"/[D\x2D][RWX\x2D]{9}\s+\w+\s+\w+\s+\w+\s+4096/i"; metadata:policy max-detect-ips drop, service ftp; reference:bugtraq,29528; reference:cve,2008-2541; reference:url,osvdb.org/show/osvdb/46012; reference:url,osvdb.org/show/osvdb/46013; classtype:attempted-user; sid:18575; rev:8;)
1)在这里插入图片描述匹配从任意一方过来的大于12800字节的会话session
2)在这里插入图片描述
\x2d就是-
匹配 D或-
匹配 R或W或X或- 9次
匹配 任意空字符
\w匹配 字母或数字或下划线或汉字
\s 匹配 任意空字符
。。。
匹配4096
不区分大小写

组合后,可以匹配如下:
-R-r-r-r-r- a a a 4096

2.alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:“FTP Computer Associates eTrust Secure Content Manager PASV stack overflow attempt”; flow:to_client, established; content:“227”; depth:3; pcre:"/\x28((\d{4,}|[3-9]\d\d|2[6-9]\d|25[7-9]),\d+,\d+,\d+|\d+,(\d{4,}|[3-9]\d\d|2[6-9]\d|25[7-9]),\d+,\d+|\d+,\d+,(\d{4,}|[3-9]\d\d|2[6-9]\d|25[7-9]),\d+|\d+,\d+,\d+(\d{4,}|[3-9]\d\d|2[6-9]\d|25[7-9])),\d+,\d+\x29/"; metadata:policy security-ips drop, service ftp; reference:cve,2008-2541; classtype:attempted-user; sid:13925; rev:2;)
1)在这里插入图片描述服务端发给客户端的响应
2)在这里插入图片描述数字起始前三个字节为227,
3)在这里插入图片描述
\x28是( 匹配 (
匹配 数字 大于等于4次 或者 3-9之间的数字+任意数字+任意数字 或者2+6到9之间的数字+任意数字 或者 25+7到9之间的数字
匹配 数字大于等于三次
。。。吐血了

cve-2008-3734

漏洞描述:
Ipswitch中的格式字符串漏洞WS_FTP Home 2007.0.0.2和WS_FTP Professional 2007.1.0.0允许远程FTP服务器导致拒绝服务(应用程序崩溃)或可能通过connection greeting(response)中的格式字符串说明符(format string specifiers )执行任意代码。

Snort规则分析:
alert tcp $EXTERNAL_NET 21 -> $HOME_NET any (msg:“PROTOCOL-FTP Ipswitch WS_FTP client format string attempt”; flow:to_client,established; content:"%"; fast_pattern:only; pcre:"/^(\d{3}\x20)?\S*\x25\w/i"; metadata:policy max-detect-ips drop, service ftp; reference:bugtraq,30720; reference:cve,2008-3734; classtype:attempted-user; sid:14770; rev:11;)

1)在这里插入图片描述服务端到客户端的响应
2)在这里插入图片描述匹配%
3)在这里插入图片描述
不匹配 连续三个数字+ (空格)
匹配任何非空白字符任意次
匹配%
匹配字母或数字或下划线或汉字
不区分大小写

组合起来可以匹配:
abcd%a

cve-2008-4321

漏洞描述:
FlashGet(以前是JetCar) FTP 1.9中的缓冲区溢出允许远程FTP服务器通过对PWD命令的长响应long response执行任意代码。
在处理过长的FTP PWD响应时,由于边界限制不足而存在漏洞。攻击者可以通过说服目标用户从配置为使用FlashGet从FTP服务器下载文件的Web浏览器连接到恶意FTP服务器来利用此漏洞。漏洞可能会在FlashGet中触发基于堆栈的缓冲区溢出情况,这可能导致浏览器崩溃,或者允许攻击者使用用户权限执行任意代码。攻击者可以通过说服用户按照链接从恶意FTP服务器下载文件来发起攻击。

Snort规则分析:
alert tcp $EXTERNAL_NET 21 -> $HOME_NET any (msg:“PROTOCOL-FTP FlashGet PWD command stack buffer overflow attempt”; flow:to_client,established; content:“257|20|”; pcre:"/^257\x20\S{257,}\x20/mi"; metadata:service ftp; reference:bugtraq,30685; reference:cve,2008-4321; classtype:attempted-user; sid:17518; rev:5;)

1)在这里插入图片描述服务端向客户端的响应
2)在这里插入图片描述
匹配 257,以及十六进制的20开头
匹配 非空字符大于的等于257次
匹配 16进制的20
匹配 mi

组合起来,可以匹配如下:
257/x20a(257个a)/x20mi

这篇关于ftp协议类漏洞研究-结合snort(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/402491

相关文章

【Linux】应用层http协议

一、HTTP协议 1.1 简要介绍一下HTTP        我们在网络的应用层中可以自己定义协议,但是,已经有大佬定义了一些现成的,非常好用的应用层协议,供我们直接使用,HTTP(超文本传输协议)就是其中之一。        在互联网世界中,HTTP(超文本传输协议)是一个至关重要的协议,他定义了客户端(如浏览器)与服务器之间如何进行通信,以交换或者传输超文本(比如HTML文档)。

【Go】go连接clickhouse使用TCP协议

离开你是傻是对是错 是看破是软弱 这结果是爱是恨或者是什么 如果是种解脱 怎么会还有眷恋在我心窝 那么爱你为什么                      🎵 黄品源/莫文蔚《那么爱你为什么》 package mainimport ("context""fmt""log""time""github.com/ClickHouse/clickhouse-go/v2")func main(

2024.9.8 TCP/IP协议学习笔记

1.所谓的层就是数据交换的深度,电脑点对点就是单层,物理层,加上集线器还是物理层,加上交换机就变成链路层了,有地址表,路由器就到了第三层网络层,每个端口都有一个mac地址 2.A 给 C 发数据包,怎么知道是否要通过路由器转发呢?答案:子网 3.将源 IP 与目的 IP 分别同这个子网掩码进行与运算****,相等则是在一个子网,不相等就是在不同子网 4.A 如何知道,哪个设备是路由器?答案:在 A

一种改进的red5集群方案的应用、基于Red5服务器集群负载均衡调度算法研究

转自: 一种改进的red5集群方案的应用: http://wenku.baidu.com/link?url=jYQ1wNwHVBqJ-5XCYq0PRligp6Y5q6BYXyISUsF56My8DP8dc9CZ4pZvpPz1abxJn8fojMrL0IyfmMHStpvkotqC1RWlRMGnzVL1X4IPOa_  基于Red5服务器集群负载均衡调度算法研究 http://ww

生信圆桌x生信分析平台:助力生物信息学研究的综合工具

介绍 少走弯路,高效分析;了解生信云,访问 【生信圆桌x生信专用云服务器】 : www.tebteb.cc 生物信息学的迅速发展催生了众多生信分析平台,这些平台通过集成各种生物信息学工具和算法,极大地简化了数据处理和分析流程,使研究人员能够更高效地从海量生物数据中提取有价值的信息。这些平台通常具备友好的用户界面和强大的计算能力,支持不同类型的生物数据分析,如基因组、转录组、蛋白质组等。

开题报告中的研究方法设计:AI能帮你做什么?

AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 大家都准备开题报告了吗?研究方法部分是不是已经让你头疼到抓狂? 别急,这可是大多数人都会遇到的难题!尤其是研究方法设计这一块,选定性还是定量,怎么搞才能符合老师的要求? 每次到这儿,头脑一片空白。 好消息是,现在AI工具火得一塌糊涂,比如ChatGPT,居然能帮你在研究方法这块儿上出点主意。是不

Modbus-RTU协议

一、协议概述 Modbus-RTU(Remote Terminal Unit)是一种基于主从架构的通信协议,采用二进制数据表示,消息中的每个8位字节含有两个4位十六进制字符。它主要通过RS-485、RS-232、RS-422等物理接口实现数据的传输,传输距离远、抗干扰能力强、通信效率高。 二、报文结构 一个标准的Modbus-RTU报文通常包含以下部分: 地址域:单个字节,表示从站设备

研究人员在RSA大会上演示利用恶意JPEG图片入侵企业内网

安全研究人员Marcus Murray在正在旧金山举行的RSA大会上公布了一种利用恶意JPEG图片入侵企业网络内部Windows服务器的新方法。  攻击流程及漏洞分析 最近,安全专家兼渗透测试员Marcus Murray发现了一种利用恶意JPEG图片来攻击Windows服务器的新方法,利用该方法还可以在目标网络中进行特权提升。几天前,在旧金山举行的RSA大会上,该Marcus现场展示了攻击流程,

Go 语言中Select与for结合使用break

func test(){i := 0for {select {case <-time.After(time.Second * time.Duration(2)):i++if i == 5{fmt.Println("break now")break }fmt.Println("inside the select: ")}fmt.Println("inside the for: ")}} 执行后

Science Robotics 首尔国立大学研究团队推出BBEX外骨骼,实现多维力量支持!

重复性举起物体可能会对脊柱和背部肌肉造成损伤,由此引发的腰椎损伤是工业环境等工作场所中一个普遍且令人关注的问题。为了减轻这类伤害,有研究人员已经研发出在举起任务中为工人提供辅助的背部支撑装置。然而,现有的这类装置通常无法在非对称性的举重过程中提供多维度的力量支持。此外,针对整个人体脊柱的设备安全性验证也一直是一个缺失的环节。 据探索前沿科技边界,传递前沿科技成果的X-robot投稿,来自首尔国立