天天看點

資料抓包分析基礎

資料包分析基礎

資料包分析

  • 資料包嗅探或協定分析:指捕獲和解析網絡上線上傳輸資料的過程,為了能更好的了解網絡上正在發生的事情。

    目的

    軟體:Tcpdump、Omnipeek、Wireshark

監聽網絡線路

集線器嗅探方式

流經集線器的所有網絡資料包都會被發送到每一個集線器連接配接的端口。

交換機嗅探方式

端口鏡像、集線器輸出、使用網絡分流器、ARP欺騙方式等四種方式
  1. 端口鏡像
設定連接配接的交換機的端口鏡像功能,将交換機其他一個或多個端口的經過的資料包複制一份到嗅探器連接配接的端口上。
  1. 集線器輸出
目标裝置和交換機間插接一個集線器,嗅探器也接在集線器上;在交換機不支援端口鏡像的時候可以使用這個方法,這個類似于,将兩者之間的資料包“共享”給集線器上其他的端口。
  1. 網絡分流器
有聚合的和非聚合的兩種類型,都是安置在兩個裝置間來嗅探所有流經的網絡通信,聚合的是三個接口,非聚合的是四個端口。
  1. ARP欺騙
通過發送包含虛假MAC位址的ARP欺騙資訊,劫持其他計算機流量的過程;它是在交換式的網絡中進行進階技術。

使用Cain&Abel 軟體進行ARP進行欺騙

資料抓包分析基礎
資料抓包分析基礎
資料抓包分析基礎
資料抓包分析基礎
資料抓包分析基礎
資料抓包分析基礎
資料抓包分析基礎

當ARP劫持開始後,即可通過Wireshark軟體進行抓包分析。

路由器嗅探方式

在處理涉及多個網段與路由器問題的同時,需要将嗅探器移動到不同位置上;由此才可以獲得一個完整的網絡拓撲。

Wireshark 軟體使用

查找:Ctrl+F

資料抓包分析基礎
Ctrl+F:查找(過濾)
搜尋類型 例子
Display filter (表達式篩選)

Not ip

ip.addr=xxx.xxx.xxx.xxx

Arp

Hex Value (十六進制值篩選)

00:ff

Ff:ff

00:a1:b2:f0

String (字元串篩選)

Workstationl

UserB

Domain

标記:Ctrl+M 或 右擊菜單

标記了之後,資料包的顯示會加深。

時間顯示格式

資料抓包分析基礎

相對時間:Ctrl+T

資料抓包分析基礎

捕獲選項:Ctrl+K

資料抓包分析基礎

名字解析:

  • 類型:
    • MAC位址解析:MAC位址轉為IP位址
    • 網絡層名字解析:IP轉為DNS名稱(網址)
    • 傳輸層名字解析:将端口轉為協定
    • 使用外部網絡名稱解析器
  • 弊端:
    解析可能失敗;打開檔案都要重新解析一遍;解析DNS名字會産生額外流量;解析過程占用系統資源。

協定解析:

資料抓包分析基礎

過濾器

  • 過濾器BPF文法:
