1.使用wireshark窃听你电脑上的http流量,在你尝试登录湖南大学的时候解释一下抓到的流量
【实验介绍】 ?使用 Wireshark 工具对网络数据包进行抓取,并针对应用层封装的网络封包进行详细分析,通过实践观察加深对应用层HTTP协议具体实现过程的理解。 ?在这个实验中,我们将探讨 HTTP 协议的几个方面:基本/响应交互,HTTP 消息格式,HTTP 身份验证和安全。
【实验目的】 (1) 理解和掌握 Wireshark 等工具的使用方法; (2) 利用 Wireshark 工具对应用层 HTTP 协议进行分析。
【背景知识】 (1)HTTP概述 ?HTTP是超文本传输协议,是Web的核心。它包括两个部分:客户及程序、服务器程序。它们分别运行在不同的端系统中,通过交换HTTP报文进行会话。HTTP协议定义了报文的格式以及客户机和服务器交换报文的方式。 ?用户请求一个Web页(如点击一个超链接),浏览器向服务器发出对该页所含对象的“HTTP请求报文”。服务器接受请求,回发包含请求对象的“HTTP响应报文”。
(2)HTTP连接 ?HTTP连接包括非持续HTTP连接、持续HTTP连接两种,默认方式下使用持续连接。对于持续连接,服务器在发送响应后保持该TCP连接,相同客户机与服务器之间的后续请求和响应报文通过相同的连接进行传送。此外,一个TCP连接上可以传送多个Web对象。
(3)HTTP请求报文 一般格式:
举例:
(4)HTTP响应报文 一般格式:
举例:
【实验步骤】
(1)基本的HTTP请求 ① 启动web浏览器,以Microsoft Edge为例。
②启动Wireshark ,选择自己的网络接口。
③在应用显示过滤器处输入“http”,然后按下开始按钮,开始捕获 Wireshark 的数据包。
现在正在进行捕获。
④在浏览器中输入以下网址并进入网站: 湖南大学
⑤停止 Wireshark 捕获数据包,Wireshark获取数据如下图:
⑥观察到wireshark会将各层的信息打印出来
- Frame:物理层的数据帧概况(线路1208字节,实际捕获1208字节)
- Ethernet II: 数据链路层以太网头部帧(记录目标MAC地址:28:6e:d4:63:c0:a3和源MAC地址:00:0e:c6:4a:75:49)
- Internet Protocol Version 4:互联网层IP包头的信息(使用互联网协议IPv4,源IP地址: 119.39.26.141, 目的IP地址: 23.48.201.10)
- Transmission Control Protocol:传输层的数据段头部信息,此处是TCP协议。(源端口号:50201,目的端口号:80,序列号Seq:1,确认号ACK:1,长度Len为97)
- Hypertext Transfer Protocol:应用层的信息,此处是HTTP协议
⑦再分析下HTTP的请求报文:
- 开始行:由于是请求报文,故为请求行,其中有三个内容。操作为GET(请求读取由URL表示的信息)、请求得的URL为/ncsi.txt、HTTP的版本为HTTP/1.1(使用流水线的持久连接),最后的\r\n为“回车”和“换行”。
- 首部行:用来说明游览器、服务器或者报文主体的一些信息。Connection:显示连接状态、User-Agent:显示游览器代理、Host:显示访问的主机地址,其中每一行结尾都带有“\r\n”,最后结束部分还有一行单独的“\r\n”。首部行还有其他的信息可以显示,如:Date:报文的创建时间、Via:显示报文经过的中间节点(代理)、Cache-Control:控制缓存如缓存时长、MIME-Version:发送端使用的MIME版本、Accept:通知服务器自己可接受的媒体类型、Accept-Charset:客户端可接受的字符集、Accept-Encoding:客户端可接受编码格式、Accept-Language:客户端可接受的语言等等。
- 实体主体:在请求报文中一般不用这个字段,在相应报文中也一般没有。
(2) 基本的HTTP响应
?响应报文状态为200 OK,Wireshark 获取到的响应报文如下图:
- 开始行:HTTP版本显示为1.1,200 OK(成功状态响应码)指示请求已成功,200响应默认是可缓存的。
- 首部行:Content-Length:主体的长度为14,Date:报文的创建时间,Connection:显示连接状态,Content-Type: 主体的对象类型是text,Cache-Control: 控制缓存。
(3) 尝试登录邮箱后的HTTP报文 ① 重新启动 Wireshark 的数据包嗅探器。具体步骤如(1)中所示。
②输入要求的用户名和密码,点击登录。
③停止 Wireshark 的数据包捕获,并在显示过滤器窗口输入“http”,确保只有捕获的HTTP 消息在分组列表窗口显示。结果如下:
④我们发现,浏览器向服务器发送了请求报文:
?该请求报文将我们输入的账号信息和密码信息(密文)传给目的地址mail.hnu.edu.cn
⑤同时观察到:HTTP请求报文后出现了许多Continuation数据包:
?这说明请求的是一个数据量比较大的服务。Continuation数据包的意思是:只包含一些数据,不包含http消息头,只是某一个http消息的一部分。比如请求的数据有2M左右,而网络数据包最大允许是20KB,那收到的回复消息可能就是由50个左右的网络数据包组成的。第一个包含了http消息头,最后一个包含了结束标识什么的,中间就是这种数据包。
⑥登录成功后,也收到了状态为200 OK的响应报文,如下图所示:
2.使用wireshark窃听您的计算机上的流量,解释当您尝试连接HNU无线网络时捕获的流量,并使用其Web界面完成RADIUS认证。
【实验介绍】 ?实验使用Wireshark工具对网络数据包进行抓取,并针对传输层和网络层封装的网络封包进行详细分析,通过实践观察加深对应用层协议DHCP、传输层TCP协议和网络层ARP协议的具体实现过程的理解。
【实验目的】 (1) 理解和掌握 Wireshark 等工具的使用方法; (2) 利用 Wireshark 工具对应用层协议DHCP、传输层TCP协议和网络层ARP协议进行分析。
【背景知识】 (1)TCP协议概述 i. 端到端 ?一个发送方, 一个接收方,连接状态与端系统有关,不为路由器所知。 ii. 可靠、有序的字节流 iii. 流水线 ?TCP拥塞和流量控制设置滑动窗口协议。 iv. 发送和接收缓冲区 v. 全双工网络 ?同一连接上的双向数据流。 vi. 面向连接 ?在进行数据交换前,初始化发送方与接收方状态,进行握手(交换控制信息)。 vii. 流量控制 ?发送方不能淹没接收方。 viii. 拥塞控制 ?抑止发送方速率来防止过分占用网络资源。
(2)可靠数据传输 ?TCP在IP不可靠服务的基础上创建可靠数据传输服务。
(3)TCP报文段结构
(4)ARP协议概述 ?地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。 ?地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。 ?ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有RARP、代理ARP。NDP用于在IPv6中代替地址解析协议。
(5)DHCP协议概述 ?DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。默认情况下,DHCP作为Windows Server的一个服务组件不会被系统自动安装,还需要管理员手动安装并进行必要的配置。
?
【实验步骤】
①启动Wireshark ,选择无线的网络接口。
②按下开始按钮,开始捕获 Wireshark 的数据包。
③尝试连接HNU无线网络后停止 Wireshark 捕获数据包
观察截取的数据包,如下图所示:
④观察到其中的第一个DHCP数据包,其中有部分信息:
?获取IP时,PC会发送DHCP广播报文,由于当前PC没有IP,故源IP为0.0.0.0;特别要注意到的是,PC会随机出一个Transaction ID,如果之后收到的Offer报文中的Transaction ID与PC模拟出的不同,PC会将该Offer报文直接丢弃。 ?下方还有一个DHCP Ack报文:
?可以利用CMD命令ipconfig/all 验证无线网卡的mac地址分配、地址租期是否正确:
⑤再来观察TCP数据包,分析一次TCP三次握手:
?可以看到客户端ip为10.68.57.30,端口为50277;服务端ip为104.109.128.163,端口为80; ?其中三次握手分别分为:
- a.第一步:
?客户机的TCP首先向服务器的TCP发送连接请求报文段。这个特殊报文段的首部中的同步位SYN置1,同时选择一个初始序号seq=x。TCP规定,SYN报文段不能携带数据,但要消耗掉一个序号。这时,TCP客户进程进入SYN-SENT(同步已发送)状态。 - b.第二步:
?服务器的TCP收到连接请求报文段后,如同意建立连接,则向客户机发回确认,并为该TCP连接分配缓存和变量。在确认报文段中,把SYN位和ACK位都置1,确认号是ack=x+1,同时也为自己选择一个初始序号seq=y。注意,确认报文段不能携带数据,但也要消耗掉一个序号。这时,TCP服务器进程进入SYN-RCVD(同步收到)状态。 - c.第三步:
?当客户机收到确认报文段后,还要向服务器给出确认,并为该TCP连接分配缓存和变量。确认报文段的ACK位置1,确认号ack=y+1,序号seq=x+1。该报文段可以携带数据,若不携带数据则不消耗序号。这时,TCP客户进程进ESTABLISHED(已建立连接)状态。
从图中也可以验证:
⑥最后观察ARP数据包,可以看到网络连接请求是通过广播方式在各个交换机和路由器之间传播的:
3.(可选)如果您的计算机的无线驱动程序允许混杂模式和监控空中的所有 802.11 帧,请使用 wireshark 捕获进出附近 HNU 接入点(或星巴克 AP,或任何不加密 WiFi 的任何 AP)的流量流量),尝试寻找有趣的内容。 注意:您有责任保护数据隐私。
【网卡混杂模式】 ?数据在网络上是以很小的称为帧(Frame)的单位传输的,帧由几部分组成,不同的部分执行不同的功能。帧通过特定的称为网络驱动程序的软件进行成型,然后通过网卡发送到网线上,通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。接收端机器的以太网卡捕获到这些帧,并告诉操作系统帧已到达,然后对其进行存储。就是在这个传输和接收的过程中,嗅探器会带来安全方面的问题。 ?每一个在局域网(LAN)上的工作站都有其硬件地址,这些地址惟一地表示了网络上的机器(这一点与Internet地址系统比较相似)。当用户发送一个数据包时,这些数据包就会发送到LAN上所有可用的机器。 ?在一般情况下,网络上所有的机器都可以“听”到通过的流量,但对不属于自己的数据包则不予响应(换句话说,工作站A不会捕获属于工作站B的数据,而是简单地 忽略这些数据)。如果某个工作站的网络接口处于混杂模式(关于混杂模式的概念会在后面解释),那么它就可以捕获网络上所有的数据包和帧。
?由于我的Windows系统计算机的无线驱动程序不支持混杂模式,故不做该可选实验:
?通过本实验,掌握了Wieshark的基本配置和使用方法,同时也对数据传输的过程和协议有了更深的了解。比如HTTP 协议的基本/响应交互,HTTP 消息格式,HTTP 身份验证和安全建立,应用层协议DHCP、传输层TCP协议和网络层ARP协议的具体实现过程,以及TCP连接要通过三次握手,软件和网站使用的协议也各不相同。 ?Wieshark是我们学习和了解网络的有用的软件之一,特别是用用来分析数据包。在本次试验过程有遇到过问题也有收获经验:使用wireshark时,通过精确定位过滤来捕获自己想要的包,这样捕获的包比较直观有用且数据包较小。同时为了防止大量数据包对笔记本网卡缓冲过大而导致死机,可以在抓包时注意及时的点击关闭正在进行的抓包。
|