wireshark

news/2024/7/5 6:11:44

1.Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。

能获取HTTP,也能获取HTTPS,但不能解密HTTPS,所以wireshark看不懂HTTPS中的内容。如果是处理HTTP,HTTPS 还是用Fiddler, 其他协议比如TCP,UDP 就用wireshark。

2.窗口介绍

    

  1)DISPLAY FILTER(显示过滤器)

  显示过滤器用于查找捕捉记录中的内容。

  使用过滤是非常重要的, 初学者使用wireshark时,将会得到大量的冗余信息,在几千甚至几万条记录中,以至于很难找到自己需要的部分。搞得晕头转向。过滤器会帮助我们在大量的数据中迅速找到我们需要的信息。

  过滤器有两种,一种是显示过滤器,就是主界面上那个,用来在捕获的记录中找到所需要的记录一种是捕获过滤器,用来过滤捕获的封包,以免捕获太多的记录。

  在Capture -> Capture Filters 中设置保存过滤在Filter栏上,填好Filter的表达式后,点击Save按钮, 取个名字。比如"Filter 102",Filter栏上就多了个"Filter 102" 的按钮。

  2)PACKET LIST PANE(封包列表)

    封包列表中显示所有已经捕获的封包。在这里您可以看到发送或接收方的MAC/IP地址,TCP/UDP端口号,协议或者封包的内容。

  如果捕获的是一个OSI layer 2的封包,您在Source(来源)和Destination(目的地)列中看到的将是MAC地址,当然,此时Port(端口)列将会为空。

  如果捕获的是一个OSI layer 3或者更高层的封包,您在Source(来源)和Destination(目的地)列中看到的将是IP地址。Port(端口)列仅会在这个封包属于第4或者更高层时才会显示。

  3)Packet Details Pane(封包详细信息)

  

  

  这个面板是我们最重要的,用来查看协议中的每一个字段。各行信息分别为

    1. Frame:   物理层的数据帧概况

    2. Ethernet II: 数据链路层以太网帧头部信息

    3. Internet Protocol Version 4: 互联网层IP包头部信息

    4. Transmission Control Protocol:  传输层T的数据段头部信息,此处是TCP

    5. TCPHypertext Transfer Protocol:  应用层的信息,此处是HTTP协议

 4)TCP包的具体内容

 

3.实例分析TCP三次握手过程

     

  实例分析

    打开wireshark, 打开浏览器输入 http://www.9upk.com在wireshark中输入http过滤, 然后选中GET /tankxiao HTTP/1.1的那条记录,右键然后点击"Follow TCP Stream",这样做的目的是为了得到与浏览器打开网站相关的数据包,将得到如下

 

  图中可以看到wireshark截获到了三次握手的三个数据包。第四个包才是HTTP的, 这说明HTTP的确是使用TCP建立连接的。

  1)第一次握手的数据包

  客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接。 如下图

  

  2)第二次握手的数据包

  服务器发回确认包, 标志位为 SYN,ACK. 将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即0+1=1, 如下图

  

  就这样通过了TCP三次握手,建立了连接

4.过滤

  less than 小于 < lt

  小于等于 le

  等于 eq

  大于 gt

  大于等于 ge

  不等 ne

  1)过滤源ip、目的ip。在wireshark的过滤规则框Filter中输入过滤条件。如查找目的地址为192.168.101.8的包,ip.dst==192.168.101.8;查找源地址为1.1.1.1的包,ip.src==1.1.1.1;查找源或目的是192.168.55.100的包,ip.addr == 192.168.55.100

  2)端口过滤。如过滤80端口,在Filter中输入,tcp.port==80,这条规则是把源端口和目的端口为80的都过滤出来。使用tcp.dstport==80只过滤目的端口为80的,tcp.srcport==80只过滤源端口为80的包;过滤端口范围tcp.port >= 1 and tcp.port <= 80

  3)协议过滤比较简单,直接在Filter框中直接输入协议名即可。排除arp包,如!arp或者not arp

  4)http模式过滤。如过滤get包,http.request.method=="GET",过滤post包,http.request.method=="POST";

  http.request.method == “GET”

  http.request.method == “POST”

  http.request.uri == “/img/logo-edu.gif”

  http contains “GET”

  http contains “HTTP/1.”

  // GET包

  http.request.method == “GET” && http contains “Host: “

  http.request.method == “GET” && http contains “User-Agent: “

  // POST包

  http.request.method == “POST” && http contains “Host: “

  http.request.method == “POST” && http contains “User-Agent: “

  // 响应包

  http contains “HTTP/1.1 200 OK” && http contains “Content-Type: “

  http contains “HTTP/1.0 200 OK” && http contains “Content-Type: “

  一定包含如下

  Content-Type:

  5)连接符and的使用。过滤两种“并且”条件时,使用and连接,如过滤ip为192.168.101.8并且为http协议的,ip.src==192.168.101.8 and http。

  6)连接符 or 的使用。过滤两种“或者”条件时。使用 or 连接,如过滤ip为192.168.101.8或者为http协议的,ip.src==192.168.101.8 or http。

  7)包长度过滤

  udp.length == 26 这个长度是指udp本身固定长度8加上udp下面那块数据包之和

  tcp.len >= 7   指的是ip数据包(tcp下面那块数据),不包括tcp本身

  ip.len == 94 除了以太网头固定长度14,其它都算是ip.len,即从ip本身到最后

  frame.len == 119 整个数据包长度,从eth开始到最后

  eth —> ip or arp —> tcp or udp —> data