BPF限定詞 說明 例子
Type 名字或數字代表的意義 Host,net,port
Dir 指明資料來源和目的 src,dst
Proto 限定使用的協定 Ether,ip,tcp,udp,http,ftp
邏輯運算符: 與 && 或 || 非 !
表達式 說明
src 192.168.1.11 && port 80 捕獲源位址是192.168.1.11 和源端口或目标端口是80的流量
Host xxx.xxx.xxx.xxx 捕獲某個IP位址的計算機流量
Host testserver2 捕獲某個主機名的計算機流量
Ether host xxx.xx.xx.xx 捕獲某個MAC位址的計算機流量
Src host xx.xxx.xxx.x 捕獲來自某個計算機的流量
Dst host xx.x.x.x 捕獲前往某個計算機的流量
Port xxxx 捕獲指定端口的流量
!port xxx 捕獲除指定端口以外的所有流量
Icmp[0] == 3 捕獲偏移量為0值為3(目标不可達)的Icmp資料包流量
Icmp[0] == 8 or icmp[0] == 0 捕捉代表 echo 請求 或 echo恢複的ICMP資料包流量
Icmp[0:2] == 0x0301 捕捉以類型 3 代碼 1表示的目标不可達、主機不可達的ICMP資料包流量
Tcp[13] & 1==1 捕捉設定了FIN位的TCP資料包
Tcp[13] & 2==2 捕捉設定了SYN位的TCP資料包
Tcp[13] & 4==4 捕捉設定了RST位的TCP資料包
Tcp[13] & 8==8 捕捉設定了PSH位的TCP資料包
Tcp[13] & 16==16 捕捉設定了ACK位的TCP資料包
Tcp[13] & 32==32 捕捉設定了URG位的TCP資料包
Tcp[13] == 18 捕捉TCP SYN-ACK資料包
Ether host 00:00:00:00:00 捕捉流入或流出mac位址的流量
!Ether host 00:00:00:00:00 捕捉流入或流出mac位址以外的所有的流量
Broadcast 捕捉廣播流量
Udp 捕獲UDP流量
  • 顯示過濾器
使用自帶的過濾表達式來過濾顯示資料:
資料抓包分析基礎
  • 比較操作符
  • 邏輯操作符
  • 過濾器舉例
過濾器表達式 說明
! tcp.port == 3389 排除RDP流量
Tcp.flags.syn == 1 具有SYN标志位的TCP資料包
Tcp.flags.rst == 1 具有RST标志位的TCP資料包
! arp 排除ARP流量
http 所有HTTP流量
Tcp.port == 23 || tcp.port ==21 文本管理流量
Smtp || pop || imap 文本email流量
Ip.addr == xxx.xx.xx.xx 指定IP的流量
Frame.len <= xxx 長度小于xxx位元組的資料包

流量分析和圖形化功能

網絡端點

統計每個端點的位址、發送或收到的資料包的數量和位元組數
資料抓包分析基礎
每一個IP就是一個網絡端點

網絡會話

統計A和B端點間會話的發送或收到的資料包的數量和位元組數
資料抓包分析基礎

協定分層

可以檢視各種協定的分布統計情況
資料抓包分析基礎

資料包長度分析

資料抓包分析基礎

跟蹤TCP資料流

資料抓包分析基礎

ps:【Wireshark軟體無法實作tcp碼流跟蹤】

圖形展示

  • 檢視 IO 圖
資料抓包分析基礎
資料抓包分析基礎
通過x軸(資料包廂隔時間)、Y軸(資料包數量上限)來調整顯示的IO圖形,通過圖像過濾器可以将不同的流量以不同的顔色顯示IO圖像對比。
  • 雙向時間圖
基于兩個端口間TCP連接配接對話,确認資料包已被成功接收所需的時間,可與會話統計配合使用。
資料抓包分析基礎
  • 資料流圖
對于連接配接可視化以及将一段時間中的資料流顯示出來,配合對話統計使用,可以檢視兩端點之間的資料流。
資料抓包分析基礎

【統計—FlowGraph…】

資料抓包分析基礎

資料包标記

  • 警告資訊【不正常通信中的異常資料包】
  • 丢失:上一段資料包丢失時
  • 延收:已确認丢失的資料包,又收到其他ACK包時
  • 保活:當一個連接配接的保活資料包出現時
  • 零窗:接收方達到視窗大小,發出一個零視窗通知時
  • 亂序:當資料包被亂序接收時
  • 重傳:一次重傳會在收到一個重複ACK的20ms内進行
  • 注意資訊【正常通信中的異常資料包】
  • 重傳:收到重複的ACK或重傳計時器逾時
  • 重複ACK:當主機沒有收到下一個期望序列号的資料包是,會發生資料重複的ACK
  • ACK【】
  • 零窗探查:零視窗通知包發出後,用來監視TCP接收視窗的狀态
  • 保活ACK:用來響應保活資料包
  • 零窗ACK:用來響應零視窗探查資料包
  • 視窗已滿:通知傳輸主機其接收者的TCP接收已滿
  • 對話資訊【通信的基本資訊】
  • 視窗更新:接收者發出,通知發送者TCP接收視窗大小被改變

