玩转wireshark系列第四篇-抓取ftp包【转】

https://blog.csdn.net/u011416247/article/details/80872735

(首先声明一下我也是一名小白,初学wireshark没多久,我也很愿意和大家一起讨论wireshark的具体应用。)

本实验使用的版本是wireshark2.4.7版,选择“捕获”-“选项”。

选择当前连的网,一般选择流量“起起伏伏”的那个接口。

做ftp实验的第一个问题就是去哪里找一个ftp服务器,我在百度上找遍了所有的ftp服务器都不能用,没办法,只能自己动手搭一个了。

1.在win7上先开启ftp服务:这里Internet信息服务底下的三个包括子项全部需要勾选。点击确定后,可能会要等一会儿,完成后就可以使用FTP服务了。

 

2.打开   计算机--》管理--》   在这里我们可以看见刚刚添加的服务    (IIS)


3.创建一个ftp站点

4.点击添加FTP站点后,就是要继续的添加必要的站点信息,这里是:站点名称以及登录ftp后的站点指定目录(文件夹),点击下一步。

5.站点的地址就写自己的IP就好,端口21,是ftp控制信号的默认端口,(端口随意,尽量不要用已经被占用了的端口号)。SSL证书选无,有证书配置起来就很麻烦了。IP尽量配一个,用它推荐的那个吧,我的是192.168.1.4,不能自己随便设一个,这样会无法访问。

6.身份验证和授权勾选“基本“和”匿名“,匿名即采用用户名anonymous。允许所有用户访问。到这步一个ftp服务器就搭好了。

7.测试访问ftp服务器,在“计算机”里输入“ftp://192.168.1.4”由于有勾选匿名,访问的时候无需输入用户名密码,当然也可以在浏览器里面访问。然后可以测试读写。

8.要让别的机子访问ftp服务器,需要关闭防火墙,或者针对ftp相关端口设置允许通过的规则(默认为20,21)。

之后我在本地访问自己搭的ftp,出乎意料的是wireshark根本没有捕获到FTP数据包,这是为什么呢?查阅资料之后发现wireshark是捕获网卡的数据包,本地访问本地必然没有经过无线网卡。所以我找了一台本局域网上的机子访问该ftp,终于捕获到了ftp报文。

从上往下分析一个ftp访问的过程。下图是第一个包,表示ftp服务被访问。(220代表服务就绪)

下图表示用户登录的用户名和密码,使用匿名访问的。

下图表示匿名访问需要输入email,但是实际上刷新一下就进去了。

(331代表要求密码)

用IE代理访问ftp

用户登录了(230代表登录因特网)


CWD指令为更改访问目录,比如说点进去一个文件等。

CWD访问成功。(250代表文件行为完成)

访问文件的格式是ASCII(200代表成功)


FTP采用被动模式。

主动模式(PORT)

如下图所示,用户主机直接暴露在互联网中,用户连接FTP SERVER使用主动模式遵循以下一个过程:

用户主机一个随机端口连接FTP SERVER的TCP21端口进行协商;

用户主机告诉FTP SERVER,我的XXXX端口已经打开,你可以放心大胆的连过来;

然后FTP SERVER就用TCP20端口连接用户主机的XXXX端口,数据传输开始。

被动模式(PASV)

当用户主机前端多了一道防火墙(客户机使用地址转换接入互联网),事情就变的复杂了,首先,主动模式是FTP SERVER连接客户机,防火墙肯定不干;即便乐意干客户机与服务器协商的XXXX端口也是随机端口,你让迷茫的防火墙情何以堪,这时就需要客户端软件使用被动模式主动连接防火墙,这么一来正合防火墙的胃口。

客户端使用被动模式遵循以下过程:

 

首先用户使用随机端口连接FTP SERVER的TCP 21端口进行协商;

FTP SERVER告诉客户机:我的XXXX端口开放了,你连过来吧;

客户机使用一个随机端口连接FTPSERVER的XXXX端口传输数据。

(227代表进入被动模式)

列举该目录下的文件

开始传输文件,比如下载到本地。(125代表打开数据连接,开始传输)

传输完成。(226代表结束数据连接)

 

FTP协议概述

默认端口数据连接用20号端口,控制连接用21号端口。FTP协议的底层协议是TCP协议。此外它还需要安装dns服务。

FTP 命令:

1)访问控制命令:

用户名:USER

密码: PASS

账户: ACCT

改变工作目录: CWD

返回上层目录: CDUP

结构装备: SMNT

重新初始化: REIN

注销: QUIT

2)传输参数命令:

数据端口:PORT

被动: PASV

表示类型:TYPE

文件结构:STRU

F- 文件

R- 记录结构

P-页结构

传输模式:MODE

S-流

B-块

C-压缩

3)FTP服务命令:

获得:RETR

保存:STOR

唯一保存:STOU

追加:APPE

分配:ALLO

重新开始:REST

重命名开始:RNFR

重命名为:RNTO

放弃:ABOR

删除:DELE

删除目录:RMD

新建目录:MKD

打印工作目录:PWD

列表:LIST

名字列表:NLST

站点参数:SITE

系统:SYST

状态:STAT

帮助:HELP

空操作:NOOP

FTP响应:

FTP 响应由3 位数字组成(以3 个数字字符传递)后面跟着一些文本。3 位数字的每一位都有特定的意义。允许用户进程将复杂的响应简化。

第一位数字标识了响应是好,坏或者未完成。

