后浪笔记一零二四

官方手册: https://www.wireshark.org/docs/wsug_html_chunked/ 常用协议抓包示例: https://wiki.wireshark.org/SampleCaptures

1. 捕获窗口

点击捕获->选项,就可以打开捕获窗口,它分为3个部分:输入,输出,选项

  1. 输入:即捕获过滤器,使用BPF语法

  2. 输出 输出主要关注的是我们现在在抓包的时候,它要么记到临时文件里,要么记到永久文件里。 如果记到永久文件里呢,我们可以点击"浏览",选择一个永久的文件的位置。留空表示使用临时文件。

如果是临时文件呢,我们还可以选择,经过多少秒,多少字节,我们换一个新的临时文件。 或者使用一个环形缓冲器,比如说我们有2个文件,第一个文件记录完后,就使用第二个文件, 第二个文件记录完后,就会覆盖第一个文件的内容。

  1. 选项 主要用来判定什么时候,多长时间,自动停止捕获。 比如说我抓了100个报文以后,或者10000个报文以后,自动停止。 或者当我记录多少个文件,抓取到多少个字节,或者过了多少秒以后,自动停止捕获。

2. 主面板

  1. 工具栏
  2. 显示过滤器
  3. 数据包列表
    • 不同的颜色代表不同的协议(点击试图->着色规则按钮进行设置)
    • Time列:可以点击试图->时间显式格式来设置是使用相对时间还是绝对时间
    • 每行的开头会有不同的符号,表示不同的含义
      ┌         : 会话中的第1个数据包
      │         : 会话中选中的数据包
      虚线      : 不属于所选会话中的数据包
      └         : 会话中最后一个数据包
      向右的箭头: 请求 
      向左的箭头: 响应
      一个对勾  : 若当前选中的是ACk报文,则此报文是它确认的那个报文
      两个对勾  : 若当前选中的是ACK报文,则此报文是它重复确认的那个报文
      点        : 选中的报文与此报文有某种关联
      
  4. 数据包细节: Frame是wireshark自己的一个分层,Ethernet是以太网的,Internet是网络层的, Transmmission Control Protocol是传输层的,Hypertext Transfer Protocol是应用层的。
  5. 数据包字节流

2.1 四种流跟踪

  • TCP
  • UDP
  • SSL
  • HTTP

2.2 文件操作

因为在分析很复杂的问题的时候,我们需要多台客户端和服务器上同时抓包,同时抓包的时候,我们就需要一个比对,比对的时候呢,还有很多干扰的报文,那么这个时候,我们怎么很好的利用wireshark工具,帮助我们减少分析的难度呢

  • 标记报文Ctrl+M
  • 导出标记报文(文件->导出特定分组),亦可按过滤器导出报文
  • 合并读入多个报文(文件->合并)

2.3 显示过滤器

  1. 显示过滤器的过滤属性
  • 任何在报文细节面板中解析出的字段名,都可以作为过滤属性
    • 在试图->内部->支持的协议面板里,可以看到各字段名对应的属性名
      • 例如,在报文细节面板中TCP协议头中的Source Port,对应着过滤属性为tcp.srcport
>Frame 7: 753 bytes on wire (6024 bits), 
>Ethernet II,
>Internet Protocol Version 4,
>Transmission Control Protocol, Src Port:
   Source Port: 14569 ----------------> Source Port: tcp.srcport
   Destination Port: 80
   [Strem index: 4]
   [TCP Segment Len: 699]
   Sequence number: 1 
   [Next sequence number: 700]
   Acknowledgment number: 1
  1. 过滤值比较符号

    英文 符号 描述及示例
    eq == 等于,ip.src==10.0.0.5
    ne != 不等于, ip.src!=10.0.0.5
    gt > 大于,frame.len > 10
    lt < 小于,frame.len < 128
    ge >= 大于等于,frame.len ge 0x100
    le <= 小于等于,frame.len <= 0x20
    contains 包含, sip.To contains “a1762”
    matches ~ 正则匹配, host matches “acme\.(org|com|net)”
    bitwise_add & 位与操作, tcp.flags & 0x02
  2. 过滤值类型

  • Unsigned integer: 无符号整型,例如ip.len le 1500
  • Signed integer: 有符号整型
  • Boolean: 布尔值,例如tcp.flags.syn
  • Ethernet address: 以:或者-或者.分隔的6字节地址,例如eth.dst==ff:ff:ff:ff:ff:ff
  • IPv4 address: 例如ip.addr==192.168.0.1
  • IPv6 address: 例如ipv6.addr==::1
  • Text string: 例如http.request.uri==“https://www.wireshark.org/"
  1. 多个表达式间的组合 | 英文 | 符号 | 意义及示例 | | and | && | AND逻辑与, ip.src==10.0.0.5 and tcp.flags.fin | | or | || | OR逻辑或, ip.src==10.0.0.5 or ip.src==192.1.1.1 | | xor | ^^ | XOR逻辑异或, tr.dst[0:3]==0.6.29 xor tr.src[0:3]==0.6.29 | | not | ! | NOT逻辑非, not llc | | […]| | 见Slice切片操作符 | | in | | 见集合操作符 |

  2. 其他常见操作符

  • 大括号{}集合操作符
    • 例如, tcp.port in {443 4430..4434},实际等价于tcp.port==443||(tcp.port>=4430&&tcp.port<=4434)
  • 中括号[]Slice切片操作符
    • [n:m]表示n是起始偏移量,m是切片长度
      • eth.src[0:3]==00:00:83
    • [n-m]表示n是起始偏移量,m是截止偏移量
      • eth.src[1-2]==00:83
    • [:m]表示从开始处至m截止偏移量
      • eth.src[:4]==00:00:83:00
    • [m:]表示m是起始偏移量,至字段结尾
      • eth.src[4:]==20:20
    • [m]表示取偏移量m处的字节
      • eth.src[2]==83
    • [,]使用逗号分隔时,允许以上方式同时出现
      • eth.src[0:3,1-2,:4,4:,2]==00:00:83:00:83:00:00:83:00:20:20:83
  1. 可用函数 upper Converts a string field to uppercase lower Converts a string field to lowercase len Returns the byte length of a string or bytes field count Returns the number of field occurrences in a frame string Converts a non-string field to a string

3. Wireshark如何解密TLS消息?

  • 原理: 获得TLS握手阶段生成的密钥
    • 通过Chrome浏览器DEBUG日志中的握手信息,生成密钥
  • 步骤
    • 配置Chrome输出DEBUG日志
      • 配置环境变量SSLKEYLOGFILE 例如exprot SSLKEYLOGFILE=/root/mytestssl.txt
    • 在Wireshark中配置解析DEBUG日志
      • 编辑->首选项->Protocols-TLS/SSL
        • (Pre)-Master-Secret log filename

需要注意:如何我们使用wireshark抓包,因为浏览器有的时候会保持长连接, 如果这个连接不是从一开始建立的时候,我们就开始抓的话,比如说这个连接其实一直保持, 但是我们用wireshark重新抓包,这个时候我们发现,所对应的报文是解不了的, 因为这个时候wireshark没有能够生成那样一个密钥, 就是我们这个连接上的TLS密钥,所以它就解不了, 就会发现都是TLS/SSL1.2协议的报文,而不是已经解密好的http2协议的报文。


本文发表于 0001-01-01,最后修改于 0001-01-01。

本站永久域名「 jiavvc.top 」,也可搜索「 后浪笔记一零二四 」找到我。


上一篇 « 下一篇 »

赞赏支持

请我吃鸡腿 =^_^=

i ysf

云闪付

i wechat

微信

推荐阅读

Big Image