iOS系統設備網絡抓包工具介紹:越獄和不越獄的辦法

對終端進行抓包是客戶端測試中的一種重要手段。本文主要介紹了ios設備(iphone、ipad和ipodtouch)的幾種經常使用的抓包方法。ios

 

  1、準備條件正則表達式

   須要進行抓包的設備必須通過root,俗稱越獄,主要利用redsn0w和各類iOSFirmwares進行,如越獄不用更換固件版本,只需使用 redsn0w安裝Cydia便可,網上有詳細教程,此處省略。安裝完畢,在3G或WiFi環境下啓動Cydia,確認身份爲「開發者」,以下圖。網絡

  經過Cydia源,用戶能夠下載和安裝比appstore更高權限的軟件,可是在Cydia源中下載程序時,若是ios設備鎖頻待機就會中斷下載。咱們能夠在「設置-通用-自動鎖定」中把時間設置爲「永不」來防止待機。此外若是有同窗發如今簡體中文環境下使用Cydia搜索會閃退,請不要驚慌,參見附錄便可解決該問題。app

  Root後的設備,如不及時修改密碼,容易被他人破壞你的系統,所以做爲抓包的準備條件之一,請修改root密碼,初始密碼爲alpine,可經過SSH鏈接訪問或者直接在ios設備上的MobileTerminal上進行密碼修改。ssh

  2、抓包方式iphone

  方法1:SSH鏈接訪問ios設備抓包(經過USB)--強烈推薦socket

  【準備工做】tcp

  ios設備上安裝tcpdump工具

  PC上安裝iPhoneTunnel(集成終端工具putty功能,附近中爲免安裝版本)測試

  【操做步驟】

  1.用USB線纜鏈接手機與PC,確保手機鏈接正確,啓動iPhoneTunnel,綠燈表示TunnelStatus正常,此時點擊LaunchTerminal按鈕便可SSH進入手機,以下圖;

  2.Putty出現一個提示窗口,若是你不是常用SSH,請直接點擊「否」便可,以下圖;

  3.接着PuTTY會以root用戶身份嘗試登陸設備,並輸入root密碼;

  4.使用tcpdump進行抓包(參見附錄),以下圖。

  【方法點評】

  經過USB方式直接SSH進入設備,不管設備在WiFi仍是2G/3G下,均可以進行抓包,並且使用簡單,方法無侷限性,值得采用。

  方法2:SSH鏈接訪問ios設備抓包(經過WiFi)

  【準備工做】

  ios設備上安裝tcpdump(參見附錄)

  PC上安裝putty(附近中爲免安裝版本)

  ios設備鏈接WiFi網絡,且與PC處於同一個網絡中,如無WiFi網絡,可以使用PC做爲熱點虛擬一個WiFi網絡供ios設備鏈接

  【操做步驟】

  1.在ios設備上查看ip地址(設置Wi-Fi中,點擊已鏈接WiFi右側的小箭頭可看到);

  2.點擊putty,輸入設備的ip地址,並選擇鏈接類型爲SSH,點擊打開,以下圖;

  3.如下操做同方法1的2-4步。

  【方法點評】

  PuTTY是經過WiFi方式SSH進入到手機的,必須知道手機的IP地址,若是手機沒有WiFi就不能使用這種方法,所以該方法有必定的侷限性。

  方法3:直接在終端上操做進行抓包

  【準備工做】

  ios設備上安裝MobileTerminal、tcpdump(參見附錄)

  【操做步驟】

  1.點擊設備桌面「Teminal」圖標;

  2.切換至root用戶登陸;

  3.使用tcpdump進行抓包(參見附錄),以下圖。

  【方法點評】

  不受網絡條件制約,但因爲是在終端上操做抓包,對ios設備來說,MobileTerminal切至後臺就再也不工做,所以該抓包方法可行性較低,儘管如此,MobileTerminal對終端測試人員來講依然是一款很實用的工具。

 3、導出及其它

  Pcap文件生成後可經過91手機助手(IOS版)將文件下載至PC,而後經過Wireshark或Ethereal打開文件,分析報文。

 

  4、附錄

1.中文環境下Cydia搜索閃退問題解決方法

