青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

Wireshark抓包iOS入門教程

轉載自:http://mrpeak.cn/blog/wireshark/

網絡抓包是個基礎技能,對于網絡協議的掌握有一定的要求。iOS上實現網絡抓包可以用Charles(針對http和https),tcpdump(快速分析網絡包),和Wireshare。之前寫過一篇介紹tcpdump抓包的入門文章,和tcpdump相比,Wireshark提供豐富的GUI交互,而且能分析所有的網絡協議,關鍵還是免費的,掌握好Wireshark就能應付絕大部分需要分析網絡協議的場景了。

安裝初識

Wireshark提供Mac版本,可以從官網下載安裝,到這篇博客為止最新版本應該是2.2.1。安裝好之后打開的第一個界面如下:

Wireshark在第一個界面就把當前系統所包含的網卡列出來了,直接點擊任何一項就可以開始監聽通過該網卡的所有網絡流量。

當我們把iPhone通過usb連接macbook時,Wireshark并不能直接監聽通過iPhone的網絡流量,需要通過一個系統程序在我們的Mac系統上,建立一個映射到iPhone的虛擬網卡,在terminal中輸入如下命令即可:

格式是rvictl -s [設備udid],設備的udid可以通過itunes或者itools獲取,執行命令之后Wireshark能立即識別新增加的rvi0網卡,也就是上圖中高亮的部分,雙擊rvi0這一項,Wireshare即進入如下界面開始監聽iPhone設備上的所有流量。

此時,啟動iPhone上的任意App,只要有網絡流量產生,對應的網絡包都會在Wireshark上述的列表中展示出來。

Wireshark的流量監控界面主要分為四塊,由上至下第一部分(標號為1)是工具欄,通過工具欄我們可以控制監控的行為,比如開始抓包,停止抓包,重新開始抓包,以及在包之間跳轉等等。工具欄的底部有個輸入框,可以讓我們手動輸入包的過濾條件,這部分對于熟練使用Wireshark抓包非常重要,后面會詳細的講解。

第二部分(標號為2)是歷史流量包列表展示界面,這里展示的是從抓包開始,所有通過我們iPhone設備的流量。列表界面不同的包有不同的顏色,Wireshark通過顏色來區分包的類型,對于特定場景快速識別目標流量非常有用,后面也會專門講解。

第三部分(標號為3)是單個包的詳細信息展示面板,我們在第二部分選中的網絡包在這一部分會將其結構以可閱讀的文本形式展示出來,要正確閱讀這一部分的信息需要對tcp/ip協議有一定的掌握。

第四部分(標號為4)是單個包的二進制流信息展示面板,這一部分展示的信息是包的原始數據,也是一個網絡包所包含內容的真實展現,我們在第三部分多選中的協議頭,都會在這一部分以同步高亮的形式標記出來。這一部分的展示是為了讓我們對包的真實內容做直觀的判斷,能具體到單個byte。

初步認識上述四塊主要面板之后,可以嘗試開始分析網絡包,在開始分析網絡包之前,先要對網絡包有個大致的概念。

網絡包結構

我們最初學習網絡協議的時候,無論是OSI七層模型,還是經典的TCP/IP五層結構,都是以下圖中的左邊部分的形式展示的。

這是一種經典的分層架構,確實也符合網絡協議設計上的思路,但卻不能表達網絡包真實的包含關系。上圖右邊部分是我所繪制的一個包結構示意圖。在我看來,這種洋蔥式的結構更符合網絡包的真實形態。Application是最內層的payload,除了Application這一層之外,其他層都是用自己這一層的協議header+所包含那一層的payload。可以用如下公式表示:

TCP Layer = TCP Header + Application Payload

IP Layer = IP Header + TCP Payload

我們分析每個網絡包的時候要能理解每一個包它所代表的抽象含義,再進一步將相關聯的包串聯起來,形成一次完整的網絡會話。

分析包結構

