1、FTP连接与明文抓取FTP-连接与明文抓取FTP 连接与明文抓取应用场景FTP ClinetFTP Server192.168.x.xx/24实验目标:掌握数据嗅探的原理了解协议封装的过程掌握典型的嗅探工具的使用192实验环境:虚拟机: Windows 2003 IIS6.0 ,Wireshark 抓包软件实验过程指导:启动虚拟机,并设置虚拟机的 IP 地址,以虚拟机为目标主机进行攻防试验。个别实验学生可以 2 -3人一组的形式,攻击方来做实验。 客户端为数据捕获端。1. 设置抓包参数。运行 WireShark,界面如图:在 Capture 菜单项中设置抓包的相关参数选择 Interfaces
2、.选项,对话框显示可操作的网络适配器:通过 Options 选项,设置如抓包模式、过滤器、数据包限制字节、存档文件模式、停止规则、名字解析等参数。设置完毕,即可开始捕获网络数据包。2. 捕获 FTP 数据包,嗅探密码本步骤使用 LeapFTP,学生可自行使用其它 ftp 连接工具进行实验。软件访问某 ftp 站点。四层网络结构,每层都有不同的功能,由不同的协议组成。设备驱动程序及接口卡EthernetII 的帧结构为目的 MAC 地址+源 MAC 地址+上层协议类型+数据字段+校验。下图为 WireShark 显示的协议解析,利用树形结构表示出来。第一行为 WireShark 添加、该帧的相关
3、统计信息。包括捕获时间、编号、帧长度、帧中所含有的协议等。细节如图示:第二行为链路层信息,包括目的 MAC 地址、源 MAC 地址、上层协议类型。第三行为网络层信息,如此处为 IP 协议。细节包括版本、头部长度、总长度、标志位源/目的 IP 地址、上层协议等。第四行为传输层信息,包括源/目的端口、序列号、期望的下个序列号、确认号、头部长度、标志位、窗口长度、校验和等。第五行为应用层信息,内容由具体的应用层协议决定,此处为 FTP 协议,显示的是响应内容。(1) 连接建立客户端运行 FTP,与 ftp 服务器建立连接。客户端为 10.10.3.50(本地) ,目的服务器为 10.1.1.58,发
4、送连接建立请求。可观察到:TCP 标志位仅 SYN 置 1,设置(相对)序列号为 0(此处的序列号并不是真正的数据流字节号,只表示在此次连接过程中的序号) ,请求与 FTP 服务器建立连接。本地的源端口号为 3885,目的端口号为 21(默认的 FTP 服务端口) 。等待确认。服务器确认请求服务器 ftp.:/10.1.1.58(XXX. XXX. XXX.157)收到请求数据包后,若同意请求,则向客户端做出确认应答。可以看到:服务器的响应报文中,ACK、SYN 标志位置 1,序列号为 0(理由同上) ,确认号为 1(是请求报文的相对序列号加 1) 。相应端口如图显示:源 21,目的 2139
5、。客户端收到确认报文后,通知上层应用进程,连接已经建立。客户端向服务器确认客户端收到服务器的确认后,向服务器给出确认。可以看到:客户端的确认报文中,标志位仅 ACK 置 1,相对序列号为 1(请求报文序列号加 1) ,确认号为 1(对服务器确认报文相对序列号加 1) 。服务器收到客户端的确认报文后,也通知其上层应用进程,连接已经建立。至此,客户端与服务器之间完成了“三次握手”过程,连接建立。通过 WireShark,我们能够了解到数据包中的全部明文信息,而且 WireShark 还能通过序列号及确认号做出分析,判断该帧属于连接过程中的哪一阶段。(2) 数据传输(此部分捕获用户名、密码,为重点内
6、容)传输建立后,服务器的 FTP 进程做出响应:150:表示“服务就绪”。后面为服务器返回的欢迎信息。服务器的响应报文中 ACK、PSH 标志位置 1,PSH 位置 1 表示服务器希望尽快得到客户端的响应。客户端接收到此报文后会尽快将此报文交付应用进程,而不是等到缓存堆满后交付。展开应用层信息分支,我们能看到服务器的响应报文内容。响应码为 150,响应消息为 welcome to XXXX XXXX XXXXXX FTP server。下图为响应内容的字节码显示。客户端收到响应报文后,完成后续操作:本地 FTP 提示用户输入用户名,报文内容为向服务器发送用户名请求从上一步服务器的响应报文中,我
7、们能看到 TCP 传送下一段数据流的首字节序号将为56。此时客户端发送报文中的确认序号为 56,可见此帧即为上一帧的应答。标志位中,ACK、PSH 置 1。图中高亮显示的SEQ/ACK analysis也说明:客户端 FTP 发送的内容为用户名请求。此时所用的用户名为 ssq。图中标黑粗下划线所示。服务器收到后,对此请求给予确认:其中,标志位 ACK 置 1。之后,服务器 FTP 返回应答:用户名正确,需要口令。下图我们可以看到服务器详细的响应内容标志位 ACK、PSH 置 1,响应码、响应消息如图。客户端收到交给本地 FTP 处理,用户键入口令,客户端向服务器发送请求:请求的内容为口令 PA
8、SS,消息为 guest,图中标黑粗下划线所示。此时,用户名、密码均已嗅探得到了。服务器针对客户端的请求,发送了两条响应帧,图中编号 41、43:以上两帧响应客户端的请求,表示用户注册完毕。 现在, 客户端已经完全登录到 FTP务器上,之后的帧为客户端对服务器的一些访问操作。(3) 连接释放客户端向服务器发送退出连接请求:应用进程的请求命令为 QUIT。实际操作是在 LeapFTP 菜单栏上选择“断开连接”。服务器收到后响应:221 表示服务器关闭连接,返回消息 Goodbye。现在,客户端与服务器已经断开了 FTP连接。接下来要结束此次 TCP 传输连接。服务器在对客户端 FTP 断开连接请求作出响应后,向客户端发送 TCP 连接释放应答:标志位 ACK、FIN 置 1,将要终止此次连接。客户端做出响应:标志位 ACK、FIN 置 1,将要终止此次连接客户端做出响应:标志位为 ACK 置 1。客户端首先完成确认, 不再接受服务器发送的数据。 之后客户端不再向服务器发送数据应用进程通知 TCP 释放连接,标志位为 FIN、ACK 置 1。但实验时因未知原因,客户端此时的响应为标志位 ACK、RST 置 1:两个客户端发出报文的确认号相同,如图示。正常连接释放过程中,服务器还将响应一个 ACK 报文。经三次“握手”后整个连接完全释放。
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2