Wireshark数据抓包分析之FTP协议

Wireshark数据抓包分析之FTP协议实验步骤一  配置FTP服务器,并在测试者机器上登录FTP服务器在局域网环境中,我们使用一个小工具来(QuickEasyFTPServer)实现FTP服务器。配置QuickEasyFTPServer 软件双击桌面的QuickEasyFTPServer,如下图如上图,可以创建匿名的,但是匿名就没有密码,这里我们创建一个,下一步输入密码,这里随意,记住即可,后面客户端登录会用到。下一…

大家好,又见面了,我是你们的朋友全栈君。

实验步骤一  配置FTP服务器,并在测试者机器上登录FTP服务器

在局域网环境中,我们使用一个小工具来(Quick Easy FTP Server)实现FTP服务器。

配置Quick Easy FTP Server 软件

双击桌面的Quick Easy FTP Server,如下图

Wireshark数据抓包分析之FTP协议


如上图,可以创建匿名的,但是匿名就没有密码,这里我们创建一个,下一步

Wireshark数据抓包分析之FTP协议


输入密码,这里随意,记住即可,后面客户端登录会用到。下一步

Wireshark数据抓包分析之FTP协议


选择一个FTP服务器的目录,我们选择C盘下的FTP目录(文件夹下面放入一些数据)。这里目录必须存在。下一步

Wireshark数据抓包分析之FTP协议
        

权限我们选择允许下载允许上传即可。这两个是比较常见的,其他的配置默认。点击下一步

Wireshark数据抓包分析之FTP协议
        

这样我们就配置好QuickEasy FTP Server,下面,我们选择点击开启按钮(左上角的绿色按钮,即左上角绿色问号最左边的按钮),开启之后,状态变化,如下;

Wireshark数据抓包分析之FTP协议


这样我们就配置完Quick Easy FTP Server

这里介绍一种容易出错的地方,就是开启时提示失败,可能是默认端口21被占用了,这里给出两种办法:

改变默认端口,21改为数字较大的端口;

使用netstat –ano| findstr “21”,查看那个进程在占用21端口,然后在任务管理器中关闭占用端口的程序即可。这里推荐方法1

 

获取FTP的控制链接数据和数据链接数据

下面我们在测试者机器上,打开Wireshark抓包工具,过滤条件输入ip.addr == 10.1.1.33,这里可以通过cmd的命令行去登录FTP服务器,也可以通过浏览器登录,我们这里,为了熟悉FTP的常用命令,使用cmd的命令行登录,如下

Wireshark数据抓包分析之FTP协议

Wireshark数据抓包分析之FTP协议


上面的信息就是登录FTP服务器后,进行了一个上传和下载文件的操作,此处我们返回Wireshark界面停止抓包,保存,截图如下:

Wireshark数据抓包分析之FTP协议

接下来,我们就详细的对上面的步骤,进行分析。

 

 

实验步骤二 分析FTP协议数据包

FTP工作流程中使用控制链接和数据连接两种方式来实现数据传输,下面我们来分析这两种包的详细信息。

 

分析控制链接的数据

FTP的控制连接用于传送用户名、密码及设置传输方式等控制信息,下面以保存的ftp.pcapng捕获文件为例,分析FTP协议控制连接数据包。

Wireshark数据抓包分析之FTP协议

上图中显示了所有数据包的Info列,在这里可以看到ftp传输的所有信息,因为FTP是明文形式传输数据包的,所有我们在InFo列里能看到登录FTP服务器的用户名、密码和传输文件等。在上图中,登录FTP服务器的用户名为Hetian,密码为123456,下载了文件cat.jpg及上传了文件Tulip.jpg。这里显示的都是成功,如果传输过程中出差的话,会返回相应的应答码。

在捕获的FTP数据包中,USERPASSCWDRETRSTOR等都是控制连接使用的控制命令。这些控制命令在包详细信息中,显示的格式都相同。这里以控制用户信息的命令为例,分析包的详细信息。在ftp.pcapng捕获文件中,捕获的用户信息如下:

Wireshark数据抓包分析之FTP协议

从该界面可以看到登录FTP服务器时,使用的控制命令是USERPASS。根据这两个命令,可以看到登录的账号为Hetian,密码为123456.这两个包的详细信息如下

用户名包详细信息

File Transfer Protocol (FTP)

       USERHetian\r\n

              Requestcommand: USER

              Requestarg: Hetian

从上面的信息中,可以看到该包使用了FTP协议,输入的用户名为Hetian,请求的命令是USER,请求参数为Hetian

密码的详细信息

FileTransfer Protocol (FTP)

       PASS123456\r\n

       Requestcommand: PASS

       Requestarg: 123456

从上面的信息中,可以看到输入的密码为123456,请求的命令是PASS,请求参数为123456

其余的CMD等命令,学习者自己查看下。

 

分析数据连接的数据

数据连接用于传送文件数据,也就是通过FTP服务器进行上传和下载文件。下面以捕获的文件为例,分析数据连接的数据。

Wireshark数据抓包分析之FTP协议

上面的图中,控制命令RETRPORT的数据分别为上传和下载的数据包。这里我们以下载文件为例(上传相同原理),点击上面的第811帧数据,右键,