對于iOS程序員來說,我們絕大部分的流量分析都集中在HTTP或者基于TCP的socket長連接。從這一層面來說,和我們最貼近的三層是應用層(http),傳輸層(tcp or udp),網絡層(ip)。

對于應用層來說主要是http協議的學習,對于http request和response格式的閱讀,比如下圖表示的一個http request包:

Packet詳情面板以符合http協議的表述,將header中各個field清晰的羅列出來了,閱讀起來很方便。

傳輸層我們應用較多的是tcp,這一層的閱讀主要是tcp header的學習:

典型的tcp header一般長度為20個字節,將這20個字節逐一學習一遍就可以分析大部分的tcp流量了。

網絡層的分析主要是針對于IP Header,header結構如下:

這其中IP Header第十三個字節各個filed的理解,對于我們分析tcp流量的起始和結束尤其有用,典型的IPV4 Header也是20個字節,梳理一遍就可以分析IP包了。

所以對于包結構的分析關鍵在于三個知識點的學習:http header, tcp header, ip header,這么一看好像也沒多少東西 ;)

使用Filter過濾包

使用Wireshark和使用Charles最大的區別在于,Charles只捕獲HTTP流量,而Wireshark捕捉的是經過目標網卡所有的流量,流量包可以在幾秒內膨脹到難以閱讀的數量,所以此時我們需要使用Filter來做包的過濾,Filter規則定的越細,剔除掉的干擾信息就越多,分析起來就越快。

Wireshark的Filter分為兩種,一種為Capture Filter,另一種是Display Filter。

Capture Filter出現在初始界面,在網卡列表的上方有個輸入框,允許我們輸入capture filter,一旦輸入了特定的capture規則,Wireshark就只捕獲符合該規則的流量包了。

Display Filter出現在流量監控界面,在工具欄的下方有個輸入框,允許我們輸入display filter,display filter只是從界面上過濾掉不符合規則的包,Wireshark實際上還是監聽了這些包,一旦去掉display filter,所有的包又會出現在同一界面。

Capture Filter的規則和我們平常使用tcpdump的filter語法是一致的,比如為了只監控http的流量,我們可以先在初始化界面選中rvi0網卡,再在capture filter輸入框里輸入:

//只捕獲HTTP流量 port 80 or port 443 

回車之后Wireshark就開始監控我們iPhone上所有的http和https流量了 ,非常簡單,我們還可以使用其他的capture filter來捕獲特定的流量,比如想分析DNS解析過程,可以使用:

//只捕獲DNS流量 port 53 

比如只想捕獲和特定服務器相關的流量:

//只捕獲和特定主機的流量 host 171.10.191.10 

Display Filter的語法是由Wireshark自定義的,和Capture filter的語法不能混用。比如我們只想看某個主機的流量,可以使用如下Display Filter:

ip.addr==171.10.191.10 

如果只看http或者https的流量,可以用:

tcp.port == 80 || tcp.port == 443 

更多的語法規則可以查看Wireshark官方文檔,Wireshark實際上提供了便捷的UI操作幫助我們來書寫Display Filter,在Display Filter輸入框的最右邊有個Expression按鈕,點擊之后可以彈出如下界面:

Display Filter的語法本質上是個等是關系描述,我們可以在search當中輸入我們感興趣的協議比如http,再在展開的協議頭里選擇我們的條件比如http.host,最后設置Relation和Value就可以生成一個Display Filter條件了。

包顏色規則

Wireshark在大多數時候捕獲的包數量都遠超我們感興趣的數量,而且各個連接的包都混雜在一起,為了方便我們識別不同的連接會話,Wireshark默認使用一種著色規則幫助我們來進行包類型區分。

具體的規則可以通過菜單View->Coloring Rules…查看,默認規則如下:

這里有個小技巧,如上圖所示,我只將我感興趣的協議包上了色,集中在http,tcp,udp包,這樣分析起來更加直觀。比如根據上圖的規則,tcp三次握手中的Sync包是使用灰色標記的,這樣我就可以在下圖的包中迅速定位一次tcp連接的開始包位置:

