先简单说说那两个网口,网口就是千兆的连接到互联网的网口,打了驱动就能使用,一般是82574的双千兆网口,目前最新的是i210双千兆,厂商不同,使用的网卡型号也不同。
再说说第三个网口,其实他不算是网口,因为他就是一个接口,要想使用它,需要接远程控制模块的。
在遇到了一个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流
21端口用于连接,20端口用于传输数据。
1、区别说明:
【1】、进行FTP文件传输中,客户端首先连接到FTP服务器的21端口,进行用户的认证,认证成功后,要传输文件时,服务器会开一个端口为20来进行传输数据文件。
【2】、端口20才是真正传输所用到的端口,端口21只用于FTP的登陆认证。
【3】、我们平常下载文件时,会遇到下载到99%时,文件不完成,不能成功的下载。其实是因为文件下载完毕后,还要在21端口再行进行用户认证,而下载文件的时间如果过长,客户机与服务器的21端口的连接会被服务器认为是超时连接而中断掉,就是这个原因。解决方法就是设置21端口的响应时间。
3、端口说明:
【1】、21端口主要用于FTP(File Transfer Protocol,文件传输协议)服务,FTP服务主要是为了在两台计算机之间实现文件的上传与下载,一台计算机作为FTP客户端,另一台计算机作为FTP服务器,可以采用匿名(anonymous)登录和授权用户名与密码登录两种方式登录FTP服务器。
【2】、目前,通过FTP服务来实现文件的传输是互联网上上传、下载文件最主要的方法。另外,还有一个20端口是用于FTP数据传输的默认端口号。
【3】、在Windows中可以通过Internet信息服务(IIS)来提供FTP连接和管理,也可以单独安装FTP服务器软件来实现FTP功能,比如常见的FTP Serv-U。
4、操作建议:
因为有的FTP服务器可以通过匿名登录,所以常常会被黑客利用。另外,21端口还会被一些木马利用,比如Blade Runner、FTP Trojan、Doly Trojan、WebEx等等。如果不架设FTP服务器,建议关闭21端口。
5、工作模式:
分为FTP Port模式和FTP Passive模式,Port模式的FTP步骤如下:
【1】、 客户端发送一个TCP SYN(TCP同步)包给服务器段众所周知的FTP控制端口21,客户端使用暂时的端口作为它的源端口;
【2】、 服务器端发送SYN ACK(同步确认)包给客户端,源端口为21,目的端口为客户端上使用的暂时端口;
【3】、 客户端发送一个ACK(确认)包;客户端使用这个连接来发送FTP命令,服务器端使用这个连接来发送FTP应答;
【4】、 当用户请求一个列表(List)请求或者发起一个要求发送或者接受文件的请求,客户端软件使用PORT命令,这个命令包含了一个暂时的端口,客户端希望服务器在打开一个数据连接时候使用这个暂时端口;PORT命令也包含了一个IP地址,这个IP地址通常是客户自己的IP地址,而且FTP也支持第三方(third-party)模式,第三方模式是客户端告诉服务器端打开与另台主机的连接;
【5】、 服务器端发送一个SYN包给客户端的暂时端口,源端口为20,暂时端口为客户端在PORT命令中发送给服务器端的暂时端口号;
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)