1 / 129

Module 2 : 封包擷取與分析實習

Module 2 : 封包擷取與分析實習. 學習目的. 欲了解網路發生什麼問題,可透過擷取和分析網路封包內容,進而了解問題點並擬出對策。本模組將說明如何進行網路封包擷取與分析,幫助學習在分析網路安全與網路問題的基本技能 本模組共有五個小節包括 (1) 封包簡介 (*) (2) 封包結構與通訊協定 (*) (3) 封包擷取工具介紹 (*) (4) 封包擷取工具的實務 (**) (5) 封包擷取與分析的 專案實作 (**) 共需三個鐘點. Module 2 :封包擷取與分析實習. Module 2-1 :封包簡介 (*)

Download Presentation

Module 2 : 封包擷取與分析實習

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Module 2:封包擷取與分析實習

  2. 學習目的 • 欲了解網路發生什麼問題,可透過擷取和分析網路封包內容,進而了解問題點並擬出對策。本模組將說明如何進行網路封包擷取與分析,幫助學習在分析網路安全與網路問題的基本技能 • 本模組共有五個小節包括 (1)封包簡介(*) (2)封包結構與通訊協定(*) (3)封包擷取工具介紹(*) (4)封包擷取工具的實務(**) (5)封包擷取與分析的專案實作(**) 共需三個鐘點

  3. Module 2:封包擷取與分析實習 • Module 2-1:封包簡介(*) • Module 2-2:封包結構與通訊協定(*) • Module 2-3:封包擷取工具介紹(*) • Module 2-4:封包擷取工具的實務(**) • Module 2-5:封包擷取與分析的專案實作(**) * 初級(basic):基礎性教材內容 **中級(moderate):教師依據學生的吸收情況,選擇性介紹本節的內容 ***高級(advanced):適用於深入研究的內容

  4. Module 2-1:封包簡介(*)

  5. 封包(Packet)是什麼? • 維基百科解釋:封包指的是在封包交換網路中傳輸的格式化數據塊,是基本的信息單位 • 封包主要由控制訊息(control information)與使用者資料(user data)所構成 • 以IP封包為例 • 控制訊息:標頭檔(header)部份包含來源位置與目標位置等資訊 • 使用者資料:內容(message)部分包含實際使用者所要傳遞的訊息 2-5

  6. 來源位址 目的位址 控制訊息 資料 封包內容圖 封包定義 • 依照CCITT(國際電報電話諮詢委員會)對封包的解釋:封包是一段數位訊號的集合,通常包括使用者資料及控制訊息兩部份 • 使用者資料:真正所要傳送的內容 • 控制訊息:包括如傳送端與接收端的位址、封包前後次序的編號、以及一些錯誤控制碼等

  7. 封包介紹 • 在網路中進行傳輸的最小資訊單位 • 封包在網路上傳送的速度較快,而且在傳輸過程中,不會妨礙其他網路封包的傳輸;當任何封包發生錯誤時,只有錯誤的封包必須重新傳送,而不是整個資料重傳

  8. 來源資料=2106 octets PH 2100 octets Flag=11 ; Length=2099 SH 512 octets 第一段落 Flag=01 ; Length=2099 512 octets SH 持續段落1 Flag=00 ; Length=1587 SH 512 octets 持續段落2 Flag=00 ; Length=1075 持續段落3 SH 512 octets Flag=00 ; Length=563 SH 52octets 最後段落 Flag=10 ; Length=51 封包 VS 資料 • 欲傳輸一個較大的資料,例:2100 Bytes之文字檔,在傳輸上為了方便,通常會將此資料切割成若干個段落如下表示 • 每個段落即為一個封包 PH= 來源資料的主要檔頭 SH=段落檔頭

  9. 封包構成區段

  10. 完成傳輸資料 欲傳輸資料 資料切割成封包傳輸的原因 • 避免網路阻塞:如果直接將資料傳送到網路上,由於資料太大,會造成網路的擁擠,其它電腦都會因為等待這台電腦傳輸資料而無法工作 資料1.傳遞中 B E A H F C G 資料2 資料3 資料1 資料1 D 網路阻塞示意圖

  11. 資料切割成封包傳輸的原因 (續) • 可多路徑傳遞:當網路較複雜時,兩台電腦之間的通訊路徑就不只一個,資料拆成封包後,可以透過路由(Routing)走不同的路徑到達目的地,然後再組合起來,加快傳遞速度 一般路徑傳輸:藍色路徑 A > B > D > F 封包1已傳輸、封包2欲傳輸,D點發生忙碌時 變更路徑傳輸:綠色路徑 A > B > E > F 等待傳輸封包 B D A F 封包1 封包2 封包1 E 完成傳輸封包 C 多路徑傳遞示意圖

  12. 路由(Routing)簡介 • 封包在網路上的傳輸是透過路由(Routing),將封包從來源位址傳輸到目的位址 • 路由為網路OSI七層中的網路層(Network Layer)所負責 應用層Application Layer 表現層Presentation Layer 交談層Session Layer 傳輸層Transport Layer 網路層Network Layer 資料連結層Data-Link Layer 實體層Physical Layer

  13. 路由(Routing)簡介 (續) • 路由器(Router):功用為分配引導封包傳遞,如下個需經過之主機,以完成封包傳遞 • 路由表(Routing Table):一般來說,路由器皆會存有路由表,用來紀錄與儲存到達各個目的地之最佳路徑 Routing Table

  14. 封包重組 封包分組 • 一個資料若拆成若干個封包,經過多路徑傳遞後,因為網路狀況及路由器分配之傳遞路線不同,先送出之封包不一定會先被收到 • 每個經拆解後的封包皆有他自己的編號,接收端可依此編號將封包重組回原始資料 • 表頭(Header)即記載這些額外資訊 資料Part5 資料Part4 拆 出 資 料 封包重組 資料Part1 資料Part2 資料Part5 資料Part3 資料Part4

  15. 封包與生活中物件做比較 • 如果把封包比喻成信件,它們之間是有一些類似的性質 • 信封就相當於封包的控制訊息內容包含收件人與寄件人的地址、郵遞區號及信件類型(平信、限時及掛號) • 信封內的文字部分(郵差看不到的部分)相當於使用者資料 • 兩者較不同的地方是信件是在郵差在路上騎機車幫我們遞送信件,封包是在網路上傳輸的 2-15

  16. 封包與生活中物件做比較 (續) • 因為一些傳輸效率上的因素,封包的傳遞過程是將信件分裝成一封一封小的信件,使用相同的信封寄往目的地 • 如果從安全性的角度來看封包與信件最大的不同點在於信件內容洩露的部分,如果今天信件被拆封偷看,收信人可從彌封部分看出個端倪。但封包資訊是相當容易被複製與修改的,目地端收到此封包是很難確保封包內容沒有被惡意者所偷窺與修改過 2-16

  17. 了解封包進階思考 • 並非所有的通訊協定都有相同的欄位資料,由於採用不同的通訊協定(TCP與UDP) ,網路封包的結構都有些許的差異,但了解基礎封裝方式即可推理各種不同的通訊協定 • 在實務上想要進行網路封包分析的原因有很多,故首要先了解什麼是封包、定義及其運作方式後,再搭配合適的網路封包擷取程式來解決實務上所遇的問題

  18. Module 2-2:封包結構與通訊協定(*) 2-18

  19. 網路OSI七層常見通訊協定類型 應用層 • 目前網路使用相當多不同類型的通訊協定,下圖列舉出在OSI協定七層中常見的通訊協定 • 網路上有許多不安全的通訊協定,且大多採用明碼方式傳送,經常造成資訊外洩,如HTTP、TELNET及SMTP等,故必要時須顧慮到資訊安全的議題 ■HTTP ■SMTP ■FTP ■Telnet 傳輸層 ■TCP ■UDP 網路層 ■IP ■ARP ■SLIP ■PPP 實體層 2-19

  20. 封包結構與傳輸過程 封包封裝 Socket NetBIOS TCP/IP四層 常見通訊協定 Application SMTP,TELNET,FTP User Data App Header User Data TCP TCP/UDP TCP Header Application Data IP ARP,RARP ,ICMP TCPSegment IPHeader TCP Header Application Data IP Segment DeviceDriver Ethernet,X25,PPP Frame Header IPHeader TCP Header Application Data Frame Trailer Frame 2-20

  21. IP表頭 Version(4 Bits) IHL(4 Bits) Total Length(16 Bits) Type of Service(8Bits) 0 32 Identification(16 Bits) Flags(3 Bits) Fragment Offset(13 Bits) 64 Time to Live(8 Bits) Protocal(8Bits) Header Checksum(16 Bits) 96 Source Address(32 Bits) 128 Destination Address(32 Bits) 160 Options(長度不定) Padding(長度不定) Type Of Service(8 Bits) Precedence(3 Bits) Delay(1 Bit) Throughout(1Bit) Reliability(1 Bit) Cost(1 Bit) Reserved(1Bit) = Flags(3 Bits) Reserved(1 Bit) Don’t Fragment(1 Bit) More Fragment(1 Bit) = 2-21

  22. 封包header實例 2-22

  23. 封包擷取的原理 2-23

  24. 封包擷取的原理 (續) • 為了監聽到其他使用者的封包,監聽者會將網路卡修改為混亂模式(Promiscuous),混亂模式不會對目標MAC位置做檢查的動作,而是將所收到的所有封包做接收的動作 • 藉由混亂模式就可以在HUB的區域網路環境中或無線網路的環境中擷取其他人的封包訊息 2-24

  25. Module 2-3:封包擷取工具介紹(*)

  26. 封包擷取工具比較 • 商業軟體 • 優:有廠商維護,支援性較佳 • 缺:成本較高 • 例: NetResident與EtherDetect • 免費軟體 • 優:成本較低 • 缺:功能與使用說明較為簡略 • 例: Wireshark與WinDump

  27. 封包擷取工具 - WinDump • 一種開放原始碼的網路軟體工具,為Windows版的 tcpdump • 可以分析封包的流向,並且對於封包的內容也可以進行"監聽" • WinDump運算式是一種規則運算式,利用一些條件來進行訊息的過濾,當訊息滿足運算式的條件,則會將其資訊捕獲。如果沒有給出任何條件,則網路上所有的資訊包將會被擷獲 • 例:WinDump -i interface -c 10 -n port 80 -w filename

  28. 封包擷取工具 - Wireshark • 開放原始碼軟體 • 起源於1997年,Wireshark的前身即為Ethereal,因為商標問題而改名成Wireshark • 支援通訊協定多且完整。使用圖形化的介面讓操作者容易上手,過濾條件切割細密,讓使用者可於乙太網路撈取且經數據過濾分析後的數據流 • 可由此軟體能夠擷取網路封包,並盡可能顯示出最為詳細的網路封包資料,提供各方應用

  29. 網路存取函式庫 - WinPcap • WinPcap是著名Unix libpcap的Windows版本API • Pcap是用來擷取封包的應用程式介面 (Application Programming Interface, API) • 免費直接網路存取函式庫 • 許多網路應用軟體運行,均須安裝此套函式庫,如Wireshark、WinDump、Nmap及Snort

  30. WinDump與Winpcab示意圖 • 透過WinDump及Winpcap工具擷取並分析封包後,再將資料蒐集至電腦設備中

  31. Module 2-4 :封包擷取的實務(**)

  32. Linux kernel packet processing

  33. 說明 • 架設實作(一),請將介紹如何安裝與使用WinDump。依實驗拓樸,請使用WireDump主機做安裝及測試 • 架設實作(二),請利用Wireshark軟體對FTP進行封包擷取。依實驗拓樸,請使用Wireshark主機做安裝及測試 • 架設實作(三),請利用Wireshark軟體對Outlook Express進行封包擷取。依實驗拓樸,請使用Wireshark主機做安裝及測試 2-34

  34. 架設實作(一) WinDump實作-SSH連線觀察

  35. 封包擷取工具 - WinDump 版本 3.9.5 支援作業平台 Windows 95/98/NT/2000/XP/2003 其他需求 安裝WinPcap 3.1以上版本 下載位址 http://www.winpcap.org/windump/install/bin/windump_3_9_5/WinDump.exe

  36. 其他需求工具 - WinPcap • 版本 • 4.0.2 stable • 支援作業平台 • Windows NT4/2000Windows XP/2003/Vista (x86 and x64)Windows Server 2008 (x86 and x64) • 下載位址 • http://www.winpcap.org/install/bin/WinPcap_4_0_2.exe

  37. WinPcap安裝步驟 WinPcap下載完成後,即可進行安裝 安裝畫面如下,點選Next按鈕繼續下一步

  38. WinDump與WinPcap測試 請將下載的WinDump.exe檔案存放至C:\Windows\system32\的目錄之下 測試WinDump及WinPcap是否可運作 點選開始->程式集->附屬應用程式->命令提示字元->輸入「windump 」按下Enter即會出現「 windump: listening on \Device\NPF_GenericDialupAdapter」的訊息,代表WinDump及WinPcap安裝成功且可運作 停止監聽按「Ctrl + C」,將顯示擷取封包的數量

  39. WinDump相關參數列表 2-40

  40. WinDump簡易使用操作說明 • 語法:windump 參數 • 查看目前系統可使用的網卡介面 • windump -D • 透過查看網卡介面,以利後續監聽之用

  41. WinDump簡易使用操作說明 (續) WinDump-i 網卡介面代號 -c 擷取封包數量 port 通訊埠 例:WinDump-i2-c10port 80

  42. WinDump簡易使用操作說明 (續) • 因於命令提示字元視窗內所顯示的資訊不易閱讀,可透過下列指令將其所擷取的資訊導向至檔案 • Windump -i 網卡介面代號 > 檔名 • windump -i 2 -c 10 -w message port 80 • windump -r message > message.txt • windump -i 2 -c 10 port 80 > message.txt

  43. WinDump簡易使用操作說明 (續) 11:23:38.326205:此為封包被擷取的時間,『HH:MM:SS.fraction』的單位 IP:透過的通訊協定是IP winser .1099 > w1.www.vip.tw1.yahoo.com.tw.80: 代表的是傳送端是winser傳送的通訊埠為1099大於(>)的符號指的是封包的傳輸方向,w1.www.vip.tw1.yahoo.com.tw為接收端,80為接收埠 P(PUSH)為資料傳輸標誌,且傳輸的資料為整體資料的1~699 byte,所以這個封包帶有698 bytes的資料量;ack 1 win 65535:ACK與Window size的相關資料

  44. 以Testbed建立一實驗,相關拓樸及設定如下圖 實驗環境介紹 SSHClient OS:WINXP-SP3-CH-pc3000 IP:10.1.1.3 安裝軟體:putty IP2 SSHServer OS:WINXP-SP3-CH-pc3000 IP:10.1.2.3 安裝軟體:sshd IP1 WireDump OS:WINXP-SP3-CH-pc3000 IP1:10.1.1.2 IP2:10.1.2.2 安裝軟體:WinDump 2-45

  45. 實驗拓樸on Testbed@TWISC- 建立完成的實驗拓樸 2-46

  46. SSH連線觀察 • 利用Putty連線到SSHServer,從中觀察到三向交握建立連線的動作 從SSHClient端利用putty連線到 SSHServer(10.1.2.3)的sshd服務 2-47

  47. SSH連線觀察 (續) • SSH在連線之前會利用三向交握的方式建立連線 • 利用WinDump觀察SSH連線動作 • 指令:WinDump.exe -N -S -i 4 port 22 三向交握示意圖 Server <- Client SYN 你想連線 Server -> Client SYN, ACK 可以,我接受 Server <- Client ACK 謝謝 三向交握的三個封包 2-48

  48. 架設實作(二) FTP擷取密碼案例

  49. 實驗環境介紹 • 以Testbed建立一實驗,相關拓樸及設定如下圖 FTPClient OS:WINXP-SP3-pc3000 IP:10.1.1.2 安裝軟體:FileZilla FTPServer OS:WINXP-SP3-pc3000 IP:10.1.2.3 安裝軟體:RaidenFTPD IP2 IP1 WireShark OS:WINXP-SP3-pc3000 IP1:10.1.1.3 IP2:10.1.2.2 安裝軟體:Wireshark

More Related