实践三 网络嗅探与协议分析
实践三 网络嗅探与协议分析
实践要求
(1)每个人找一个抓包软件,分析其功能,设计的模块等,着重使用和分析。不建议用wireshark,编译过程可能比较难,也可挑战。(3分)
(2)找一个网站或者搭建一个本地网站,登录网站,并嗅探,分析出账号和密码,结果截图1-2张。(3分)
可以用邮箱、各类博客、云班课,只能分析自己的账号,严禁做各类攻击,否则后果自负。(3)加分项2分:注意本次加分项不加到额外10分里,加到本次实验中。例如,本次实验7分,算上加分可得9分。
抓取手机App的登录过程数据包,分析账号和密码。可以用邮箱、各类博客、云班课,只能分析自己的账号,严禁做各类攻击,否则后果自负。
抓包工具使用与分析
常用的抓包工具
-
tcpdump (linux)
-
tcpflow (linux)
-
wireshark (windows)
-
httpwatch (windows)
-
浏览器自带抓包工具 (windows)
| 使用平台 | 优点 | 缺点
:-: | :-: | :-: | :-:
wireshark | linux、windows | linux平台支持好,功能强 | 不能解析https的内容
fidder | windows功能 | 功能强大,支持修改报文 | 仅支持windows
Charles window、Mac | 可以按照域名进行分层级查看 | 需要收费
Burp Suite | 支持java的平台 | 黑客喜欢用的功能强大工具 | 界面不是很好看
Fiddler分析与使用
Fiddler下载地址 :https://www.telerik.com/download/fiddler
Fiddler网盘下载地址:https://pan.baidu.com/s/1bpnp3Ef 密码:5skw (不是我的网盘)
Fiddler使用界面简介
Fiddler主界面的布局如下:
主界面中主要包括四个常用的块:
1.Fiddler的菜单栏,位于界面顶层。包括捕获http请求,停止捕获请求,保存http请求,载入本地session、设置捕获规则等功能。
2.Fiddler的工具栏,位于界面次顶层。包括Fiddler针对当前view的操作(暂停,清除session,decode模式、清除缓存等)。
3.web Session面板,位于界面左半侧。主要是Fiddler抓取到的每条http请求(每一条称为一个session),主要包含了请求的url,协议,状态码,body等信息,详细的字段含义如下图所示:
4.详情和数据统计面板。针对每条http请求的具体统计(例如发送/接受字节数,发送/接收时间,还有粗略统计世界各地访问该服务器所花费的时间)和数据包分析。如inspector面板下,提供headers、textview、hexview,Raw等多种方式查看单条http请求的请求报文的信息。
而composer面板下,则可以模拟向相应的服务器发送数据的过程。
Filter标签则可以设置Fiddler的过滤规则,来达到过滤http请求的目的。最简单如:过滤内网http请求而只抓取internet的http请求,或则过滤相应域名的http请求。Fiddler的过滤器非常强大,可以过滤特定http状态码的请求,可以过滤特定请求类型的http请求(如css请求,image请求,js请求等),可以过滤请求报文大于或则小于指定大小(byte)的请求。
Fiddler抓取HTTP请求。
抓包是Fiddler的最基本的应用,以B站为例,启动Fiddler之后,在浏览器中输入https://www.bilibili.com/ 键入回车之后,在Fiddler的web session界面捕获到的HTTP请求如下图所示:
其中#号列中的图标,每种图标代表不同的相应类型,具体的类型包括:
此外,注意请求的host字段。可以看到有来自多个cm.bilibili.com的子域名的响应,说明在大型网站的架构中,大多需要多个子域名,这些子域名可能是单独用于缓存静态资源的,也可能是专门负责媒体资源的,或者是专门负责数据统计的(如pingback)。
右键一条请求-【save】-【request】-【entire request】,save操作可以保存请求的报文信息,可以是请求报文,可以是响应报文。
不仅是单条session,Fiddler还支持保存所有抓取到的session(并支持导入),这对于抓取可疑请求然后保存,并在之后随时分析这些请求是很有帮助的。
如果想要重新发送某些请求,可以选中这些请求,然后点击工具栏中的reply.就可以重新发送选中的这些请求。
左键点击单条HTTP请求(以我的博客主页为例),可以在右侧的tab面板中看到如下信息:
Statistic
关于HTTP请求的性能和其他数据分析:
可以从中看出一些基本性能数据:如DNS解析的时间消耗是51ms,建立TCP/IP连接的时间消耗是32ms等
Inspectors
分为上下两个部分,上半部分是请求头部分,下半部分是响应头部分。对于每一部分,提供了多种不同格式查看每个请求和响应的内容。JPG 格式使用 ImageView 就可以看到图片,HTML/JS/CSS 使用 TextView 可以看到响应的内容。Raw标签可以查看原始的符合HTTP标准的请求和响应头。Auth则可以查看授权Proxy-Authorization 和 Authorization的相关信息。Cookies标签可以看到请求的cookie和响应的set-cookie头信息。
AutoResponder
Fiddler比较重要且比较强大的功能之一。可用于拦截某一请求,并重定向到本地的资源,或者使用Fiddler的内置响应。可用于调试服务器端代码而无需修改服务器端的代码和配置,因为拦截和重定向后,实际上访问的是本地的文件或者得到的是Fiddler的内置响应。当勾选allow autoresponser 并设置相应的规则后(本例中的规则是将https://www.cnblogs.com/qianxiaoxu/ 的请求拦截到本地的文件layout.html)
桌面新建一个html文件layout.html,随便写点啥
在浏览器中访问http://blog.csdn.net/ohmygirl,得到的结果实际为
这刚好是本地layout.html的内容,说明请求已经成功被拦截到本地.当然也可以使用Fiddler的内置响应。下图是Fiddler支持的拦截重定向的方式:
网站嗅探
获取账号密码
打开Fiddler,打开http://www.tykd.com/User/login/ 登录界面随便输入账号密码(不必正确),点击Inspectors tab下的WebForms tab即可查看。
设置断点修改Request
一开始没审题,把任务2做错了。。做成设置断点修改Request了。姑且记录一下过程:
http://www.tykd.com/ ,注册账号
模拟登录,在浏览器中打开登录页面
打开Fiddler, 在命令行(左下角黑色区域)中输入bpu http://www.tykd.com/User/login/
,回车
输入错误的用户名和密码,点击登录
Fiddler 能中断这次会话,选择被中断的会话,点击Inspectors tab下的WebForms tab 修改用户名密码,然后点击Run to Completion
。如下图所示。
返回页面发现登陆成功
遇到的问题
- 问题1:Fiddler对https抓包时,提示"HTTPS decryption is disabled."
- 问题分析:
安装完 Fiddler 后,我们每次打开浏览器输入 url,Fiddler 便会捕获到我们的 http 请求(Fiddler 是以代理 web 服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888. 当浏览器打开时 Fiddler 会自动设置代理,退出的时候它会自动注销代理,这样就不会影响别的程序)。但是,如果要捕获 https 的请求,我们还需要进行一些额外的设置。
要抓取走 HTTPS 的 JS 内容,Fiddler 必须解密 HTTPS 流量。但是,浏览器将会检查数字证书,并发现会话遭到窃听。为了骗过浏览器,Fiddler 通过使用另一个数字证书重新加密 HTTPS 流量。Fiddler 被配置为解密 HTTPS 流量后,会自动生成一个名为 DO_NOT_TRUST_FiddlerRoot 的 CA 证书,并使用该 CA 颁发每个域名的 TLS 证书。若 DO_NOT_TRUST_FiddlerRoot 证书被列入浏览器或其他软件的信任 CA 名单内,则浏览器或其他软件就会认为 HTTPS 会话是可信任的、而不会再弹出“证书错误”警告。
- 解决:启用https解密。
打开 Fiddler,在菜单栏中依次选择 【Tools】->【(Telerik) Fiddler Options】->【HTTPS】,勾上如下图的选项
勾上后,Fiddler会提示你安装一个证书。安装完后点击【Actions】-【Export Root..】按钮,将证书下载到桌面。
接着将证书导入到浏览器。这里以IE浏览器举例,依次选择【工具】-【Internet选项】-【内容】-【证书】-【导入】,将保存在桌面的证书导入即可。
也可以直接双击下载下来的证书,进行安装。
- 问题2:Fiddler的WebForms中body里的数据无法修改
- 补充:断点命令
-
问题分析:没有先用bpu把response禁止掉,web已经响应,无法更改。我bpu的是登录网址http://passport.cnblogs.com/login.aspx,但其实它抓取时候的url不是这个了。
-
解决:右键【copy】-【only URL】,发现命令行输入的命令应为
bpu https://account.cnblogs.com/signin
在Fiddler会话列表面板看到以红色小图标开头被中断的会话说明终端成功。
- 问题3:模拟博客园的登录时未能成功登录
用浏览器打开博客园的登录界面: https://account.cnblogs.com/signin
打开Fiddler, 在命令行(左下角黑色区域)中输入bpu https://account.cnblogs.com/signin
输入错误的用户名和密码,点击登录
Fiddler 能中断这次会话,选择被中断的会话,点击Inspectors tab下的WebForms tab 修改用户名密码,然后点击Run to Completion。如下图所示。
理论上现在应该能正确登录博客园了,但是
并且此时红色中断符号也不见了。
猜测还是由于网站加密缘故,切换成“天翼快递”登陆界面就成功了。
取消中断是在命令行中输入命令bpu
- 问题4 :
一开始企图截获博客园登录的用户名密码
发现捕获的账号密码都是一长串字母数字,感觉是加密的了。
- 解决方案:找个http开头的网站,而非https加密过后的