抓取TLS握手阶段的Client Hello报文

抓取TLS握手阶段的Client Hello报文

Content #

tcpdump -w file.pcap 'dst port 443 && tcp[20]==22 && tcp[25]==1'
  1. dst port 443:

就是抓取从客户端发过来的访问 HTTPS 的报文。

  1. tcp[20]==22:

这是提取了 TCP 的第 21 个字节(因为初始序号是从 0 开始的),由于 TCP 头部占 20 字节,TLS 又是 TCP 的载荷,那么 TLS 的第 1 个字节就是 TCP 的第 21 个字节,也就是 TCP[20],这个位置的值如果是 22(十进制),那么就表明这个是 TLS 握手报文。

  1. tcp[25]==1:

这是 TCP 头部的第 26 个字节,如果它等于 1,那么就表明这个是 Client Hello 类型的 TLS 握手报文。

wireshark中显示的第21字节会是十六进制的 16,换算成十进制,就是 22 。

报文偏移量及其含义:

Viewpoints #

From #

02 | 抓包分析技术初探:你会用tcpdump和Wireshark吗?