Wireshark數據包分析實戰 - 學習筆記

一、數據包分析技術與網絡基礎
混雜模式
工作在這個模式的網卡,會捕獲其所在網段的所有網絡通信流量,而不僅僅是其發出或者收到(通過MAC地址區分)的流量。

集線器 - Hub
物理層轉發,從一個口收到,會轉發到所有口,包括自己;
交換機 - Switcher
MAC層轉發,從一個口收到,會轉發到所有口,但只有目標端口會接收(通過MAC地址區分);
路由器 - Router
層3轉發,即在不同網段之間轉發。

流量分類
廣播
分爲MAC層廣播和層3廣播。MAC層廣播地址是FF:FF:FF:FF。層3廣播地址是網段內最大的IP地址,比如網絡192.168.156.xxx,網絡掩碼255.255.255.0,那麼其廣播地址就是192.168.156.255。
由於廣播會產生大量的數據包,一般限制在網絡內,即集線器和交換機會轉發廣播包,但路由器不會。
多播
多播工作在層3,通過使數據包的接收者加入到某個組地址來限制數據包的複製。
一般來說,224.0.0.0 - 239.255.255.255 之間的IP地址,很可能是多播地址。
單播
端到端通信,通過IP地址區分。

廣播域
是數據包不經過路由器所能到達的網絡邊界。

二、監聽網絡線路
一旦數據包從網卡到達CPU後,就可以被數據包嗅探軟件捕獲並進行分析。

集線器連接的網絡
這個已經比較少見了,因爲會導致數據包的衝突,加重網絡負擔。
但這個環境對數據包分析師來說非常理想。

交換機連接的網絡
將嗅探器軟件連接到交換機的一個端口,將只能看到廣播包和自己收發的包。
有4種方法:
1、端口鏡像
交換機需要支持端口鏡像,有些支持多個端口鏡像到一個端口,需要考慮負載問題,可能丟包
被嗅探的機器不需要離線
網絡不受影響
2、集線器接出
有集線器可用,通過集線器把目標機器和嗅探軟件連接到交換機上;
被嗅探的機器需要暫時離線一下,以便連接;
被嗅探的機器會從全雙工變成半雙工;
3、網絡分流器
被嗅探的機器需要暫時離線一下,以便連接;
分爲聚合的、非聚合的。聚合的:收發在一個端口,非聚合的,收發爲單獨端口;
嗅探光纖通信時,這是唯一的選擇; ???
就是爲了網絡分析設計的,但有時成本稍高;

4、ARP欺騙攻擊
嗅探器作爲目標機器和其上游路由器之間所有通信的中間人
Cain&Abel軟件

路由器連接的網絡
同交換機,但有時可能需要在不同點連接嗅探器才能定位到問題。

5、直接安裝


三、Wireshark入門
http://www.wireshark.org
Ethereal -> Wireshark
#sudo apt install wireshark
#./config && make && make install

四、玩轉捕獲數據包
1.BPF語法
捕獲過濾器應用於WinPcap,並使用BPF(Berkeley Packet Filter)語法,這個語法被廣泛用於多種數據包嗅探軟件,主要是由於大部分軟件都依賴於使用BPF的libpcap/WinPcap庫。
使用BPF語法創建的過濾器被稱爲表達式,包含一個或者多個原語,原語之間爲邏輯運算符(&&, ||, !)。
每個原語包含一個或多個限定詞,然後跟着一個ID名字或者數字。
限定詞有三類:
- Type:host,net,port,默認爲host
- Dir:src,dst,默認爲 src and dst
- Proto:ether, ip, tcp, udp, http, ftp, icmp等
例如:
src 192.168.0.10 && port 80

2.協議域過濾器
可以指定每個字節/bit的值,比如
icmp[0:2]==0x0301,協議後面跟着[],格式爲:proto[begin_offset:len] op value
tcp[13]&4==4 //tcp包是否設置了RST標誌

3.顯示過濾器
比較運算符:==,!=,>,<,>=,<=
邏輯操作符:and, or, xor, not(!)
例如:
!tcp.srcport==3389 // 和 tcp.srcport!=3389相同嗎 ?
ip.src==192.168.156.2

五、wireshark高級特性
端點(endpoint)指網絡通信中的能夠發送或者接收數據包的設備。
會話(conversation)指網絡通信中的雙方,由地址標識。
MAC會話由一對MAC地址標識,IP會話由一對IP地址標識。

查看端點:Statistics -> Endpoints
查看網絡會話:Statistics -> Conversations
名字解析:每次打開文件都需要解析,可能失敗,佔用系統資源;
- MAC地址解析
- 網絡名字解析 - ip
- 傳輸名字解析 - port
更換解析器:選中packet,右鍵,Decode as,稱爲強制解碼
跟蹤TCP流:選中packet,右鍵,Follow TCP stream,文本形式顯示內容

查看IO圖:選中packet,Statistics -> IO Graphs
雙向時間圖:RTT(round-trip time),即發送數據包,到收到ack的時間,選中packet,Statistics -> TCP Stream Graph -> Round Trip Time Graph
數據流圖:比較直觀看出交互情況,Statistics -> Flow Graph
專家信息:Analyze -> Expert Info Composite

六、通用底層網絡協議
七、常見高層網絡協議
八、基礎的現實世界場景
Twitter的登錄雖然是加密的,但HTTP POST方法發佈內容時,確可以看到明文,即使作者不想對外公佈的。

IP和域名映射文件:
c:\windows\system32\drivers\hosts
/etc/hosts

在Packets Details中選擇某個域,然後右擊,選擇Prepare a Filter,即可創建一個filter。

過濾出FTP包,比如是傳輸一個文件,可以Follow TCP Stream -> Save as,保存成文件,注意文件格式與期望寫成一樣,就可以得到其傳輸的內容。

九、讓網絡不再卡
1.TCP錯誤恢復
RTO:retransmission timeout,在重傳包的Packet Details -> [SEQ/Ack analysis]裏面能看到
RTT:
WIndows和Linux的最大重傳次數都可以配置,一般windows 5次,Linux 15次;
TCP連續3次收到重複的Ack,就認爲後續的包丟失了,啓動快速重傳,此時發送完重傳包才繼續發送其它包。
TCP/IP協議棧是否開啓選擇性確認(Selective Acknowlegement)特性,如果未開啓,則一旦數據包丟失,後續所有包都要重傳。而開啓的情況,則只需要重傳丟失的包。
2.TCP流量控制

十、安全領域的數據包分析
1.TCP SYN端口掃描
向對方的每個port發送SYN包,請求建立連接
- 如果對方有service運行於該port,那麼回覆SYN/Ack;
- 如果沒有,則回RST;
- 如果沒有開機,或者port關閉,則沒有響應;
在wireshark中查看掃描結果,可以查看Statistics -> Conversations,裏面有port,packets數量等可以用於識別結果。
2.操作系統指紋技術

十一、WLAN數據包分析
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章