iT邦幫忙

2025 iThome 鐵人賽

DAY 15
0

🧂 前言

今天會分享什麼是Network Forensic,以及經典分析工具Wireshark的使用


🛜 Network Forensic

首先講一下什麼是封包,封包是網路通訊的基本單位,就像郵件一樣。當你在網路上傳送資料時,這些資料不會一次全部送出去,而是被切割成很多小塊,每一塊就是一個封包。比如說,當你下載一個1MB的檔案時,這個檔案會被切割成幾千個封包,每個封包大約1500位元組左右。每個封包都有固定的結構,就像信封一樣。

封包的最外層是標頭(Header),裡面包含了這個封包要去哪裡、從哪裡來、用什麼方式傳送等資訊。標頭裡最重要的資訊包括:

  • 來源IP位址:這個封包是從哪台電腦送出來的
  • 目標IP位址:這個封包要送到哪台電腦
  • 協定類型:這個封包使用什麼通訊協定(HTTP、HTTPS、FTP等)
  • 時間戳記:這個封包是什麼時候產生的
  • 封包大小:這個封包有多大
  • 序號:這個封包在整個資料流中的位置

封包的內容部分(Payload)則是實際要傳送的資料。比如說,如果你在瀏覽網頁,HTTP封包的內容就是網頁的HTML程式碼。如果你在登入網站,封包的內容可能包含你的帳號密碼。

source : https://webhostinggeeks.com/blog/what-is-data-packet/

網路層面追蹤和分析資料傳輸的過程。當網路攻擊發生時,攻擊者會在網路中留下痕跡,這些痕跡就記錄在網路封包裡。Network Forensic 就是找出攻擊者是怎麼進來的、做了什麼、拿走了什麼資料

常見的網路鑑識工具是Wireshark


🦈 Wireshark

下載連結:https://www.wireshark.org/download.html

Wireshark是目前最受歡迎的開源網路協定分析器。這款功能強大的軟體不僅能夠即時監控網路流量,更能深入分析各種網路協定的詳細內容,為網路故障排除、協定開發和安全分析提供全方位的支援,另外也能夠識別和解析超過2000種不同的網路協定,從常見的TCP/IP協定族到專用的工業控制協定,幾乎涵蓋了所有可能遇到的網路通訊場景。這種全面的協定支援不僅包括即時協定解析,還允許用戶根據需要添加自定義協定支援。

下載後打開主頁會有兩個部分,第一個open,另一個是Capture

  • open 是開啟已經錄好的 pacap 檔
  • Capture 是可以選擇你的網卡,點進去後可以開始抓封包

假設我們打開了一個錄好的pcap 封包

中間主視窗

顯示抓到的所有封包

• No.:封包編號(依捕獲順序)

• Time:相對於第一個封包的時間戳記

• Source:封包來源 IP

• Destination:封包目的 IP

• Protocol:協定類型(如 TCP、HTTP、SSH)

• Length:封包大小(bytes)

• Info:協定的摘要資訊(像是 TCP 的 SYN/ACK、HTTP 的 GET 請求等等

中間封包的顏色也會根據不同的protocol 或狀態更改顏色

左下方視窗

顯示選中封包的協定分層解析

• Frame:物理層資訊(長度、介面等)

• Ethernet / Data-link 層(此例省略,因為用 utun8 介面抓)

• Internet Protocol Version 4 (IPv4):來源 IP 100.112.165.2 → 目的 IP 192.168.1.125

• TCP:來源埠 60665 → 目的埠 5000,Seq / Ack / WinSize 等控制資訊

• HTTP:協定層解析到 GET / HTTP/1.1

右下方視窗

以十六進制(左半邊)+ ASCII(右半邊)顯示原始封包內容。


另外也可以對選中的封包按右鍵,以其他功能,除了copy之後還可以follow。

follow 的功能是將 一個 TCP 連線裡的 HTTP 封包資料串起來,可以看到完整的瀏覽器請求或伺服器回應


另外最上方有一個Statistic 可以選,他會幫你整理一些資訊並統計

這邊介紹幾個常用功能

Conversation

這裡可以看到wireshark 統計的所有兩個ip 地址之間的傳輸狀況

Path length

這邊可以看到封包長度的統計

Protocol Hierarchy

這邊會看到所有封包協定的統計結果


除此之外,wireshark 提供了filter 的功能,可以快速的過濾出想要看的封包

這邊整理了一些基本filter 語法

# 特定IP位址
ip.addr == 192.168.1.1

# 來源IP
ip.src == 192.168.1.1

# 目標IP
ip.dst == 192.168.1.1

# IP範圍
ip.addr >= 192.168.1.1 and ip.addr <= 192.168.1.100

# 網段
ip.addr == 192.168.1.0/24

# 特定埠號
tcp.port == 80
udp.port == 53

# 來源埠
tcp.srcport == 22

# 目標埠
tcp.dstport == 443

# 埠範圍
tcp.port >= 8000 and tcp.port <= 9000

# 基本協定
tcp
udp
icmp
http
https
dns
ssh
ftp

# 組合協定
tcp and http
udp and dns

# HTTP請求方法
http.request.method == "GET"
http.request.method == "POST"
http.request.method == "PUT"

# HTTP狀態碼
http.response.code == 200
http.response.code >= 400

# HTTP主機
http.host == "example.com"

# HTTP URI
http.request.uri contains "login"
http.request.uri contains "admin"

# 特定時間範圍
frame.time >= "2024-01-01 10:00:00"
frame.time <= "2024-01-01 11:00:00"

# 相對時間
frame.time >= "2024-01-01 10:00:00" and frame.time <= "2024-01-01 10:30:00"

# 封包大小
frame.len > 1000
frame.len < 100

# 資料長度
tcp.len > 500
udp.length > 100

結論

今天介紹了什麼是Network Forensic ,以及Wireshark 的使用,Wireshark 的功能還有很多,接下來幾天也會介紹一些其他的工具或者Wireshark 其他功能。


上一篇
Day14 網頁資訊大補帖-圖解講義
下一篇
Day16 🦈 ✌️
系列文
Blue 了 Blue 了!只會看封包與log的我錯了嗎!17
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言