【任务描述】
雅鹿公司电商专员小王利用Wireshark抓包软件抓取数据包,并要求分析数据包中隐含的用户名和密码。
【任务分析】
数据包的种类包括Http数据包、UDP数据包、TCP数据包、ARP数据包,本任务围绕数据包的抓取和分析进行。
【知识准备】
1.Internet上对应的七层网络模型
所有的互联网协议都是基于OSI模型开发的,OSI模型分为应用层、表示层、会话层、传输层、网络层、数据链路层和物理层。
TCP/IP模型是OSI模型的简化,TCP/IP模型分为应用层、传输层、网络层和主机到网络层,OSI模型与TCP/IP模型的联系如图2-56所示。
图2-56 OSI模型与TCP/IP模型的联系
2.数据包的概念
TCP/IP协议工作在OSI模型的第三层(网络层)、第四层(传输层),帧工作在OSI模型的第二层(数据链路层)。包(Packet)是TCP/IP协议通信传输中的数据单位,也称“数据包”,包含在帧里。通过抓取与分析数据包,可获得网络相关信息。
【任务实施】
1.利用W ireshark抓取HTTP数据包
Wireshark是一款网络抓包软件,可以按照类型抓取TCP、UDP、HTTP等不同类型的数据包。
1)确定目标地址
选择www.baidu.com作为目标地址。在进行跟踪之前,首先清空Web浏览器的高速缓存以确保Web网页是从网络中获取的,而不是从高速缓冲区中取得的。之后,还要在客户端清空DNS高速缓存,以确保Web服务器域名到IP地址的映射是从网络中请求的。在Windows XP系统中,可在命令提示行中输入“ipconfig/flushdns”(清除DNS解析程序缓存)完成操作。
2)配置过滤器
启动Wireshark软件,针对协议进行过滤设置。设置显示过滤器,可以过滤掉所需要的数据包。因为ping命令使用的是ICMP协议,抓包前使用捕捉过滤器,过滤设置为icmp。在Web浏览器中输入“http://www.baidu.com”,然后停止分组俘获,如图2-57所示。
图2-57 利用W ireshark俘获的HTTP数据
在“http://www.baidu.com”中,“www.baidu.com”是一个具体的Web服务器的域名。最前面有两个DNS分组。第一个分组是将域名www.baidu.com转换成为对应的IP地址的请求,第二个分组包含了转换的结果。
因为网络层IP协议是通过点分十进制来表示Internet主机的,而不是通过“www.baidu.com”这样的域名。当输入“http://www.baidu.com”时,将要求Web服务器从主机www.baidu.com上请求数据,但首先Web浏览器必须确定这个主机的IP地址。随着转换的完成,Web浏览器与Web服务器建立一个TCP连接,然后Web浏览器使用已建立好的TCP连接来发送请求“GET/HTTP/1.1”。这个分组描述了要求的行为(GET)及文件(只写“/”是因为没有指定额外的文件名),还有所用到的协议的版本(HTTP/1.1)。
2.分析数据包
(1)选取一个数据包进行分析,如图2-58所示。
图2-58 分析一个数据包
User-Agent首部描述了提出请求的Web浏览器及客户机。
接下来是一系列的Accept首部,包括Accept(接收)、Accept-Language(接收语言)、Accept-Encoding(接收编码)、Accept-Charset(接收字符集)。它们告诉Web服务器客户Web浏览器准备处理的数据类型。Web服务器可以将数据转变为不同的语言和格式。这些首部同时表明了客户的相关信息。
Keep-Alive及Connection首部描述了有关TCP连接的信息,通过此连接发送HTTP请求和响应。它表明在发送请求之后连接是否保持活动状态及保持多久。大多数HTTP1.1连接是持久的(persistent),意思是在每次请求后不关闭TCP连接,而是保持该连接以接收从同一台服务器发来的多个请求。
(2)查看Web服务器的应答。
前面已经查看了由Web浏览器发送的请求,现在来观察Web服务器的回答。响应首先发送“HTTP/1.1 200 ok”,指明它开始使用HTTP1.1版本来发送网页。同样,在响应分组中,它后面也跟随着一些首部。最后,被请求的实际数据被发送。
第一个Cache-control首部用于描述是否将数据的副本存储或高速缓存起来,以便将来引用。一般个人的Web浏览器会高速缓存一些本机最近访问过的网页,需要对同一页面再次进行访问时,如果该网页仍存储于高速缓存中,就不再向服务器请求数据。类似地,在同一个网络中的计算机可以共享一些存储在高速缓存中的页面,以防止多个用户通过到其他网络的低速网络连接从网上获取相同的数据。这样的高速缓存称为代理高速缓存(proxy cache)。在所俘获的分组中看到“Cache-control”的首部值是“private”。这表明服务器已经对这个用户产生了一个个性化的响应,而且可以被存储在本地的高速缓存中,但不是共享的高速缓存代理。
在HTTP请求中,Web服务器列出内容类型及可接收的内容编码。本任务中Web服务器选择发送内容的类型是text/html,且内容编码是gzip。这表明数据部分是压缩了的HTML。
根据俘获窗口的内容,回答下列问题:
①浏览器运行的是HTTP1.0还是HTTP1.1?
②访问的服务器所运行的HTTP版本号是多少?
③浏览器向服务器指出它能接收何种语言版本的对象?(www.xing528.com)
④计算机的IP地址是什么?服务器的IP地址是什么?
⑤从服务器向浏览器返回的状态代码是多少?
⑥从服务器上所获取的HTML文件的最后修改时间是多少?
⑦返回到浏览器的内容一共多少字节?
(3)HTTP条件GET/response交互。
先启动浏览器,清空浏览器的缓存。在启动Wireshark分组俘获器后,便开始Wireshark分组俘获。接着在浏览器地址栏中输入如下网址:
http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file2.html
浏览器中将显示一个具有5行的非常简单的HTML文件。
接着在浏览器中重新输入相同的URL或单击浏览器中的“刷新”按钮。最后停止Wireshark分组俘获,在显示过滤筛选说明处输入“http”,分组列表子窗口中将只显示所俘获到的HTTP报文。
根据操作回答:
①分析浏览器向服务器发出的第一个HTTPGET请求的内容。在该请求报文中,是否有一行是“IF-MODIFIED-SINCE”?
②分析服务器响应报文的内容,服务器是否明确返回了文件的内容?如何获知?
③分析浏览器向服务器发出的第二个HTTP GET请求,在该请求报文中是否有一行是“IF-MODIFIED-SINCE”?如果有,在该首部行后面跟着的信息是什么?
④服务器对第二个HTTPGET请求的响应中的HTTP状态代码是多少?服务器是否明确返回了文件的内容?
(4)获取长文件。
启动浏览器,将浏览器的缓存清空。启动Wireshark分组俘获器,开始Wireshark分组俘获。在浏览器地址栏中输入如下网址:
http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file3.html
最后停止Wireshark分组俘获,在显示过滤筛选说明处输入“http”,分组列表子窗口中将只显示所俘获到的HTTP报文。
根据操作回答下列问题:
①浏览器一共发出了多少个HTTPGET请求?
②承载这个HTTP响应报文一共需要多少个data-containing TCP报文段?
③与这个HTTPGET请求相对应的响应报文的状态代码和状态短语是什么?
④在被传送的数据中一共有多少个HTTP状态行与TCP-induced continuation有关?
(5)嵌有对象的HTML文档。
先启动浏览器,将浏览器的缓存清空,然后启动Wireshark分组俘获器,开始Wireshark分组俘获。接着在浏览器地址栏中输入如下网址:
http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file4.html
浏览器将显示一个具有两个图片的短HTTP文件。最后停止Wireshark分组俘获,在显示过滤筛选说明处输入“http”,分组列表子窗口中将只显示所俘获到的HTTP报文。
根据操作回答下列问题:
①浏览器一共发出了多少个HTTPGET请求?这些请求被发送到的目的地的IP地址是什么?
②浏览器在下载这两个图片时,是串行下载还是并行下载?
(6)HTTP认证。
先启动浏览器,将浏览器的缓存清空,再启动Wireshark分组俘获器,开始Wireshark分组俘获,然后在浏览器地址栏中输入如下网址:
http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wireshark-file5.html
浏览器将显示一个HTTP文件,输入所需要的用户名和密码(用户名:wiresharkstudents,密码:network),最后停止Wireshark分组俘获,在显示过滤筛选说明处输入“http”,分组列表子窗口中将只显示所俘获到的HTTP报文。
根据操作回答下列问题:
①对于浏览器发出的最初的HTTPGET请求,服务器的响应是什么?
②当浏览器发出第二个HTTPGET请求时,在HTTPGET报文中包含了哪些新的字段?
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。