Remote moniter sniffer tool of ZigBee network Speaker : Kai-Jia Chang Date : 2010/10/25
研究與實作目標: 當某個在遠端的ZigBee網路如果出錯或是想要監控當地的網路狀況,則必須要帶著電腦以及封包擷取裝置到現場才可以完成。但網路問題並不一定立即可以排除。 因此若有一個工具或裝置能監控遠端ZigBee網路封包,則可以降低在現場排除問題的效率,而目前並沒有工具可以做到” 圖形介面監控遠端ZigBee網路”。
問題與困難: Q1:Emebedded linux安裝完整Wireshark的困難. Q2:遠端在PC上的GUI呈現方式. Q3:Dongle的driver是否可以運行在emebedded system. Q4:在embedded linux上利用pipe的程式將dongle包裝為虛擬網卡,使得wireshark 可以讀取dongle來擷取封包.
解決的方式 A1: 在Embedded linux上安裝Debin system使Wireshark可以在上面運行。[註一] 利用cross-compile 讓Wireshark可以運行。 [註二] 安裝Tshark自動儲存封包後再讓使用者在遠端存取。 A2: 在embedded system上安裝Tomcat在撰寫JSP語法來讓遠端PC可以利用網頁呈現。 在embedded system上安裝X-windows,並利用遠端連線軟體來監控。 A3:Freescale Dongle的driver目前是包在其套裝軟體BeeKit當中在Windows下安裝後才能運行,而還未嘗試是否可以運行在emebedded system. A4:Marama以pyton所撰寫的程式僅有for windows,如何將他運行在embedded system還沒有研究。
目前解決進度 Q1:Emebedded linux安裝完整Wireshark的困難. A1-1:在Embedded linux上安裝Debin system使Wireshark可以在上面運行。[ 註三] 在現有的Embedded linux 架構上,利用fdisk切割 300MB的空間 觀察/dev/sda3使用率為0%的分割磁區欲將它取消硬碟分割 先將/dev/sda3 umont後,fdisk 新增磁區失敗但無法順利使用 但若從/dev/sda 去編輯新磁區,則須將/dev/sda1,/dev/sda2,/dev/sda3,/dev/sda4原有的資料備份後才能從新劃分磁區 A1-2:使用debootstrap安裝Debian[註四]
Reference [註一] http://blog.richliu.com/2009/12/25/829/#more-829 [註二] http://lists.denx.de/pipermail/eldk/2009-February/000607.html [註三] http://www.debian.org/releases/sarge/s390/apcs04.html.zh_TW [註四] http://moto.debian.org.tw/viewtopic.php?t=474&highlight=debootstrap T-shark embedded version http://seclists.org/wireshark/2010/Aug/37 How to install Debian linux on an Embedded system http://www.thebitsource.com/programming-software-development/how-to-install-debian-linux-on-an-embedded-system/ Source forge - wireshark ZigBee utility http://sourceforge.net/projects/wiresharkzigbee/
MITM and Replay Attack in Zigbee Networks Speaker : Kai-Jia Chang Date : 2010/10/25
目前進度 以觀察最近宿舍皆有ZigBee控制宿舍大燈 已接洽大學部宿舍學弟妹,欲將筆記型電腦安裝XP後及相關分析軟體後,利用東海借來的CC2430訊號分析儀來擷取分析封包
The ZigBee Sniffer Dongle adapt with the wireshark Speaker : Kai-Jia Chang Date : 2010/10/25
目前進度 The Texas Instruments Packet Sniffer is an indispensable tool when developing RF based applications
USB Firmware Library Structure Texas Instruments LPRF provides a USB Firmware Library which contains all the basic USB firmware needed for application development. The firmware library handles the interface to the USB chip
The ZigBee Sniffer Dongle adapt with the wireshark Speaker : Kai-Jia Chang Date : 2010/10/25
Motivation The ZigBee USB dongle is a hardware device to capture IEEE802.15.4 packet. Wireshark is a strong software protocol analysis and it’s free! Q51、BzWorks WiSens Packet sniffer Z101 Microship ZENA3.0 Network Analyzer Atmel AVRRZ541 AVR Z-Link 2.4 GHz Packet Sniffer Kit
Problem definition User Interface Protocol Analyzer PCAP Device User /GUI Interface Display filters Protocol Interpreter Capture Core WinPcap Network Card Build-in Dissector Plug-in Dissector Wiretap Pacp File Wireshark的是一套在GNU GPL通用許可證的保障範圍底下,使用者可以以免費的代價取得這套軟體]與其程式碼,並擁有針對其原始碼修改及客製化的權利以及分享修改製作後成果的義務。因此,Wireshark是目前全世界最廣泛的網路封包分析軟體之一。 Wireshark支援了多種作業系統,在Windows、 UNIX、MAC…下都有相對應的版本。
Problem definition User Interface Protocol Analyzer PCAP Device Interface User/GUI Interface WinPcap Network Card Capture Core Protocol Interpreter Display filters Build-in Dissector Plug-in Dissector Wireshark的是一套在GNU GPL通用許可證的保障範圍底下,使用者可以以免費的代價取得這套軟體]與其程式碼,並擁有針對其原始碼修改及客製化的權利以及分享修改製作後成果的義務。因此,Wireshark是目前全世界最廣泛的網路封包分析軟體之一。 Wireshark支援了多種作業系統,在Windows、 UNIX、MAC…下都有相對應的版本。 Wiretap Pacp File
Problem definition Wireshark Virtual Interface ZigBee USB Dongle 網路協定分析自由軟體, 可分析IEEE802.15.4 虛擬網路卡設備裝置, 使wireshark可以偵測到Dongle Wireshark的是一套在GNU GPL通用許可證的保障範圍底下,使用者可以以免費的代價取得這套軟體]與其程式碼,並擁有針對其原始碼修改及客製化的權利以及分享修改製作後成果的義務。因此,Wireshark是目前全世界最廣泛的網路封包分析軟體之一。 Wireshark支援了多種作業系統,在Windows、 UNIX、MAC…下都有相對應的版本。 用於擷取IEEE802.15.4封包
Feasibility Study Wireshark TI CC2531 Freescale 1322x 華楷 Ethereal Packet Sniffing TI CC2531 CC2531 USB Hardware User's Guide CC2531EMK Quick Start Guide CC USB Software Examples Freescale 1322x 華楷
Feasibility Study Wireshark Freescale 1322x & USB Python Ethereal Packet Sniffing Freescale 1322x & USB Documenation Python Python學習手冊第三版 pySerial Python2.7
USB Firmware Library Structure
USB 虛擬管線 大管線:USB匯流排,可高達127個小管線 小管線:裝置,內有微管線(4bits位址及1bit方向) 微管線:端點
USB transmission type 控制傳輸(control) 2~3個階段 當裝置第一次連接到PC 雙向、命令及狀態的通訊 3種控制傳輸型態 控制讀取、控制寫入、無資料控制 2~3個階段 設定階段、資料階段(無資料控制無此階段)、狀態階段 當裝置第一次連接到PC 交換訊息、設定裝置位址、讀取裝置的描述元等
USB transmission type 中斷傳輸(Interrupt) 單向傳輸,從裝置到PC,作IN傳送模式(USB 1.1定為雙向傳輸) 非一般的中斷 週期性地方式輸詢(有限的延遲時間) 全速:1ms到255ms 低速:10ms到255ms 應用於電腦輸入裝置,Ex:滑鼠、鍵盤
USB transmission type 批次傳輸(Bulk) 可單向或雙向 可準備輸傳,但沒有傳輸速度的限制 當有傳送失敗,就重傳一次 沒有對於延遲、連續性、頻寬和速度的保證
USB transmission type 同步傳輸(Isochronous) 可單向或雙向 有一定傳輸速度的限制,但可容許錯誤發生 應用於音訊、視訊,Ex:USB麥克風、喇叭
USB Frame 封包 同步列(Synchronization Sequence, SYNC)欄 1至3074Bytes 第1個bit是封包辨識元(Packet ID, PID) 最後1個是封包結束EOP(End of Packet) 同步列(Synchronization Sequence, SYNC)欄 8-bits, 用來產生同步的作用, 其值為00000001 封包辨識元(Packet Identifier, PID)欄 由一個4bits辨識元欄以及一個互為補數的檢查欄
USB Data Frame 位址(Address, ADDR)欄 端點(Endpoint,ENDP)欄 7-bits,新的週邊裝置剛連接至USB介面時,其擁有預設的位址0,爾後再賦予新的位址 端點(Endpoint,ENDP)欄 4-bits,全速與高速裝置則可擁有16個輸入端點(IN)與16個輸出端點(OUT),共32個端點 循環多餘檢核(Cycle Redundancy Checks,CRC)欄 CRC16(16 bits), CRC5(5 bits)
USB Data Frame 資料(Data)欄 訊框號碼(Frame Number)欄 閒置(Idle)欄 USB 1.X:0到1023 訊框號碼(Frame Number)欄 僅存於SOF封包內,11-bits 閒置(Idle)欄 存在每一個封包的結尾處
USB Packet
認識HEX
Q51
Q51 http://10.21.11.38/index.html
進度報告 目前進度: 用Python2.7版,配合pySerial API Library進行程式的撰寫。 將硬體裝置USB Dongle接收USB Dongle 接收二位元的1,0資料。 用binascii API、serial API、struct API…等API Library。 利用PyInstaller1.4版 軟體將已撰寫完成的程式進行編譯,但發生問題,正在解決。 時間分配: Python程式撰寫 訊號轉換判讀:2周 導入Wireshark及整合:4周 除錯及測試:2~4周
進度報告 甘梯圖 Sniffer 預計進度 實際執行進度 A. Study Python & USB Dongle Document 1 2 3 4 5 Sniffer A. Study Python & USB Dongle Document B. Capt Sniffer packet C. Analysis packet with Wireshark 預計進度 實際執行進度