5.过滤内容

  http contains "200"

6.显示具体时间

  视图-时间显示格式-

  

  

  

  

  

  

  

  

  

  

  

转载于:https://www.cnblogs.com/xinghen1216/p/10287614.html


http://lihuaxi.xjx100.cn/news/235507.html

相关文章

java web学习项目20套源码完整版

java web学习项目20套源码完整版 自己收集的各行各业的都有&#xff0c;这一套源码吃遍所有作业项目&#xff01; 1、BBS论坛系统(jspsql)2、ERP管理系统&#xff08;jspservlet&#xff09;3、OA办公自动化管理系统&#xff08;Struts1.2Hibernate3.0Spring2DWR&#xff09;4、…

反向春运成为新趋势 客流年增9%

资料图&#xff1a;春运。殷立勤 摄 中新社北京1月18日电 (记者 周音)近年来&#xff0c;反向春运成为新趋势。中国铁路总公司18日披露&#xff0c;反向春运客流以年增9%左右的速度增长。 传统春运是大城市返乡回家过年。反向春运是年轻人选择将老家的父母和孩子接来自己工作的…

判断手机版本

/**判断是否系统版本大于8.0系统 大于或等于8.0返回true 否则返回false*/ let IS_IOS8 (UIDevice.currentDevice().systemVersion as NSString).doubleValue > 8.0 let IS_OS_5_OR_LATER (UIDevice.currentDevice().systemVersion as NSString).doubleValue > 5.0 let…

CST概念

CST&#xff1a;&#xff08;Common Spanning Tree&#xff09;公共生成树,是连接交换网络内所有MST域的一棵生成树。 CST即是连接各个MST域之间的树,它是CIST的一个部分。是用来互联MST区域的单生成树。如果把每个MST区域看作是一个"设备"&#xff0c;CST就是这些&q…

Swift 中使用 SQLite——打开数据库

关于Swift中使用SQLite&#xff0c;接下来可能会分别从打开、增、删、改、查&#xff0c;几个方面来介绍SQLite的具体使用&#xff0c;这一篇重点介绍一下如何打开。 定义全局数据库访问句柄 /// 全局数据库访问句柄 private var db: COpaquePointer nil实现打开数据库函数 …

01-HTML基础与进阶-day6-录像281

04css选择器.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Document</title><style type"text/css">/* p div 标签选择器*/p {color: red; /* k:v color表示样式属性 颜…

js中的装饰器执行顺序

/*** 执行顺讯* [(property)...]->[(parameter->method)...]->constructor->class* [属性...]->[((方法参数...)->方法)...]->[constructor...]->class* 声明周期 property|parameter|method|constructor|class* 声明周期 [始化完毕]init->[属性添加…

常用 SQL介绍

创建表 /*创建数据表CREATE TABLE 表名 (字段名 类型(INTEGER, REAL, TEXT, BLOB)NOT NULL 不允许为空PRIMARY KEY 主键AUTOINCREMENT 自增长,字段名2 类型,...)注意&#xff1a;在开发中&#xff0c;如果是从 Navicat 粘贴的 SQL&#xff0c;需要自己添加一个指令IF NO…