資料包分析

資料抓包分析基礎
資料抓包分析基礎
資料抓包分析基礎

通用底層網絡協定

位址解析協定ARP

ARP頭

資料抓包分析基礎
偏移位 0~7 8~15
硬體類型 ~
16 協定類型 ~
32 硬體位址長度 協定位址長度
48 操作 ~
64 發送方的MAC1 ~
80 發送方的MAC2 ~
96 發送方的MAC3 ~
112 發送方的協定位址1 ~
144 目标的MAC1 ~
160 目标的MAC2 ~
176 目标的MAC3 ~
192 目标的協定位址1 ~
208 目标的協定位址2 ~

資料包分析

資料抓包分析基礎
資料抓包分析基礎
上述的均為:request(請求包),下圖為(reply)響應包
資料抓包分析基礎

無償的ARP

當IP位址發生改變後,網絡主機中緩存的IP和MAC映射就失效了,為了防止通信錯誤,無償ARP請求被發送到網絡中,強制所有收到它的裝置更新ARP映射緩存。
資料抓包分析基礎

IP協定

IP頭

  • 服務類型[級别]:優先級标志位和服務類型标志位,用來進行QoS
  • 辨別符:識别一耳光資料包或被分片資料包的次序;唯一
  • 标記符:标記資料包是否為一組分片資料包的一部分
  • 分片偏移:該資料包是個分片,資料包按分片偏移值順序重組
  • 生存時間:TTL —— 逾時TTL時間,資料包被丢棄

資料包分析

資料抓包分析基礎

IP分片

将一個資料流分為更小的片段,是IP用于解決跨越不同類型網絡時可靠傳輸的一個特性。基于資料鍊路層所使用的最大傳輸單元MTU的大小,預設是1500位元組(不包含14位元組的以太網頭本身),當資料包大小大于MTU時會被分片。

傳輸控制協定TCP

TCP頭

資料抓包分析基礎
  • 序号:表示一個TCP片段。
  • 确認序号:希望從另一個裝置得到的下一個資料包序号
  • 緊急指針:如果設定了URG位,緊急指針将告訴CPU從資料包的哪裡開始讀取資料

TCP端口

  • 1~1023:标準端口組;特定服務會用到标準端口
  • 1024~65535:臨時端口組;作業系統會随機地選擇一個端口讓某個通信單獨使用
    下面為TCP建立連接配接時的三次握手包的資料包

TCP标志

TCP的三次握手

  • A發送SYN,請求建立連接配接
  • B發送SYN、ACK
  • A發送ACK

【通俗介紹】:

A向B發送建立連接配接的邀請,B收到A的SYN之後,向A發送收到的SYN并發送自己的ACK,表示自己收到了,并且發送ACK同意A和B建立連接配接;A收到ACK之後,就和B建立了連接配接。

設定TCP資料包序列号的顯示方式:

TCP的四次斷開

TCP重置

  • 當TCP連接配接中途突然掉線,使用RST标志位之處連接配接被異常終止或拒絕連接配接請求

使用者資料包協定UDP

UDP頭

資料包分析

網際網路控制消息協定ICMP

ICMP頭

ICMP類型和代碼

Type Name Info
Echo Reply Echo 回複
1 Unassigned 未指派
2 Unassigned 未指派
3 Destination Unreachable 目标不可達
4 Source Quench (Deprecated) 報源抑制(棄用)
5 Redirect 重定向
6 Alternate Host Address 修改主機位址
7 Unassigned 未指派
8 Echo REauest Echo請求
9 Router Advertisement 路由器公告
10 Router Solicitation 路由器請求
11 Time Exceeded 逾時
12 Parameter Problem 參數問題
13 Timeestamp 時間戳
14 Timestamp Reply 時間戳應答

……………………

Echo請求和響應【ping xx.xx.xx.xx】

路由跟蹤【tracert x.x.x.x】

路由跟蹤将TTL自加1的過程一直持續到路由到達目的IP,與路徑上的每一個路由進行通信并echo傳回一個響應包。