WireShark

WireShark常用表达式

ip.addr == 源ip/目标ip    #会返回两个包,一个是请求包一个是相应包,如果要看相应包要用这个
ip.dst == 192.168.1.1   #显示目标地址是192.168.1.1的数据包
ip.src == 192.168.1.1   #显示源地址是192.168.1.1的数据包
ip.addr == 222.222.221.138 and tcp.port==80 && http      #ip(s)并且端口(s)并且协议为http

ip.src==222.222.221.138/150   #网络过滤,过滤一个网段
### 只需要http的包,过滤掉jpg,过滤掉png,过滤掉zip
http.request and !((http.request.full_uri matches "http://.*.jpg.*") or(http.request.full_uri matches "http://.*.png.*") or(http.request.full_uri matches "http://.*.zip.*"))    

定位有用的数据包

根据表达式得到指定ip端口的数据包,但是同一个目的ip的通信也有很庞大的数据包

输入表达式后按ctrl+N打开查找对话框,

  • Display filter 通过表达式进行筛选,其功能强大,如ip.addr==192.168.1.23
  • Hex value 通过十六进制对数据包进行筛选,如00:ff
  • String 通过字符串进行查找,如login

标记数据包

在Packet List中选中一个数据包,右键选择Mark Packet(快捷键Ctrl+M)就可以将该数据包标记,标记后该数据包会高亮显示。

在多个被标记的数据包之间切换可用Ctrl+Shift+NCtrl+Shift+B

重组TCP/HTTP数据流

burpsuite的功能相似,Wireshark也有TCP流量重组功能。右键单击一个数据包选择Follw TCP/UDP Stream即可重组出数据流交互过程。其中红色表示从源地址发往目标地址,蓝色反之。

查看端点与会话

Endpoints窗口里(Statistics -> Endpoints)已经统计出了每一个端点的地址、传输发送数据包的数量u以及字节数。这里一个很有用的地方是:单击一个数据包右键,在相关选项里有该数据包的过滤语法规则,可以直接过滤出指定ip抓的包

Package Detail详解

Frame:物理层的数据帧概况。(哪块网卡)
Ethernet II:数据链路层以太网帧头部信息。(MAC地址)
Internet Protocol Version 4:互联网层IP包头部信息。(b/s端ip地址)
Transmission Control Protocol:传输层的数据段头部信息,此处是TCP协议。(port端口)
Hypertext Transfer Protocol:应用层的信息,此处是HTTP协议。(url,数据)

物理层的数据帧

2563号帧,线路622字节,实际捕获622字节

Interface id: 0        #接口id
 Encapsulation type: Ethernet (1)         #封装类型
Arrival Time: Jun 11, 2015 05:12:18.469086000     #捕获日期和时间
[Protocols in frame: eth:ip:tcp:http]   #帧内封装的协议层次结构

数据链路层以太网帧头部信息

以太网MAC地址,源mac地址为0c:9d:92:12:56:87,目标mac地址为8c:21:0a:1c:40:e8

Ethernet II, Src: 0c:9d:92:12:56:87 (0c:9d:92:12:56:87), Dst: Tp-LinkT_1c:40:e8 (8c:21:0a:1c:40:e8)
    Destination: Tp-LinkT_1c:40:e8 (8c:21:0a:1c:40:e8)    #目标MAC地址
        Address: Tp-LinkT_1c:40:e8 (8c:21:0a:1c:40:e8)
    Source: 0c:9d:92:12:56:87 (0c:9d:92:12:56:87)    #源MAC地址
        Address: 0c:9d:92:12:56:87 (0c:9d:92:12:56:87)
    Type: IPv4 (0x0800)

互联网层IP包头部信息

ip地址,源ip地址为222.222.221.138,目的ip为58.220.56.45

Internet Protocol Version 4, Src: 222.222.221.138, Dst: 58.220.56.45
    Version: 4     #互联网协议IPv4
    Header Length: 20 bytes (5)     #IP包头部长度
    Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)    #差分服务字段
    Total Length: 608        #IP包的总长度
    Time to live: 128   #生存期TTL
    Protocol: TCP (6)      #此包内封装的上层协议为TCP
    Header checksum: 0xe3fe [validation disabled]    #头部数据的校验和
    Source: 222.222.221.138    #源IP地址
    Destination: 58.220.56.45    #目标IP地址

传输层TCP数据段头部信息

tcp端口源端口为50094,目标端口为80

Transmission Control Protocol, Src Port: 50094, Dst Port: 80, Seq: 3035, Ack: 32379, Len: 685
    Source Port: 50094     #源端口号
    Destination Port: 8088    #目标端口号
    Sequence number: 3035    #序列号(相对序列号)
    [Next sequence number: 3720     #下一个序列号
    Acknowledgment number: 32379    #确认序列号
    Header Length: 20 bytes (5)     #头部长度
    Flags: 0x018 (PSH, ACK)             #TCP标记字段
    Window size value: 514        #流量控制的窗口大小
    Checksum: 0xb69e #TCP数据段的校验和

TCP三次握手

TCP(Transmission Control Protocol)传输控制协议
TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:
位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)Sequence number(顺序号码) Acknowledge number(确认号码)
第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道,A要求建立联机;
第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包;
第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。
完成三次握手,主机A与主机B开始传送数据。

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。完成三次握手,客户端与服务器开始传送数据.

OICQ

过滤器中输入oicq即可过滤应用层协议为oicp的包

oicq数据包格式

包解析

标识:固定为0x02 
版本号:协议版本 

命令:使用oicq.command == 23可过滤命令为23的包

参考:https://blog.csdn.net/qq_35615083/article/details/80276777

原文地址:https://www.cnblogs.com/aeolian/p/10995971.html