wireshark抓包分析之ftp协议的分析

原创 2015年05月19日 20:21:51

今天刚刚申请了一个虚拟主机,上传数据成为问题,Google一下,呵呵哒,看到了flashfxp这个软件,这个叫什么鬼东西,原谅小客的英语烂到了极点,下载安装后,最近正好对协议分析很是感兴趣呀,于是,就有了今天这篇处女座的文章,呵呵,个人总是爱说些废话大笑,好吧,如果你也这么觉得的话,那咱们就进入正题吧!

wireshark 抓包分析

协议 FTP协议的数据包分析与总结

本文主要是针对在wireshark中的对FTP的数据包的分析,不包含对协议本身的深入分析。

wireshark的基本应用在这里就不在赘述 了,个人也是个小菜,而且还有点坑的节奏,是吧,至少别人都这么说的,建议大家看这本书《wireshark数据包分析实战(第二版)》人民邮电出版社出版。

下面开始我们的正题:

打开flashfxp软件,打开wireshark抓包分析工具,开始抓包分析,连接虚拟主机,在虚拟主机中找到一个文件,然后下载到本地,断开ftp服务连接,停止wireshark抓包分析工具。

既然是对ftp感兴趣,那当然也是要对ftp的数据包进行分析了,开始分析这个很懒但是却很聪明的协议吧:


我们在显示过滤器中输入过滤条件为:ftp(注意这里我们应该知道ftp协议时基于tcp协议的,ftp是在tcp协议中的一部分,当设备识别是看到tcp协议中有ftp协议字段的部分,就将这个tcp协议识别为ftp协议),我们可以看到,经过显示过滤器的过滤,关于ftp协议的控制通道的数据内容我们可以看的一清二楚了,

以下就是对每个数据包的分析过程:


呃呃呃?

好吧,让你失望了,我们是不能先进行ftp控制通道的数据包分析的,唉,疏忽了,原谅我的第一次把,如上图所示,我们在显示过滤器中输入我的虚拟主机的ip,然后进行过滤,我们可以看到整个ftp连接的过程了,下面进行分析我们的报文:

首先,因为ftp是基于tcp传输的,其实是在tcp内部,属于tcp的一部分,只不过是,有了这一部分,我们就吧tcp的数据包认为是ftp的数据包了。

可以看到前三个数据包是tcp的三次握手的连接过程,这里我们可以看到tcp连接的是ftp服务器的21端口,这也提醒了我们ftp使用的端口是21,而我的客户机就直接使用了自动分配的端口了,我们来分析一下tcp的连接过程,可以看到,flags:0x002(syn),这就表示这是一个tcp的请求的报文,而在序列号中(sequence number:0(relative sequence number))表示这是一个相对的序列号,因为是第一次建立握手的过程,这里就是0,

这是第二个tcp报文,这里我们可以看到,syn置为了1,而且ack也置为了1,这就表示这是一个应答报文,并为发送了一个对科幻段的请求报文,这是tcp链接的第二次握手,,这里的sequence number 置为了1,表示相对的序列号为1,也就是第二次的握手过程,至于第三次的握手过程,同理与第二次,只不过是不在请求,而是只是有应答报文。以上为tcp的建立连接的过程,有点赘述了。


ftp会话的过程的描述:

tcp的连接建立起来以后,服务器主动连接了客户机,至于服务器的主动连接还是被动连接,我是不太清楚的,为什么服务器要这样连接客户机,而不是让客户机去连接服务器,这里的主动与被动我们应该认为是相对于服务器来说的,而不是客户机。

首先,服务器发给客户机一个对本机的操作的系统的描述,微软的ftp服务器

客户机发送请求,输入了用户名

服务器响应客户机说需要用户名的密码

客户机发送密码给服务器,

服务器用户名和密码验证成功,允许客户机登录ftp服务器

 feat命令是用来请求FTP服务器列出它的所有的扩展命令与扩展功能的。属于主动模式命令!  (借鉴来的,是在忘记了当初老师是怎么讲的了)

按照上面所说的,这里的显示应该是对应的服务器支持的拓展功能吧

下面一条报文的意思是对上面的433号报文的一个应答(这里个人认为应该是没有了ftp中的报文的部分,二ftp又是基于tcp的,所以显示为了tcp报文)

size (这个是本人没有弄明白的地方,欢迎大家给出解答,查了资料,却没有找到)

pwd 客户算请求主机要显示用户所在的路径,

服务器显示客户所在的路径

以下引用来自http://www.cnblogs.com/zh2000g/archive/2010/03/02/1676653.html

PORT模式,是客户端通过PORT命令告诉服务器端要使用的数据端口号,然后在客户端主动建立起这个端口的TCP/IP监听。在进行文件传输的操作时,服务器来连接客户端的这个数据端口,进行数据传输。

PASV模式,是客户端通过PASV命令来告诉服务器端,想使用PASV方式传输数据。服务器收到命令之后,主动在服务器端建立一个数据端口的TCP/IP监听,并把这个数据端口号返回客户端。在进行文件传输的操作时,客户端去连接服务器端的这个数据端口,进行数据传输。

表明了,这个客户机向服务器发送了监听,告诉服务器想使用pasv 的方式进行连接

服务器回答为进入主动的连接模式,表示要服务器主动跟客户机连接


