FTP文件传输原理,第1张

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

被动(PASV)模式:

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

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

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

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

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

状态: 正在连接 17216101104:21

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

响应: 220 Serv-U FTP Server v64 for WinSock ready

命令: USER test

响应: 331 User name okay, need password

命令: PASS

响应: 230 User logged in, proceed

状态: 已连接

状态: 读取目录列表

命令: PWD

响应: 257 "/" is current directory

状态: 列出目录成功

状态: 正在连接 17216101104:21

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

响应: 220 Serv-U FTP Server v64 for WinSock ready

命令: USER test

响应: 331 User name okay, need password

命令: PASS

响应: 230 User logged in, proceed

状态: 已连接

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

命令: CWD /

响应: 250 Directory changed to /

命令: TYPE A

响应: 200 Type set to A

命令: PASV

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

命令: STOR 404htm

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

响应: 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端口发送连接请求,建立一条数据链路来传送数据。

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

状态: 正在连接 17216101104:21

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

响应: 220 Serv-U FTP Server v64 for WinSock ready

命令: USER test

响应: 331 User name okay, need password

命令: PASS

响应: 230 User logged in, proceed

状态: 已连接

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

命令: CWD /

响应: 250 Directory changed to /

命令: TYPE A

响应: 200 Type set to A

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

响应: 200 PORT Command successful

命令: STOR 404htm

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

响应: 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

状态: 列出目录成功

再回来说这一题,看到

计算端口为 4256+17=1041

端口过滤,追踪tcp流

在服务器中要查看端口,可以使用Netstat命令: 

1、依次点击“开始→运行”,键入“cmd”并回车,打开命令提示符窗口。

2、在命令提示符状态下键入“netstat -a -n”,按下回车键后就可以看到以数字形式显示的TCP和UDP连接的端口号及状态。

端口相关的概念:

在网络技术中,端口(Port)包括逻辑端口和物理端口两种类型。物理端口指的是物理存在的端口,如ADSL Modem、集线器、交换机、路由器上用 于连接其他网络设备的接口,如RJ-45端口、SC端口等等。逻辑端口是指逻辑意义上用于区分服务的端口,如TCP/IP协议中的服务端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等。由于物理端口和逻辑端口数量较多,为了对端口进行区分,将每个端口进行了编号,这就是端口号

端口按端口号可以分为3大类:

1:公认端口(Well Known Port)

公认端口号从0到1023,它们紧密绑定与一些常见服务,例如FTP服务使用端口21,你在 /etc/services 里面可以看到这种映射关系。 

2:注册端口(Registered Ports): 

从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。

3: 动态或私有端口(Dynamic and/or Private Ports)

动态端口,即私人端口号(private port numbers),是可用于任意软件与任何其他的软件通信的端口数,使用因特网的传输控制协议,或用户传输协议。动态端口一般4915265535Linux中有限定端口的使用范围,如果我要为我的程序预留某些端口,那么我需要控制这个端口范围。/proc/sys/net/ipv4/ip_local_port_range定义了本地TCP/UDP的端口范围,你可以在/etc/sysctlconf里面定义netipv4ip_local_port_range = 1024 65000。

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp]

PortNamber值

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentContro1Set\Control\Tenninal Server\WinStations\RDP\Tcp]

PortNumber的值

重新启动电脑

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » FTP文件传输原理

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情