HUNAN UNIVERSITY信息安全实验报告题目:网络嗅探实验指导老师:学生姓名:学生学号:院系名称:信息科学与工程学院专业班级:2015年5月15日星期五一、实验目的掌握Sniffer(嗅探器)工具的使用方法,实现FTP、HTTP数据包的捕捉。
掌握对捕获数据包的分析方法,了解FTP、HTTP数据包的数据结构和连接过程,了解FTP、HTTP协议明文传输的特性,以建立安全意识。
二、实验环境①Windows 7②Wireshark(网络封包分析软件)③FLASHFXP(FTP下载软件)④Serv_U(FTP服务器端)⑤搜狗浏览器。
三、实验要求每两个学生为一组:其中学生A进行Http或者Ftp连接,学生B运行Wireshark软件监听学生A主机产生的网络数据包。
完成实验后,互换角色重做一遍。
四、实验内容任务一:熟悉Wireshark工具的使用任务二:捕获FTP数据包并进行分析任务三:捕获HTTP数据包并分析五、实验原理网卡有几种接收数据帧的状态:unicast(接收目的地址是本级硬件地址的数据帧),Broadcast(接收所有类型为广播报文的数据帧),multicast(接收特定的组播报文),promiscuous(目的硬件地址不检查,全部接收)。
以太网逻辑上是采用总线拓扑结构,采用广播通信方式,数据传输是依靠帧中的MAC 地址来寻找目的主机。
每个网络接口都有一个互不相同的硬件地址(MAC地址),同时,每个网段有一个在此网段中广播数据包的广播地址。
一个网络接口只响应目的地址是自己硬件地址或者自己所处网段的广播地址的数据帧,丢弃不是发给自己的数据帧。
但网卡工作在混杂模式下,则无论帧中的目标物理地址是什么,主机都将接收。
1.HTTP 协议简介HTTP 是超文本传输协议(Hyper Text Transfer Protocol)的缩写,用于WWW 服务。
(1)HTTP 的工作原理HTTP 是一个面向事务的客户服务器协议。
尽管HTTP 使用TCP 作为底层传输协议,但HTTP 协议是无状态的。
也就是说,每个事务都是独立地进行处理。
当一个事务开始时,就在web客户和服务器之间建立一个TCP 连接,而当事务结束时就释放这个连接。
此外,客户可以使用多个端口和和服务器(80 端口)之间建立多个连接。
其工作过程包括以下几个阶段。
①服务器监听TCP 端口 80,以便发现是否有浏览器(客户进程)向它发出连接请求;②一旦监听到连接请求,立即建立连接。
③浏览器向服务器发出浏览某个页面的请求,服务器接着返回所请求的页面作为响应。
④释放TCP 连接。
在浏览器和服务器之间的请求和响应的交互,必须遵循HTTP 规定的格式和规则。
当用户在浏览器的地址栏输入要访问的HTTP 服务器地址时,浏览器和被访问HTTP 服务器的工作过程如下:①浏览器分析待访问页面的URL 并向本地DNS 服务器请求IP 地解析;② DNS 服务器解析出该HTTP 服务器的IP 地址并将IP 地址返回给浏览器;③浏览器与HTTP 服务器建立TCP 连接,若连接成功,则进入下一步;④浏览器向HTTP 服务器发出请求报文(含GET 信息),请求访问服务器的指定页面;⑤服务器作出响应,将浏览器要访问的页面发送给浏览器,在页面传输过程中,浏览器会打开多个端口,与服务器建立多个连接;⑥释放TCP 连接;⑦浏览器收到页面并显示给用户。
(2)HTTP 报文格式HTTP 有两类报文:从客户到服务器的请求报文和从服务器到客户的响应报文。
图 5.46 显示了两种报文的结构。
图1.1 HTTP 的请求报文和响应报文结构在图 1.1 中,每个字段之间有空格分隔,每行的行尾有回车换行符。
各字段的意义如下:①请求行由三个字段组成:* 方法字段,最常用的方法为“GET”,表示请求读取一个万维网的页面。
常用的方法还有“HEAD(指读取页面的首部)”和“POST(请求接受所附加的信息);* URL 字段为主机上的文件名,这时因为在建立TCP 连接时已经有了主机名;* 版本字段说明所使用的HTTP 协议的版本,一般为“HTTP/1.1”。
②状态行也有三个字段:* 第一个字段等同请求行的第三字段;* 第二个字段一般为“200”,表示一切正常,状态码共有41 种,常用的有:301 (网站已转移),400(服务器无法理解请求报文),404(服务器没有锁请求的对象)等;* 第三个字段时解释状态码的短语。
③根据具体情况,首部行的行数是可变的。
请求首部有Accept 字段,其值表示浏览器可以接受何种类型的媒体;Accept-language,其值表示浏览器使用的语言;User-agent 表明可用的浏览器类型。
响应首部中有Date、Server、Content-Type、Content-Length 等字段。
在请求首部和响应首部中都有 Connection 字段,其值为Keep-Alive 或 Close,表示服务器在传送完所请求的对象后是保持连接或关闭连接。
④若请求报文中使用“GET”方法,首部行后面没有实体主体,当使用“POST”方法是,附加的信息被填写在实体主体部分。
在响应报文中,实体主体部分为服务器发送给客户的对象。
2.FTP协议简介FTP 是 TCP/IP 协议组中的协议之一,是英文File Transfer Protocol的缩写。
该协议是Internet文件传送的基础,它由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。
简单的说,FTP 就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为“下载(download)”文件。
若将文件从自己计算机中拷贝至远程计算机上,则称之为“上载(upload)”文件。
在TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。
同大多数Internet服务一样,FTP也是一个客户/服务器系统。
用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。
依照FTP协议提供服务,进行文件传送的计算机就是FTP服务器,而连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP 客户端。
用户要连上FTP服务器,就要用到FTP的客户端软件,通常Windows自带“ftp”命令,这是一个命令行的FTP客户程序,另外常用的FTP客户程序还有FileZilla、CuteFTP、Ws_FTP、Flashfxp、LeapFTP、流星雨-猫眼等。
六、实验步骤捕获FTP数据包并进行分析1、两台计算机分别作为服务器和客户端,在服务器端下载安装Serv_U(FTP服务器),在客户端下载安装FLASHFXP(FTP下载软件),如下图所示:2、设置服务器账号和密码(账号为lihui,密码为123456):3、获取服务器IP4、客户端请求与服务器连接连接成功后5、打开wireshark,配置网络,开始抓包,FTP客户端开始向FTP服务器上传文件6、在wireshark中过滤出FTP数据包(以192.168.191.1和192.168.191.2为例)TCP三次握手连接如下图所示7、选择其中一个数据包分析由上图可知:此.xlsx的FTP数据包的源端口为3117,目的端口为21,TCP包长为27个字节,序号为101,下一个数据包序号为128(101+27=128),ACK号位414,抱头长度为20字节。
蓝色区域为FTP数据的16进制形式。
2、捕获HTTP数据包并分析1、打开wireshark开始抓包,打开浏览器发送一个web请求2、获取数据包,过滤出http数据包释放TCP连接的4个数据包的TCP包头结构3、选择其中一个数据包分析由上图可知:此http报文是一个请求报文方法GET 版本HTTP/1.1 URL imgn/v51/new-erweima2.png首部字段名字段值字段所表达的信息Host 接收请求的服务器的主机名Connection Keep-alive 允许客户端和服务器持久连接Accept image/webp,*/*;q=0.8告诉服务器能够发送哪些媒体类型If-Modified-Since Thu, 26 Mar 201506:57:50 GMT告诉服务器仅当自指定日期之后修改过该对象才发送该对象,否则不发送User-agentMozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.36 (KHTML, likeGecko)Chrome/35.0.1916.153 Safari/537.36SE 2.X MetaSr 1.0将发起请求的应用程序名称告知服务器(User-Agent)用户代理,即服务器类型Referer http://123.sogou.com/?t=1&s=0&m=6F0BBBF9D1DC7F3C430EE75E1E70BBE6&R=0002&V=5.2.5.16123&apid=&atv=1&ish=01&H=1告诉服务器是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。
Accept-Encoding gzip,deflate,sdch 服务器能够发送编码方式Accept-Language zh-CN,zh;q=0.8 客户端想要得到对象的中文版本七、实验总结本次实验为网络嗅探实验,刚开始准备使用sniffer抓包工具,但是湿了几次发现sniffer 跟windows7不兼容,后来改为使用功能相近的wireshark抓包工具。
在实验过程中,刚开始怎么都无法获得FTP数据包,后来查找资料,发现需要分别安装FTP服务器和客户端。
通过此次实验,我进一步了解了网络协议,学会了嗅探数据包并对数据包进行分析。