Wireshark数据抓包分析之FTP协议

选择Follow TCPStream选择,

Wireshark数据抓包分析之FTP协议

上面显示了所有FTP的传输信息,如果想要查看传输的数据,就要将这些信息去掉。关闭上面的窗口,在Wireshark中,你会发现过滤条件被修改为如下

Wireshark数据抓包分析之FTP协议

最简单的方法就是,在前面加一个!,就能达到去掉的效果。如下图:

Wireshark数据抓包分析之FTP协议

接下来就是要找到我们下载的文件。如何能快速的找到下载的文件呢,这里给出两种方法,大家自行选择:

通过协议的字段去分析:你会发现,去掉了FTP的控制连接数据,显示的是TCP协议的数据,在TCP协议中,PUSH字段表示推送数据,我们就可以在Info中找到PUSH字段,间接找到想要的文件。

我们知道下载的文件是JPG格式,所以也就知道二进制的表示为JFIFexe格式用二进制分析器打开是MZ的道理是一样的),所以就可以通过Wireshark自带的搜索,快速找到文件所在的帧数。搜索的快捷键是Ctrl+F.如下图

Wireshark数据抓包分析之FTP协议

这样也能找到相应的帧信息。我们在找到帧信息之后(814帧或者820均可),通过右键,Follow TCPStream,可以看到数据的信息,其中的JFIF表示了文件格式为jpg,如下:

Wireshark数据抓包分析之FTP协议

我们点击上图的Save as,输入名字cat.jpg即可。

Wireshark数据抓包分析之FTP协议

打开保存的文件,即我们下载的图片

Wireshark数据抓包分析之FTP协议

这个时候关闭Follow TCP Stream弹出的窗口,Wireshark显示的信息如下:

Wireshark数据抓包分析之FTP协议

上面的数据包显示了传输cat.jpg文件的所有非FTP控制数据包,在该过程中,明细可以看到,经理了TCP的三次握手和四次断开连接。请学习者根据上面的方法,去寻找找到上传的文件信息。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151094.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CRC码计算及校验原理的最通俗诠释

    CRC码计算及校验原理的最通俗诠释在上一篇发布了我的最新著作《深入理解计算机网络》一书的原始目录(http://blog.csdn.net/lycb_gz/article/details/8199839),得到了许多读者朋友的高度关注和肯定,本篇接着发一篇关于CRC码校验原理和CRC码计算方面的通俗诠释的试读文章。本书将于12月底出版上市,敬请留意!! 5.3.2 循环冗余校验检错方案    上节介绍的奇偶校验码(PCC)只能

    2025年6月19日
    3
  • 史上最简单的SpringCloud教程 | 第三篇: 服务消费者(Feign)

    史上最简单的SpringCloud教程 | 第三篇: 服务消费者(Feign)原文地址:https://blog.csdn.net/forezp/article/details/69808079上一篇文章,讲述了如何通过RestTemplate+Ribbon去消费服务,这篇文章主要讲述如何通过Feign去消费服务。一、Feign简介Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可…

    2022年6月25日
    27
  • Excel中文转拼音【真正的完整版】 拼音 驼峰命名专用

    Excel中文转拼音【真正的完整版】 拼音 驼峰命名专用一、打开Excel按  Alt+F11进入VB编程模式,选择“模块” 二、把下面的代码复制粘贴到“通用”下方的空白处Functionpinyin(pAsString)AsString’*************************************’版本说明:转载请保留此段注释’更新时间:2018年8月28日’作者:上海五航航空技…

    2022年6月21日
    33
  • 局域网城域网广域网和互联网的区别_局域网的互联设备有哪些

    局域网城域网广域网和互联网的区别_局域网的互联设备有哪些网络按照其所覆盖的地区范围分为以下四类(简要介绍): 1.局域网2.城域网3.广域网4.互联网  一.局域网 当一个单位需要将位于某个范围有限,行政可控的区域内的大量联网设备通过一种高速的方式相互连接起来,就需要通过组建一个局域网让这些设备实现相互通信(范围有限可以是一所高校,一个餐厅,一个家庭等) 局域网具有以下特点1.范围有限2.行政可控3.速率高4.安全性高 …

    2022年10月10日
    2
  • 【Maven学习】Maven打包生成普通jar包、可运行jar包、包含所有依赖的jar包

    【Maven学习】Maven打包生成普通jar包、可运行jar包、包含所有依赖的jar包使用maven构建工具可以将工程打包生成普通的jar包、可运行的jar包,也可以将所有依赖一起打包生成jar;一、普通的jar包普通的jar包只包含工程源码编译出的class文件以及资源文件,而不包含任何依赖;同时还包括pom文件,说明该包的依赖信息;在工程pom文件下这样写,可生成普通的jar包:jar或者,不写,因为packaging默认打包类型为

    2022年5月30日
    37
  • rstrip python_Python strip()、split()和rstrip()方法

    rstrip python_Python strip()、split()和rstrip()方法1.Pythonstrip()语法描述:Pythonstrip()方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。返回值:返回值是返回移除字符串头尾指定的字符生成的新字符串示例:a1=”00000123hello_world12300000000″printa1.strip(“0”)#去除首尾字符0a2…

    2025年6月18日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号