首先把系統語言改成英文,以後進入Cydia,添加第一中文源(

http://apt.178.com), 添加源的方法以下:進入Cydia,點擊Manage,而後點擊Source,進入後點擊右上角的Edit,再點擊左上角的Add,輸入源地址,點擊添 加,出現警告的話,點仍然添加。等待列表刷新完成便可,返回Cydia後在Manage>第一中文源下查找ios5Cydia中文崩潰解決補丁安裝 便可,以下圖。再次將系統切換至簡體中文後可正常使用Cydia搜索功能。

 

 

  2.OpenSSH安裝

   OpenSSH提供了服務端後臺程序和客戶端工具,用來加密遠程控件和文件傳輸過程的中的數據。安裝完畢後,用戶纔可使用PC經過遠程訪問來控制終 端。啓動Cydia後點右下角的「搜索」,便可找到OpenSSH。進入安裝頁面,點擊右上角的Install完成安裝,以下圖。

 

 

  3. MobileTerminal安裝

   MobileTerminal是一款在iOS設備上使用的終端管理軟件,採用相似於命令行的非圖形界接口管理iOS設備的進程,運行並不依賴於 Openssh或者Telnet,是獨立運行於系統上的app程序。進入Cydia後在Manage>第一中文源下查找能與系統適配的 MobileTerminal並進行安裝,以下圖。

 

 

 

  4.tcpdump安裝

  經過91手機助手(IOS版)可在終端上安裝tcpdump,下載地址:http://apt.saurik.com/debs/如不肯定哪個適用本身手機,可對附件中的tcp安裝包進行所有安裝。

  若是在安裝完畢後執行tcpdump提示libpcap的錯誤,需安裝libpcap,如不肯定哪個適用本身手機,可對附件中的lib安裝包進行所有安裝。

  5.ios設備上tcpdump的使用

  對於一些ios設備如iphone及ipad,既能夠接入WiFi,也能夠接入2G/3G,在使用tcpdump命令時請注意網口類型,WiFi接入時網卡爲en0,而2G/3G接入時網卡爲pdp_ip0,而網卡不指定時默認爲pdp_ip0。舉例來講,

  WiFi下抓包tcpdump -i en0 -X -s0 -wdata.pcap

  2G/3G下抓包tcpdump -i pdp_ip0 -X -s0 -w data.pcap或tcpdump-X -s0 -w data.pcap

  5、Q&A

  (Ⅰ)若是SSH鏈接ios設備時提示「ServerUnexpectedly Closed Network Connection」,該怎麼辦?

  A:可經過從新安裝OpenSSH來嘗試解決問題。

 

  (Ⅱ)若是在安裝了tcp安裝包和lib安裝包後執行tcpdump仍提示失敗,該怎麼辦?

  A:有多是缺乏libcrypto.0.9.8.dylib文件形成,可從其它ios設備usr/lib路徑下copy至本機再進行嘗試。

  在進行iOS開發過程當中,常常會遇到各類各樣的網絡訪問問題,之前苦於沒有抓包工具,不少網絡問題解決起來很痛苦。如今終於好了,本文提供兩種方式進行網絡抓包:

 

  1. 網絡共享 + 可視化抓包工具

  基本原理

  原理比較簡單,ios設備經過代理方式共享鏈接mac電腦的無線網卡,使用抓包工具抓包,而後進行分析(咱們推薦使用Wireshark,在MAC系統上也可使用Paros工具)。

  如今以MAC系統下Paros工具爲例,詳細描述下抓包過程:

  操做步驟:

  1) 首先將MAC電腦的以太網共享給airport,使iOS設備可以經過wifi鏈接

  打開系統偏好設置,找到共享,選擇internet共享,在右側「經過如下方式將」選擇以太網,「鏈接共享給其餘電腦」選擇airPort。

  2) 打開paros ,設置paros的本地代理paros下載地址(http://www.parosproxy.org/)

   在paros的tools-》options中選擇local proxy,在Address 中輸入AirPort的ip地址。輸入端口8080。打開系統偏好設置,找到網絡,選擇左側的AirPort,能夠看到AirPort的地址爲 169.254.69.225,將該地址填入到上面提到的Address欄中。

  3) 使用ios設備鏈接mac共享出來的網絡:在iOS設備中,選擇設置-》通用-》網絡-》wifi,找到共享的網絡,加入。而後在該網絡的纖細內容中的http代理部分,選擇手動,輸入paros中設置的代理ip和端口。

  4) 下面就可使用paros來監控iOS設備的網絡,咱們打開Safiri,在paros中便可察看到網絡的全部請求。

 

2. tcpdump命令 + 可視化抓包工具

  基本原理

  tcpdump命令是一個網絡的抓包的命令行,他能指定具體的設備,也能制定具體的五元組進行捕獲鏈路上的數據包。它能夠再終端上打印出來也能夠將捕獲到得數據寫入到一個文件,文件的格式是二進制形式,因此,我在打開該文件的時候才用的工具是UltraEdit。