1)响应的第一位数字可能有以下五个值:

1yz,预备状态

2yz,完成状态

3yz,中间状态

4yz,暂时拒绝状态

5yz,永久拒绝状态

2)下面为第二位数字的功能:

x0z 语法- 这种响应指出了语法错误。给出的命令不存在、没有被实现、或多余。

x1z 信息- 对于请求信息的响应,比如对状态或帮助的请求。

x2z 连接- 关于控制连接和数据连接的响应。

x3z 身份验证和帐户- 对登陆过程和帐户处理的响应。

x4z 目前还未使用。

x5z 文件系统- 请求传输时服务器文件系统的状态或其他文件系统动作状态。

3)第三位数字为第二位数字指定的状态提供了更详细的意义。

最小实现:

为了让FTP 能够不出错误的工作,服务器必需具备以下最小实现:

类型- ASCII 非打印

模式- 流模式

结构- 文件结构,记录结构

命令- USER, QUIT, PORT,TYPE, MODE, STRU,相应的默认值,RETR, STOR,NOOP.

传输参数的默认值为:

类型- ASCII 非打印

模式- 流模式

结构- 文件结构

所有主机必需接受上面这些标准的默认值。

(首先声明一下我也是一名小白,初学wireshark没多久,我也很愿意和大家一起讨论wireshark的具体应用。)

本实验使用的版本是wireshark2.4.7版,选择“捕获”-“选项”。

选择当前连的网,一般选择流量“起起伏伏”的那个接口。

做ftp实验的第一个问题就是去哪里找一个ftp服务器,我在百度上找遍了所有的ftp服务器都不能用,没办法,只能自己动手搭一个了。

1.在win7上先开启ftp服务:这里Internet信息服务底下的三个包括子项全部需要勾选。点击确定后,可能会要等一会儿,完成后就可以使用FTP服务了。

 

2.打开   计算机--》管理--》   在这里我们可以看见刚刚添加的服务    (IIS)


3.创建一个ftp站点

4.点击添加FTP站点后,就是要继续的添加必要的站点信息,这里是:站点名称以及登录ftp后的站点指定目录(文件夹),点击下一步。

5.站点的地址就写自己的IP就好,端口21,是ftp控制信号的默认端口,(端口随意,尽量不要用已经被占用了的端口号)。SSL证书选无,有证书配置起来就很麻烦了。IP尽量配一个,用它推荐的那个吧,我的是192.168.1.4,不能自己随便设一个,这样会无法访问。

6.身份验证和授权勾选“基本“和”匿名“,匿名即采用用户名anonymous。允许所有用户访问。到这步一个ftp服务器就搭好了。

7.测试访问ftp服务器,在“计算机”里输入“ftp://192.168.1.4”由于有勾选匿名,访问的时候无需输入用户名密码,当然也可以在浏览器里面访问。然后可以测试读写。

8.要让别的机子访问ftp服务器,需要关闭防火墙,或者针对ftp相关端口设置允许通过的规则(默认为20,21)。

之后我在本地访问自己搭的ftp,出乎意料的是wireshark根本没有捕获到FTP数据包,这是为什么呢?查阅资料之后发现wireshark是捕获网卡的数据包,本地访问本地必然没有经过无线网卡。所以我找了一台本局域网上的机子访问该ftp,终于捕获到了ftp报文。

从上往下分析一个ftp访问的过程。下图是第一个包,表示ftp服务被访问。(220代表服务就绪)

下图表示用户登录的用户名和密码,使用匿名访问的。

下图表示匿名访问需要输入email,但是实际上刷新一下就进去了。

(331代表要求密码)

用IE代理访问ftp

用户登录了(230代表登录因特网)


CWD指令为更改访问目录,比如说点进去一个文件等。

CWD访问成功。(250代表文件行为完成)

访问文件的格式是ASCII(200代表成功)


FTP采用被动模式。

主动模式(PORT)

如下图所示,用户主机直接暴露在互联网中,用户连接FTP SERVER使用主动模式遵循以下一个过程:

用户主机一个随机端口连接FTP SERVER的TCP21端口进行协商;

用户主机告诉FTP SERVER,我的XXXX端口已经打开,你可以放心大胆的连过来;

然后FTP SERVER就用TCP20端口连接用户主机的XXXX端口,数据传输开始。

被动模式(PASV)

当用户主机前端多了一道防火墙(客户机使用地址转换接入互联网),事情就变的复杂了,首先,主动模式是FTP SERVER连接客户机,防火墙肯定不干;即便乐意干客户机与服务器协商的XXXX端口也是随机端口,你让迷茫的防火墙情何以堪,这时就需要客户端软件使用被动模式主动连接防火墙,这么一来正合防火墙的胃口。

客户端使用被动模式遵循以下过程:

 

首先用户使用随机端口连接FTP SERVER的TCP 21端口进行协商;

FTP SERVER告诉客户机:我的XXXX端口开放了,你连过来吧;

客户机使用一个随机端口连接FTPSERVER的XXXX端口传输数据。

(227代表进入被动模式)

列举该目录下的文件

开始传输文件,比如下载到本地。(125代表打开数据连接,开始传输)

传输完成。(226代表结束数据连接)

 

FTP协议概述

默认端口数据连接用20号端口,控制连接用21号端口。FTP协议的底层协议是TCP协议。此外它还需要安装dns服务。

猜你喜欢

转载自blog.csdn.net/biqioso/article/details/84875156