Wireshark VS Fiddler/Charles
Wireshark功能很多、作用效果很底层,并且可以监听指定的网卡上流过的所有流量,支持的协议如下:
ARP 协议:地址解析协议,即ARP(Address Resolution Protocol),是根据 IP地址 获取 物理地址 的一个 TCP/IP协议
ICMP 协议:控制 报文 协议。 它是 TCP/IP协议簇 的一个子协议,用于在IP 主机 、 路由 器之间传递控制消息
TCP 协议, TCP/IP是一种面向连接的、可靠的、基于字节流的传输层通信协议,它会保证数据不丢包、不乱序。TCP全名是Transmission Control Protocol,它是位于网络OSI模型中的第四层(Transport layer)
![alt](https://i-blog.csdnimg.cn/blog_migrate/ac5fc7c46182d92984a7117ec71907e2.png)
三次握手:
理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连 接之前,TCP 连接都将被一直保持下去。断开连接时服务器和客户端均可以主动发起断开TCP连接的请求,断开过程需要经过“四次握手”(过程就不细写 了,就是服务器和客户端交互,最终确定断开)
通俗的话:三次握手是 1.客户端发生请求,“服务器服务器,请求请求!!!” 2.服务器不确定是不是他,要进行确认,“我不知道你是不是我要等的那个客户端,我要确定一下” 3.客户端就发送确认信息,“是我是我!” 服务器收到之后,确认过眼神遇上对的客户端,就建立连接了。
UDP 协议:UDP协议与TCP协议一样用于处理数据包,在OSI模型中,两者都位于传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的
DNS 协议:DNS协议是用来将域名转换为IP地址(也可以将IP地址转换为相应的域名地址)
HTTP 协议, FTP 协议:略
Fidder 的强大在于,专门为 Http/Https 协议定制的软件,主要为了抓取这两个协议的数据包
(一)下载与安装
https://www.wireshark.org/download.html
![alt](https://i-blog.csdnimg.cn/blog_migrate/08cb4d6c58e538b136949fb0eadfe8ee.png)
Win补丁下载:
http://www.win10pcap.org/download/
![alt](https://i-blog.csdnimg.cn/blog_migrate/54272deb694915536afddfb308863ee9.png)
执行需要抓包的操作,如ping www.baidu.com
![alt](https://i-blog.csdnimg.cn/blog_migrate/43a1fd93238969f08cfd4623ae4f51fd.png)
该图为 Wireshark 的主界面,界面中显示了当前可使用的接口,例如,本地连接 5、本地连接 10 等。要想捕获数据包,必须选择一个接口,表示捕获该接口上的数据包
![alt](https://i-blog.csdnimg.cn/blog_migrate/1806b6a7883219e1fcfd0d90de56b2a3.png)
操作完成后相关数据包就抓取到了。为避免其他无用的数据包影响分析,可以通过在过滤栏设置过滤条件进行数据包列表过滤,获取结果如下。说明:ip.addr == 110.242.68.4 and icmp 表示只显示ICPM协议且源主机IP或者目的主机IP为110.242.68.4 的数据包。
![alt](https://i-blog.csdnimg.cn/blog_migrate/30424944aa81900eb3508b0b2af08193.png)
http条件过滤
![alt](https://i-blog.csdnimg.cn/blog_migrate/40c82e86c4e6daee4d7118624fdd334a.png)
IP 过滤 比如 ip.src ==192.168.1.102 显示源地址为192.168.1.102, ip.dst==192.168.1.102, 目标地址为192.168.1.102
Http模式过滤 http.request.method=="GET", 只显示HTTP GET方法的
**http.host==**53zaixian.com
http.host contains 53zaixian.com
![alt](https://i-blog.csdnimg.cn/blog_migrate/51898453be0832c371981e5455de378f.png)
过滤抓取53域名的http请求
http.host contains 53zaixian.com
![alt](https://i-blog.csdnimg.cn/blog_migrate/2a9dee2ab499706f9f9edcc6ad1e9ba9.png)
(二)抓取https等解密
Wireshark+Chrome,HTTPS数据包抓取配置
配置系统环境变量
变量名:SSLKEYLOGFILE 变量值:此处可以随意指定,作用是告诉chrome输出SSLKEY的位置,而wireshark则可以使用此文件来解密HTTPS数据包。
![alt](https://i-blog.csdnimg.cn/blog_migrate/0640edc547b8a31dc0a3d8a17d5e9efb.png)
配置Wireshark
填入刚才在系统变量指定的keylog文件的存储路径,以便wireshark访问keylog中的key,来解密HTTPS数据包。 中文:编辑>首选项>protocols>TLS English:Edit>Preferences>protocols>TLS
![alt](https://i-blog.csdnimg.cn/blog_migrate/de200765e1e0eaddd1672e534008e728.png)
(三)报文传输各层简要介绍
·Frame: 物理层的数据帧概况
·Ethernet II: 数据链路层以太网帧头部信息
·Internet Protocol Version 4: 互联网层IP包头部信息
·Transmission Control Protocol: 传输层T的数据段头部信息,此处是TCP
·Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议
物理层数据帧
![alt](https://i-blog.csdnimg.cn/blog_migrate/4f86ac935ccf257a4cf79ac6ef59d42c.png)
数据链路层以太网帧的头部信息
![alt](https://i-blog.csdnimg.cn/blog_migrate/aedd5713f296b1cb7fe09d3b74a76b88.png)
网络层IP头部包信息
![alt](https://i-blog.csdnimg.cn/blog_migrate/08bd56a840e668832ea710ceb76d6b3d.png)
传输层数据包头部信息
![alt](https://i-blog.csdnimg.cn/blog_migrate/aff89b66f9e55bed605382b8ff0c5ee5.png)
HTTP协议分析,请求报头,报文分析:
![alt](https://i-blog.csdnimg.cn/blog_migrate/297b25448ccfe2af35e17dd5cbde733d.png)
响应报文
![alt](https://i-blog.csdnimg.cn/blog_migrate/a218850a1f9a9869cde00149fe332c1e.png)
追踪流查看详细信息:
这样就可以比较清晰的看到一个数据流过程。还可以看到自己的cookie,host,浏览器信息,等http数据包的详细内容。
![alt](https://i-blog.csdnimg.cn/blog_migrate/5ec7a44fe02e04c31376191997343acd.png)
![alt](https://i-blog.csdnimg.cn/blog_migrate/8378e70e625addedb997fa470d2e06f5.png)
![alt](https://i-blog.csdnimg.cn/blog_migrate/3d0641318961fa15d342e4df27d5dd71.png)
![alt](https://i-blog.csdnimg.cn/blog_migrate/0df105662a87dc29c0ce844be40ab229.png)
本文由 mdnice 多平台发布