固然也能夠保存成Wireshark可以識別的pcap格式,而後使用Wireshark進行查看。

  操做步驟

  1) 採用ssh登錄iphone手機,使用top命令獲取:

  具體步驟以下:

  a) 獲取設備IP地址(wifi地址):

  b) 在PC上打開終端,輸入ssh root@IP地址:

  輸入密碼:alpine (root用戶的默認密碼)

  2) 經過「tcpdump -X -s0 -w /data.pcap」命令將tcp數據包保存到iOS設備的根目錄下。

  3) 經過91助手等工具取出pcap文件,在Windows下使用雙擊使用Wireshark打開查看。

  固然也能夠不輸出到文件,tcpdump的命令格式和參數說明:

  tcpdump [ -adeflnNOpqStvx ] [ -c 數量 ] [ -F 文件名 ]

  [ -i 網絡接口 ] [ -r 文件名] [ -s snaplen ]

  [ -T 類型 ] [ -w 文件名 ] [表達式 ]

  選型介紹:

  -a    將網絡地址和廣播地址轉變成名字;

  -d    將匹配信息包的代碼以人們可以理解的彙編格式給出;

  -dd   將匹配信息包的代碼以c語言程序段的格式給出;

  -ddd   將匹配信息包的代碼以十進制的形式給出;

  -e    將捕獲的包數顯示出來

  -f    將外部的Internet地址以數字的形式打印出來;

  -l    使標準輸出變爲緩衝行形式;

  -n    不把網絡地址轉換成名字;

  -t    在輸出的每一行不打印時間戳;

  -v    輸出一個稍微詳細的信息,例如在ip包中能夠包括ttl和服務類型的信息;

  -vv   輸出詳細的報文信息;

  -c    在收到指定的包的數目後,tcpdump就會中止;

  -F    從指定的文件中讀取表達式,忽略其它的表達式;

  -i    指定監聽的網絡接口;

  -r    從指定的文件中讀取包(這些包通常經過-w選項產生);

  -w   直接將包寫入文件中,並不分析和打印出來;

  -T    將監聽到的包直接解釋爲指定的類型的報文,常見的類型有rpc (遠程過程調用)和snmp(簡單網絡管理協議;)

  在使用該命令的時候,我主要使用的主要選項是: -i [接口名] -w [文件名] -v -vv -c -X -e

  例如:

  我在從eth0捕獲100個數據包的時候,並將數據寫入到capture.cap文件中,命令格式爲:

  tcpdump -i eth0 -w capture.cap -v -vv -c 100 -X -e

  抓取一個一個ip段之間的數據包:

  tcpdump –s 0 –w socket host 10.1.3.9 and host 10.1.3.84

  若是從eth0且通訊協議端口爲22,目標IP爲192.168.1.100獲取數據:

  tcpdump -i eth0 port 22 and src host 192.168.1.100

  此外還有其餘的一些關鍵詞:host,(主機) , net( 網關), port(端口) , src(源IP) , dst(目的IP), 正則表達式:and , or。

  未越獄ios設備的抓包方法

  2014-04-24 22:33 181人閱讀 評論(0) 收藏 舉報

  Remote Virtual Interface

  在iOS 5之後增長了RVI(Remote Virtual Interface),它讓咱們使用OS X來抓取ios device上數據包。

  基本的方法就是把設備經過USB連上mac上。而後爲這臺設備安裝RVI,這個虛擬的在Mac上的網卡,就表明這臺ios設備的使用網卡。而後在mac上跑抓包的工具,定位到這個虛擬的網卡上,來抓包。

  (1)安裝RVI,須要使用rvictl工具,如下步驟在mac的終端中操做:

  $ # First get the current list of interfaces.

  $ ifconfig -l

  lo0 gif0 stf0 en0 en1 p2p0 fw0 ppp0 utun0

  $ # Then run the tool with the UDID of the device.

  $ rvictl -s 74bd53c647548234ddcef0ee3abee616005051ed

  Starting device 74bd53c647548234ddcef0ee3abee616005051ed [SUCCEEDED]

  $ # Get the list of interfaces again, and you can see the new virtual

  $ # network interface, rvi0, added by the previous command.

  $ ifconfig -l

  lo0 gif0 stf0 en0 en1 p2p0 fw0 ppp0 utun0 rvi0

  (2)安裝成功後,此時其實能夠用任何抓包工具來抓取。包括wireshark等。由於這時就會看到一個rvi0的網卡。不過今天咱們介紹的是經過tcpdump來搞。

  在終端中輸入以下命令:

  sudo tcpdump -i rvi0 -n -s 0 -w dump.pcap tcp

  解釋一下上面重要參數的含義:

  -i rvi0 選擇須要抓取的接口爲rvi0(遠程虛擬接口)

  -s 0 抓取所有數據包

  -w dump.pcap 設置保存的文件名稱

cp 只抓取tcp包

  當tcpdump運行以後,你能夠在iOS設備上開始瀏覽你想抓取的App,期間產生的數據包均會保存到dump.pcap文件中,當想結束抓取時直接終止tcpdump便可。而後在mac中找到dump.pcap文件。用wireshark打開就ok。

  (3)去掉RVI這個虛擬網卡,使用下面的命令:

  $ rvictl -x 74bd53c647548234ddcef0ee3abee616005051ed

  Stopping device 74bd53c647548234ddcef0ee3abee616005051ed [SUCCEEDED]

  整個流程就是這樣的。本身動手操做一下吧。

相關文章
相關標籤/搜索