再次建立tcp连接的过程,这个过程是为了数据的传输用的,连接建立完毕以后

客户机请求服务器显示所有的目录

数据连接已经建立,

显示数据连接后的目录,打开ftp-data的报文就会发现,这里显示了在ftp服务器上的根目录下的所有的子文件夹


数据连接的建立完成。数据传输完成,这里我们需要注意的是,在ftp传出的过程中,ftp没传输一个数据(文件)就要建立一个连接,这样的话,也就是说,我们在用ftp进行数据传输的过程中,我们的很大的一部分时间是用来做连接用的,如果我们的文件数量比较多,这样的话,我们就建议大家要把文件压缩以后再用ftp进行数据传输,这样,就可以减少数据连接建立的次数,从而减少了数据的传输时间。


以下的命令为,打开web的文件夹 cwd

服务器命令执行成功,并返回客户端

显示目录


客户端再次请求建立pasv模式,方法请见上面的说明。

请求成功,再次建立服务器的主动的连接


需要注意的这里的服务器返回给客户端的是一个ip地址(自己的ip地址,也就是虚拟主机的ip,后面的连个数字表明服务器端要为客户机打开的端口号,这里的计算方法为,前面的数字*256+后面的数字,得到最后的客户机要连接服务器是服务器的端口号)

 

连接建立,数据传输

其中的:

RETR和STOR命令是FTP协议中的下载和上传命令, 可以针对文件和目录.

这里出现了retr命令也就是对web.html的下载操作了

传输(下载)的6个数据包,完成了web.html的下载

连接完成,断开连接

最后为ftp控制通道的连接的断开,在这期间,我们应该知道,ftp的控制链接是一直在进行中的,可以看到最后的控制链接才断开。


本人小菜一枚,没有实际的经验,所以文章写的有点摸不着头脑,很凌乱,但是我是想一点点的积累,使自己的知识储备的越来越丰富,希望大家多多指教,初次写稿,欢迎提出宝贵建议。

最后推荐大家看一下另外的大神写的blog,希望大神不要告我盗链啊!

点击打开链接http://network.51cto.com/art/201406/441747.htm

版权声明:本文为博主原创文章,未经博主允许不得转载。

数据传输过程(FTP 但不限于FTP)详解--- 网络传输

一、FTP客户端发送数据到FTP服务器端,详述其工作过程。两台机器的连接情况如下图所示: 1.1、假设初始设置如下所示: 客户端FTP端口号为:32768 服务器端FTP端口号为:21 ...
  • zhuimengfuyun
  • zhuimengfuyun
  • 2013年11月18日 21:12
  • 2369

ftp报文 命令

ABOR 放弃传输*ACCT 某些系统将帐号和用户与文件系统相关联*ALLO 为即将传送的文件分配空间。后面携带的参数来确定字节数*APPE 将文件附加到已经存在的文件后面CDUP 在远程系统上将当前...
  • s030702614
  • s030702614
  • 2011年06月28日 10:50
  • 2191

wireshark过滤表达式&wireshark捕获ftp协议分析

记录学习Wireshark的一些问题,主要是: 1.过滤表达式 2.本机搭建ftp站点 3.利用wireshark捕获ftp的协议交互过程并对此进行分析...
  • codes_first
  • codes_first
  • 2017年10月15日 20:40
  • 824

Wireshark学习FTP流程

一.Wireshark概述 在windows下, 图1 Wireshark界面展示(基于1.99.1)   Wireshark是通过底层的winpcap来实现抓包的。winpcap...
  • longyc2010
  • longyc2010
  • 2015年01月25日 12:01
  • 3798

Wireshark学习FTP流程—数据包.

  • 2015年01月25日 11:59
  • 39.77MB
  • 下载

wireshark 包 分析 之 ftp 协议 还原 问题

1、  Understanding [TCP ACKed unseen segment] [TCP Previous segment not captured]
  • vevenlcf
  • vevenlcf
  • 2014年08月05日 10:56
  • 13063

WireShark抓包分析

简述:本文介绍了抓包数据含义,有TCP报文、Http报文、DNS报文。如有错误,欢迎指正。 1、TCP报文 TCP:(TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接,...
  • hebbely
  • hebbely
  • 2017年01月14日 14:24
  • 4088

Wireshark数据抓包教程之认识捕获分析数据包

Wireshark数据抓包教程之认识捕获分析数据包
  • u014621518
  • u014621518
  • 2015年07月16日 14:31
  • 16565

Wireshark抓包工具使用以及数据包分析

多年之后,愿你有清风与烈酒,也有人是你的归途。 打开Wireshark抓包工具开始抓包会看到如下展开内容: 这里我是对wlan进行抓包,192.168.2.112是我当前wifi的ip地址。点击某个...
  • qicheng777
  • qicheng777
  • 2017年07月06日 11:06
  • 5026

wireshark抓包数据:理解与分析

wireshark是一个非常好用的抓包工具,本文根据平时抓包经验,对之前wireshark抓包的一些常见知识点进行了整理。 有不当之处,欢迎指正 1.SYN,FIN会消耗一个序号,单独的ACK不消耗...
  • jinyongqing
  • jinyongqing
  • 2016年12月18日 17:31
  • 7145
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:wireshark抓包分析之ftp协议的分析
举报原因:
原因补充:

(最多只允许输入30个字)