Blue Team: 提取封包內容-基礎篇

Translated by JohnThunder
Feb 20, 2018

Blue Team: 提取封包內容-基礎篇

這篇會提到如何從 PCAP 萃取資料,不論是普通的網路流量分析或是惡意程式的 Malware 分析都會需要從流量中提取資料。

Wireshark

Wireshark 是你最好的選擇當你需要分析小型 PCAP 檔案,但當檔案大小超過 800MB 執行效能會下滑。

  1. 開啟 Wireshark,擷取流量並最小化
  2. 用瀏覽器開始 http://www.eicar.org/85-0-Download.html
  3. 下載 eicar 的樣本
  4. 當下載完成後停止擷取流量
  5. 用 http 當作過濾條件在 Wireshark的 display filter bar. 參考連結: BPF Filter
  6. 輸出 HTTP 檔案 [File > Export Objects > HTTP].
  7. 選取、輸出 eicar 的檔案
  8. 存檔 Wireshark PCAP. [File > Save As > test_eicar.pcap]

Bro IDS

使用 Bro IDS 稍微進階一點的工具,當你需要調查/分析比較大的 PCAP 檔案時十分方便而且容易自動化。並且 Bro 支援 PCAP 檔案以外還有即時網路流量分析。

1.) Install Bro IDS (defaults)[/usr/local/bro]

我個人建議使用 Docker 幫助你更快的完成環境設定 https://github.com/blacktop/docker-bro 但是提取方面的腳本並沒有在這個 Github 專案裡面,你會需要額外設置。

2.) 在 local.bro 檔案寫入啟用 ‘extract all’ [/usr/local/bro/share/bro/local.bro]

@load frameworks/files/extract-all-files

3.) 打開local.bro,修改預設提取檔案的最大上限預設值是 25MB。

在我們的實驗中包含的檔案都較小,但還是建議修改預設的上限。如果你在生產、實際環境使用 Bro IDS,你應該要好好的保存、維護你的資料。

[/usr/local/bro/share/bro/local.bro]

redef FileExtract::default_limit = 1000000000;

1000000000 = 1 GByte

4.) 確認你將你的 config 部署到 Local Bro上。 broctl deploy

5.) 用 Bro 分析我們在之前錄製的 PCAP 檔案,Bro 會在當前資料夾解開 PCAP 內容。

bro -Cr test_eicar.pcap local.bro "Site::local_nets += { 10.0.0.0/24 }"

打開 [files.log] 去辨識出哪個是 eicar 的檔案,得到 unique ID 後把資料解出來。

Bro extraction的預設值: https://www.bro.org/sphinx/scripts/base/files/extract/main.bro.html

用雲端幫你分析

最近的新流行的方式,但其實後端也是用 BRO 或是 TShark 分析再幫你加上漂亮的圖表。

請謹慎思考

當你要用這些服務之前你的封包檔案會被服務提供者取得,也就是你的封包內容也就會在網路被留存了。

  • https://www.networktotal.com
  • https://www.packettotal.com - T&Cs

下圖是 PacketTotal 的提取的範例圖

Network Miner

NETRESEC 開發的 Windows GUI 有不錯效能的 PCAP 分析工具

非常適合快速圖片分析當你有大量圖片在你的 PCAP 中。請注意的是,免費板只有 0.84Mbits/s 所以會需要一點時間當你要分析較大的 PCAP 的時候。

Network Miner 會自動的提取、輸出檔案並用 IP 作為資料夾名稱。

不論是哪個工具,都有各自的優勢與劣勢。 有些不易於自動化或是有些是用於臨時快速分析的,最好從這些裡面熟悉幾項。 如果你是高手/重度使用者,個人建議是使用 Python/Scapy 應該會是最合適的。

延伸閱讀