抓包分析FTP协议及原理

admin 2025年2月11日00:36:51评论8 views字数 2491阅读8分18秒阅读模式

理论

简介

FTP(File Transfer Protocol)即文件传输协议,是一种基于「TCP」的协议,采用「客户/服务器」模式。通过FTP协议,用户可以在FTP服务器中进行文件的上传或下载等操作。它也是一个应用程序,用户可以通过它把自己的计算机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。FTP服务的功能是实现完整文件的异地传输。

FTP是用来在两台计算机之间传输文件,是Internet中应用非常广泛的服务之一。它可根据实际需要设置各用户的使用权限,同时还具有跨平台的特性,即在UNIX、Linux和Windows等操作系统中都可实现FTP客户端和服务器,相互之间可跨平台进行文件的传输。因此,FTP服务是网络中经常采用的资源共享方式之一。

模式

主动模式port

在主动模式下,FTP客户端首先与FTP服务器的21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送Port命令。Port命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过其TCP20端口连接到客户端的指定端口发送数据。FTP服务器必须与客户端建立一个新的连接用来传送数据。主动FTP连接过程如下:

抓包分析FTP协议及原理

「命令连接:客户端>1024端口→服务器21端口;」

「数据连接:客户端>1024端口←服务器20端口。」

被动模式pasv

在被动模式下,建立控制通道时与主动模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到Pas命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器上的这个端口,然后FTP服务器将通过这个端口传送数据。在这种情况下,FTP服务器不再需要与客户端建立一个新的连接,被动FTP连接过程如下:

抓包分析FTP协议及原理

「命令连接:客户端>1024端口→服务器21端口;」

「数据连接:客户端>1024端口→服务器>1024端口」

主动与被动FTP优缺点

主动FTP对FTP服务器的管理有利,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。

FTP服务器特点

(一)FTP使用两个平行连接:控制连接和数据连接。控制连接在两主机间传送控制命令,如用户身份、口令、改变目录命令等。数据连接只用于传送数据。

(二)在一个会话期间,FTP服务器必须维持用户状态,也就是说,和某一个用户的控制连接不能断开。另外,当用户在目录树中活动时,服务器必须追踪用户的当前目录,这样,FTP就限制了并发用户数量。

(三)FTP支持文件沿任意方向传输。当用户与一远程计算机建立连接后,用户可以获得一个远程文件也可以将一本地文件传输至远程机器。

FTP命令

访问命令

访问命令
解释
USER
用于指定登录的用户名,以便服务器进行身份验证。USER命令通常是控制连接建立后发出的第一个命令。
PASS
用于指定用户密码,该命令用于登录用户命令之后。
REIN
重新初始化用户信息,该命令会终止当前 USER的传输,也会终止正在传输的数据,然后重置所有参数,并打开控制连接,以便客户端再次发出USER命令。
QUIT
关闭与服务器之间的连接。

2.模式设置命令

模式设置命令
解释
PASV
告诉服务器,让FTP服务器在指定的数据端口进行监听,被动接受客户端的请求。是默认模式。
PORT
告诉FTP服务器,客户端监听的端口号是address,FTP服务器采用主动模式连接客户端。
TYPE
指定要传输的数据类型,有ASCLL和二进制。
MODE
指定传输模式,S(流),B(块),C(压缩)。

3.文件管理命令

文件管理命令
解释
CWD
用户可以在不同的目录或数据集下工作而不改变登录信息,directory一般是用户名与系统相关的文件集合。
PWD
返回当前工作目录。
MKD>
在指定目录下创建新目录,directory表示指定目录的字符串。
CDUP
回到上层目录。
RMD
删除指定目录。
LIST
返回指定路径下的子目录及文件列表,name为路径,若省略,返回当前路径下的文件列表。
NLIST
返回指定路径下的目录列表,省略路径时,返回当前目录。
RNFR
重新命名文件,该命令的下一条命令用RNTO指定新的文件名。
RNTO
和RNFR命令共同完成对文件的重命名。
DELE
删除指定路径下的文件。

4.文件传输命令

文件传输命令
解释
RETR
下载指定路径的文件。
STOR
上传一个指定的文件,并将其存储在指定的位置,如果文件已经存在,原文件被覆盖,如果文件不存在,则创建新文件。

FTP响应码

客户端发送FTP命令后,服务器会返回FTP的响应码,FTP响应码由ASCLL编码的3为数字开头,后接一行文本提示信息,数字和提示信息中有一个空格,每个响应码以回车换行结束。

第一位数字代表的含义

响应码
含义
1XX
信息已经被服务器正确接收,但尚未处理。
2XX
信息已经被服务器正确处理完毕。
3XX
信息已经被服务器正在接收,并正在处理。
4XX
信息处理错误,暂时的。
5XX
信息处理错误,永久的。

第二位数字代表的含义

响应码
含义
X0X
语法错误。
X1X
系统状态和信息。
X2X
与FTP服务器连接状态。
X3X
用户认证有关信息。
X4X
未定义。
X5X
与文件系统有关的信息。

抓包分析

FTP连接与密码明文抓取

服务器端创建FTP站点
抓包分析FTP协议及原理
在客户端连接登录到FTP服务器
抓包分析FTP协议及原理
登录成功
抓包分析FTP协议及原理
查看FTP连接时的帧信息
抓包分析FTP协议及原理
查看FTP连接时的链路层信息
抓包分析FTP协议及原理
查看FTP连接时的网络层信息
抓包分析FTP协议及原理
查看抓取到FTP连接时数据包中所包含的传输层信息。

「该包为TCP“三次握手”的第一次」

抓包分析FTP协议及原理

「TCP“三次握手”的第二次。」

抓包分析FTP协议及原理

「TCP“三次握手”的第三次。」

抓包分析FTP协议及原理
传输建立后,服务器做出响应,查看该分组包
抓包分析FTP协议及原理
抓包分析FTP协议及原理
在传输连接成功后,客户端会进行匿名用户登录
抓包分析FTP协议及原理
进行键入用户和口令登录

「通过抓包可以看到用户名和明文密码」

抓包分析FTP协议及原理

原文始发于微信公众号(泷羽sec-何生安全):抓包分析FTP协议及原理

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月11日00:36:51
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   抓包分析FTP协议及原理https://cn-sec.com/archives/3663245.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息