當然,包的顏色也可以按照自己的視覺習慣進行定制,我個人習慣把Sync包和FIN包設置一個高亮的顏色,方便判斷一次HTTP會話的起始和結束。

流量跟蹤

Wireshark默認情況下將不同網絡連接的流量都混在一起展示,即使給不同協議的包上色之后,要單獨查看某個特定連接的流量依然不怎么方便,我們可以通過Wireshark提供的兩種方式來實現這個目標。

方式一:Follow Stream

當我們選中某個包之后,右鍵彈出的菜單里,有個選項允許我們將當前包所屬于的完整流量單獨列出來,如下圖:

Wireshark支持我們常見的四種Stream,TCP,UDP,HTTP,SSL。比如我們選中Follow TCP Stream之后可以得到如下的詳細分析輸出(樣本為監控iPhone手機的流量):

上圖中將iPhone和Server之間某次的連接流量完整的呈現出來,包括iPhone發送了多少個包,Server回了多少個包,以及iPhone上行和下行的流量,還提供流量編解碼選擇,文本搜索功能等。

方式二:Flow Graph

Flow Graph可以通過菜單Statistics->Flow Graph來生成,這樣我們可以得到另一種形式的流量呈現:

和Follow Stream不同的是我們獲取到的是完整的流量,從上圖中可以看出從10.136.66.127(我的iPhone手機IP地址)發出的流向多個服務器的網絡流量,包括DNS解析和SSL安全握手等。當然我們也可以在上圖中下方的操作區域做進一步的過濾,可以使用Display Filter做進一步的流量定位。

Follow Stream更適合分析針對某一個服務器地址的流量,而Flow Graph更適合分析某個App的整體網絡行為,包含從DNS解析開始到和多個服務器交互等。

其實Statistics菜單下還有更多的圖表分析模式,可以根據不同的分析目標來選擇,比如Statistics->HTTP->Requests可以得到如下按主機分門別類的HTTP請求分析圖,和收費的Charles的展示結果類似。

HTTPS包分析

介紹完使用方式再來實際分析下HTTPS的流量。下圖是我使用Wireshark在iPhone上抓包知乎App網絡請求的結果:

當我使用Follow TCP Stream之后,一次完整的HTTPS會話流量就被單獨過濾出來了,第一步先分析包列表界面。

通過高亮顏色找到會話的其實Sync包,繼而可以快速的定位到HTTP建立連接之初的tcp三次握手所產生的三個包:

Sync: iPhone發送Sync。

Sync+Ack: Server發送Sync+Ack。

Ack: iPhone Ack。

三次握手之后是ssl handshake,ssl handshake分為以下幾步:

Client Hello

這一個包是ssl握手的起始包,客戶端(我的iPhone)會攜帶當前會話所依賴的一些關鍵信息:使用的tls版本(當前為tls1.2),上次的Session ID(如果可以session重用,就可以避免當前這次的安全握手),客戶端所支持的加密算法套件(從下圖中可以看出可以從22個suites里面挑選)等。

Server Hello

Server Hello這個包帶上服務器這一端的一些信息,比如Server所選擇的tls版本,或者帶上可以重用的Session ID避免重新握手,在Client傳過來的Cipher Suites當中挑選一個Cipher Suite進行后續的安全通話等。

Server 下發Certificate

Server同時會下發自己的Certificate,如下圖所示:

從包列表界面可以看出,Certificate(大小為2407個bytes)這個包由于超過了1440個字節,被拆成了2個包,所以我們可以在包Info里面看到[TCP segment of a reassembled PDU],我們使用Wireshark抓包的時候經常會看到reassembled PDU,出現這種情況是因為包太大,超過了MSS,需要拆成兩個來發送。

接下來幾個包是Client和Server基于上面交換的信息協商最后使用的密鑰。

Server Key Exchange

