实验名称 Sniffer Pro网络分析器应用实验
一、实验目的:
1.掌握Sniffer(嗅探器)工具的使用方法,实现FTP、HTTP数据包的捕捉。
2.掌握对捕获数据包的分析方法,了解FTP、HTTP数据包的数据结构和连接过程,了解FTP、HTTP协议明文传输的特性,以建立安全意识。
二、实验环境:
1.实验室所有机器安装了Windows操作系统,并组成了一个局域网,并且都安装了SnifferPro软件、FLASHFXP(FTP下载软件)、Flashget下载工具和IE浏览器。
2.每两个学生为一组:其中学生A进行Http或者Ftp连接,学生B运行SnifferPro软件监听学生A主机产生的网络数据包。完成实验后,互换角色重做一遍
三、实验内容:
(写出主要的内容)
任务一:熟悉SnifferPro工具的使用
任务二:捕获FTP数据包并进行分析
(1)
在命令符提示下输入IPCONFIG查询自己的IP地址。
(2)
学生B单击菜单中的“Capture”|”DefineFilter”|”Advanced”,再选中 IP|TCP|FTP。设置Sniffer捕捉数据的过滤选项,使其只捕捉FTP数据。
(3)
学生B选中Monitor菜单下的Matirx可以看到网络中的Traffic Map视 图。在Traffic Map视图中单击IP选项卡,用鼠标选中学生A主机的 IP地址,单击鼠标右键,选中“Capture”命令,开始捕获指定主机的
有关FTP协议的数据包。
(4)
学生B单击工具栏中的Capture
Panel按钮,可看到捕捉的Packet数量。
(5)
学生A使用FlashFXP工具(或者在命令行输入FTP命令)登陆至 FTP服务器,用户名/密码:s/123,并打开FTP上的某个目录选择文件下载。
(6)学生B在捕获数据包到达一定的数量后,单击Stop and Display按钮,停止抓包。
(7)停止抓包后,单击窗口左下角的Decode选型,窗口会显示捕捉的 数据。学生B根据捕获报文和报文解码,详细分析捕获的数据包,找出有用信息:ftp连接的目的地址、目的端口、发起连接的源地址、源端口、建立连接的3次握手的数据包及其对应的TCP协议包头结构各字段数据、登陆的用户名及密码、目标主机浏览过的目录和文件。
下图为捕获的ftp数据包,内容为“Welcome to JDFV Server V4.0.0”,是上面配置的服务器的welcome信息,说明数据在ftp包中以明文传送。
下图为登录信息的数个ftp包,从中可以找到输入的用户名为s,密码为123,用户的ip为169.254.254.87,与本机ip一致。
此处的操作为上传一个名为“test.txt”的文件后下载。在进行上传与下载操作时,服务器都进入主动模式(Passive Mode),上传操作为“STOR”,下载操作为“RETR”。
在下载前需要知道文件的大小,通过上传与下载test2.txt文件(内容为“12345678”)并与test.txt(内容为“12345”)对比可知,下图的蓝色行代表文件的大小。
任务三:捕获HTTP数据包并分析
(1)
学生B单击菜单中的“Capture”|”DefineFilter”|”Advanced”, 再选中IP|TCP|HTTP。设置Sniffer捕捉数据的过滤选项,使其只 捕捉HTTP数据。
(2)学生B选中Monitor菜单下的Matirx可以看到网络中的Traffic Map视图。在Traffic Map视图中单击IP选项卡,用鼠标选中学生 A主机的IP地址,单击鼠标右键,选中“Capture”命令,开始捕获 指定主机的有关HTTP协议的数据包。
(3)学生B单击工具栏中的Capture Panel按钮,可看到捕捉的 Packet数量。
(4)学生A浏览www.hnu.cn,任意浏览页面,登陆邮箱(输入任 意用户名和密码),错误后关闭页面。
(5)学生B在A关闭页面后,单击Stop and Display按钮,停止抓 包。
(6)停止抓包后,单击窗口左下角的Decode选型,窗口会显示 捕捉的数据。学生B根据捕获报文和报文解码,详细分析捕
获的数据包,找出有用信息:http连接的目的地址、目的端 口、发起连接的源地址、源端口、登陆邮箱的用户名及密码、
建立连接的3次握手的数据包、学生A发送的数据包和接收的 数据包、登陆邮箱失败后释放连接的数据包及其对应的TCP 协议包头结构各字段数据。
三次握手的原理
在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。