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工作过程的抓包分析

其实这个是我在写C#FTP编程时,总感觉写的时候模棱两可的,就姑且抓包看看,到底什么情况。第一次使用抓包工具,暂且做简单的分析吧我在本机登陆ftp,输入用户名,密码进行登录。对该过程,使用 CommV...
  • nndtdx
  • nndtdx
  • 2011年06月15日 23:57
  • 11545

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

ftp抓包分析

FTP工作过程的抓包分析     http://blog.csdn.NET/nndtdx/article/details/6547419 关于被动模式与主动模式书上这么解释来着。 客户端与服务器建...

FTP协议的分析和扩展

FTP协议的分析和扩展 >>1.0 根据是使用Port模式还是Passive模式,FTP使用不同的TCP端口号,在详细描述FTP前,我们来 简单讨论一下TCP端口号的一些基本概念。TCP使用...

FTP协议分析

一、实验名称 FTP协议分析二、实验目标 1、理解FTP协议的工作原理; 2、了解FTP协议的常用命令; 3、了解应用层协议与传输层协议的关系三、实验...

实验三 FTP协议分析

实验三 FTP协议分析 一、实验目的分析FTP报文格式和FTP协议工作过程。 二、实验内容试验主要分析FTP报文格式和FTP协议的工作过程。 三、实验环境和分组l         三层交换机2台,标准...

FTP协议讲解

FTP 概述 文件传输协议(FTP)作为网络共享文件的传输协议,在网络应用软件中具有广泛的应用。FTP的目标是提高文件的共享性和可靠高效地传送数据。 在传输文件时,FTP 客户端程序先与服...

Wireshark学习FTP流程

一.Wireshark概述 在windows下, 图1 Wireshark界面展示(基于1.99.1)   Wireshark是通过底层的winpcap来实现抓包的。winpcap...

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

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

用Wireshark抓包来揭开ftp client GG和ftp server MM的勾搭内容并用C代码来简要模拟实现Windows自带的ftp client

前面, 我们玩过http, 颇有点意思, 在本文中, 我们继续来玩ftp(file transfer protocol).   http和ftp都是建立在tcp之上的应用层协议, 无论他们怎么包装, ...
  • stpeace
  • stpeace
  • 2015年04月17日 20:48
  • 7264
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:wireshark抓包分析之ftp协议的分析
举报原因:
原因补充:

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