Client Key Exchange

Change Cipher Spec

Send Application Data

各個包里面所包含的詳細內容分析涉及到非對稱加密算法的相關知識,這里就不展開了,使用Wireshark可以將整個HTTPS的握手過程非常清晰的展現出來,感興趣的同學可以閱讀這篇文章

當然大部分時候我們需要分析iPhone上HTTPS流量里的具體包內容,Wireshark雖然支持配置RSA私鑰,但我們沒辦法直接獲取iPhone設備上各個App所使用的私鑰,這種場景下我們一般使用MITM(Man In The Middle)中間人攻擊來破解HTTPS包內容,收費工具Charles可以通過代理的方式來實現此功能,免費版抓包工具mitmproxy同樣也可以,Charles的使用教程比較多了,后續我們會再寫一篇mitmproxy的教程介紹如何使用破解調試HTTPS的流量。

結束語

Wireshark就介紹到這里,現在在iPhone上抓包的方式有很多,有面向所有協議的tcpdump和Wireshark,也有針對HTTP的Charles和mitmproxy,無論使用哪個工具,前提都是我們需要對網絡協議有全面的認識,所以在學習使用這些工具的同時,要持續深入的學習網絡協議知識。

posted on 2017-03-02 15:54 楊粼波 閱讀(1359) 評論(0)  編輯 收藏 引用

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美一区二区三区日韩| 中文一区字幕| 久久综合电影| 久久只精品国产| 亚洲欧洲日韩综合二区| 日韩视频永久免费| 国产精品成人在线| 久久高清福利视频| 久久久无码精品亚洲日韩按摩| 亚洲国产精品嫩草影院| 91久久久久久国产精品| 欧美日本高清视频| 久久精品国产亚洲高清剧情介绍 | 亚洲色在线视频| 亚洲视频在线观看网站| 国内一区二区在线视频观看 | 久久免费视频在线| 亚洲乱码国产乱码精品精天堂| 一区二区三区日韩欧美精品| 国产一区日韩二区欧美三区| 欧美国产日韩精品| 国产精品扒开腿爽爽爽视频| 另类尿喷潮videofree| 亚洲国产女人aaa毛片在线| 蜜臀99久久精品久久久久久软件| 免费视频一区二区三区在线观看| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲欧美综合v| av成人老司机| 久久久久国产精品厨房| 亚洲无亚洲人成网站77777| 久久久久久久精| 亚洲欧美日韩网| 欧美成人午夜| 久久亚洲综合色| 国产精品入口66mio| 亚洲人体1000| 影音先锋欧美精品| 亚洲欧美区自拍先锋| 日韩网站免费观看| 久久久噜噜噜久久中文字幕色伊伊| 亚洲已满18点击进入久久| 久热国产精品视频| 久久久久国产成人精品亚洲午夜| 欧美日韩国内| 最新日韩在线| 亚洲国产经典视频| 久久成人精品| 久久精品理论片| 国产精品国产精品| 99爱精品视频| 亚洲视频你懂的| 欧美区一区二| 亚洲电影免费| 亚洲国产精品黑人久久久| 久久久久国产精品麻豆ai换脸| 欧美制服丝袜| 国产日韩欧美中文| 亚洲一区视频在线观看视频| 亚洲午夜激情免费视频| 欧美精品麻豆| 亚洲精品久久久蜜桃| 99在线精品视频在线观看| 欧美福利精品| 亚洲精品久久久久久一区二区| 亚洲欧洲日产国产综合网| 欧美大胆人体视频| 亚洲人成网站在线观看播放| 亚洲精品美女久久久久| 免费不卡欧美自拍视频| 欧美激情在线观看| 亚洲精品一区中文| 欧美理论大片| 亚洲午夜在线观看视频在线| 欧美一区二区三区免费视频| 国产一区av在线| 久久久久久网站| 亚洲黄色影院| 在线综合亚洲| 国产精品福利在线观看网址| 在线中文字幕一区| 久久国产精品色婷婷| 国内精品久久久久久久果冻传媒| 久久久久久久波多野高潮日日| 免费日韩成人| 一区电影在线观看| 国产欧美日韩精品丝袜高跟鞋| 久久成人精品电影| 亚洲精选在线| 欧美在线视频a| 亚洲国产毛片完整版| 欧美午夜一区二区福利视频| 欧美一区二区三区在线免费观看| 久久久精品五月天| 欧美大片在线观看一区| 亚洲视频一起| 国模私拍视频一区| 欧美日韩成人免费| 欧美在线观看网站| 亚洲精品免费在线| 久久久久高清| 亚洲午夜视频在线观看| 黄色小说综合网站| 欧美日韩小视频| 久久免费国产精品1| 一个色综合av| 亚洲国产天堂久久综合| 欧美在线视频观看| 一本色道久久综合亚洲精品不卡| 国产日本欧美一区二区三区| 欧美激情国产日韩| 久久九九国产精品怡红院| 一区二区三区久久久| 欧美大尺度在线观看| 欧美怡红院视频| 一区二区三区免费网站| 一区二区在线免费观看| 国产精品免费福利| 欧美精品日韩| 欧美h视频在线| 久久精品av麻豆的观看方式| 亚洲一区二区少妇| 日韩一级精品| 亚洲黄网站在线观看| 欧美成人精品不卡视频在线观看| 欧美一级久久| 亚洲欧美福利一区二区| 99av国产精品欲麻豆| 亚洲欧洲日产国产综合网| 黄色av一区| 狠狠v欧美v日韩v亚洲ⅴ| 国产精品免费福利| 国产精品美女久久| 国产精品成人一区二区三区夜夜夜| 欧美国产精品劲爆| 欧美激情精品久久久久久黑人| 另类av导航| 免费不卡在线观看av| 免费在线欧美黄色| 欧美va天堂va视频va在线| 男女激情久久| 嫩草影视亚洲| 欧美激情一区二区| 欧美日韩你懂的| 欧美午夜精品久久久久久孕妇| 欧美日本精品一区二区三区| 欧美日韩激情小视频| 欧美三级视频在线观看| 欧美香蕉大胸在线视频观看| 欧美日韩精品伦理作品在线免费观看| 欧美精品乱人伦久久久久久| 欧美日韩国产系列| 国产精品久久久久av免费| 国产欧美日韩综合一区在线播放| 国产情人综合久久777777| 国产精品一区一区| 激情五月婷婷综合| 亚洲国产精品va在线看黑人动漫| 亚洲精品国精品久久99热一| 一区二区三区鲁丝不卡| 亚洲欧洲99久久| 久久综合色影院| 亚洲国产欧美国产综合一区| 99日韩精品| 欧美一区二区三区在线看| 久久久久国产精品www| 欧美理论电影在线播放| 国产精品久久久久一区| 一区在线视频观看| 日韩亚洲欧美成人一区| 香蕉免费一区二区三区在线观看| 久久久久五月天| 亚洲精品国产欧美| 激情亚洲网站| 亚洲美女中文字幕| 欧美一区二区高清在线观看| 欧美激情精品久久久久久变态| 亚洲精选一区二区| 久久精品视频va| 欧美三级视频在线| 亚洲国产精品va在线观看黑人| 亚洲一区二区三区高清不卡| 久热精品在线视频| 在线视频日韩| 欧美高清在线精品一区| 国产欧美视频一区二区三区| 亚洲免费激情| 美女免费视频一区| 亚洲一区日本| 欧美日韩欧美一区二区| 在线观看国产一区二区| 欧美一级视频免费在线观看| 亚洲国产aⅴ天堂久久| 欧美一区二区三区免费视| 欧美日韩国产专区| 亚洲欧洲一区二区三区在线观看| 久久九九国产精品怡红院| 99视频精品在线| 欧美精品在线观看一区二区| 在线不卡中文字幕|