FTP主动模式和被动模式!

FTP主动模式和被动模式!,第1张

FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。

默认情况下FTP协议使用TCP端口中的 20 和 21 这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。

FTP支持两种模式,它在工作运行时也主要是这两种模式,一种模式叫作Standard也被称为PORT方式和 主动方式 ,另一种模式叫作Passive也叫作PASV, 被动方式 。Standard模式FTP的客户端发出PORT命令到服务器,Passive模式FTP的客户端发送PASV命令到FTP Server中,从而保证文件相互传输正常。

我们使用华为的模拟器Ensp来做一个小实验。

FTP三次握手有两次,第一次的TCP三次握手是控制层的握手,第二次是数据层的TCP三次握手

(1)服务器打开端口 21,等待连接;

(2)客户端(100.1.12.1)发起控制连接的建立请求,服务器响应连接,控制连接建立,使用TCP 三次握手(第一次TCP三次握手)

随机端口的计算

可以看到PORT为 10,0,0,2,8,6

随机端口计算为: 8*256+6=2054

(3)客户端通过控制连接发送 PORT 命令(在应用层数据中带有自己的 ip 地址和临时端口),将客户端数据连接的临时端口号告诉服务器

(4)服务器的 20 号端口与客户端建立起数据连接,使用TCP 三次握手(第二次TCP三次握手)

点击登出后控制端口断开连接

FTP三次握手有两次,第一次的TCP三次握手是控制层的握手,第二次是数据层的TCP三次握手

(1)服务器打开端口 21,等待连接

(2)客户端发起控制连接的建立请求,服务器响应连接,控制连接建立,使用TCP 三次握手(第一次TCP三次握手);

(3)客户端通过控制连接发送命令字 PASV,告知服务器处于被动模式;

(4)服务器回应,将服务器数据连接的临时端口号(2060)告诉客户端;

(5)客户端与服务器的临时端口建立起数据连接,使用TCP 三次握手(第二次TCP三次握手)

在遇到了一个wireshark数据包分析题之后,看到了ftp的相关信息,但是没找到相关的flag信息,请教了大佬的解释,才知道ftp文件传输并不是在21端口,ftp文件传输有主动和被动两种方式,

被动(PASV)模式:

PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条控制连接。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。

服务器控制端口(21),服务器端等待的数据传输端口(动态申请)

ftp服务器动态申请一个端口(一般大于1024)然后告诉客户端,我在这个端口上等待你的连接,客户端收到以后便向服务器的这个端口发起连接,数据连接建立以后,数据传输就可以开始了

端口计算方法:172,16,101,104,7,254,256*7+254=2046

一次完整的被动连接及数据传输过程:

状态: 正在连接 172.16.101.104:21...

状态: 连接建立,等待欢迎消息...

响应: 220 Serv-U FTP Server v6.4 for WinSock ready...

命令: USER test

响应: 331 User name okay, need password.

命令: PASS ****

响应: 230 User logged in, proceed.

状态: 已连接

状态: 读取目录列表...

命令: PWD

响应: 257 "/" is current directory.

状态: 列出目录成功

状态: 正在连接 172.16.101.104:21...

状态: 连接建立,等待欢迎消息...

响应: 220 Serv-U FTP Server v6.4 for WinSock ready...

命令: USER test

响应: 331 User name okay, need password.

命令: PASS ****

响应: 230 User logged in, proceed.

状态: 已连接

状态: 开始上传 E:\Downloads\liuzhigong\liuzhigong\404.htm

命令: CWD /

响应: 250 Directory changed to /

命令: TYPE A

响应: 200 Type set to A.

命令: PASV

响应: 227 Entering Passive Mode (172,16,101,104,8,86)

命令: STOR 404.htm

响应: 150 Opening ASCII mode data connection for 404.htm.

响应: 226 Transfer complete.

状态: 文件传输成功,传输了 2,052 字节 (用时1 秒)

状态: 读取目录列表...

命令: TYPE I

响应: 200 Type set to I.

命令: PASV

响应: 227 Entering Passive Mode (172,16,101,104,8,88)

命令: MLSD

响应: 150 Opening BINARY mode data connection for MLSD.

响应: 226 Transfer complete.

状态: 列出目录成功

主动(PORT)模式:

PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条控制连接。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。

一次完整的主动连接及数据传输过程:

状态: 正在连接 172.16.101.104:21...

状态: 连接建立,等待欢迎消息...

响应: 220 Serv-U FTP Server v6.4 for WinSock ready...

命令: USER test

响应: 331 User name okay, need password.

命令: PASS ****

响应: 230 User logged in, proceed.

状态: 已连接

状态: 开始上传 E:\Downloads\liuzhigong\liuzhigong\404.htm

命令: CWD /

响应: 250 Directory changed to /

命令: TYPE A

响应: 200 Type set to A.

命令: PORT 172,16,101,104,8,76

响应: 200 PORT Command successful.

命令: STOR 404.htm

响应: 150 Opening ASCII mode data connection for 404.htm.

响应: 226 Transfer complete.

状态: 文件传输成功,传输了 2,052 字节 (用时1 秒)

状态: 读取目录列表...

命令: TYPE I

响应: 200 Type set to I.

命令: PORT 172,16,101,104,8,77

响应: 200 PORT Command successful.

命令: MLSD

响应: 150 Opening BINARY mode data connection for MLSD.

响应: 226 Transfer complete.

状态: 列出目录成功

再回来说这一题,看到

计算端口为 4*256+17=1041

端口过滤,追踪tcp流

FTP端口号是:21

默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。

但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。

扩展资料:

同大多数Internet服务一样,FTP也是一个客户/服务器系统。用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。

依照 FTP 协议提供服务,进行文件传送的计算机就是 FTP服务器,而连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端。

用户要连上FTP 服务器,就要用到 FTP 的客户端软件,通常 Windows自带“ftp”命令,这是一个命令行的 FTP客户程序。

另外常用的 FTP 客户程序还有FileZilla、 CuteFTP、Ws_FTP、Flashfxp、LeapFTP、流星雨-猫眼等。

1.FTP服务器的登陆

匿名用户:FTP 口令:FTP

用户:ANONYMOUS 口令:任何电子邮件

2.显示文件信息:DIR/LS

3.下载文件:GET 文件名(下载到当前目录)

4.上传文件:PUT 文件名

5.多文件下载:MGET

6.多文件上传:MPUT

7.退出:BYE

8.帮助:HELP

参考资料:

百度百科-FTP协议

百度百科-ftp (文件传输协议)


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/466968.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-05
下一篇2023-06-05

发表评论

登录后才能评论

评论列表(0条)

    保存