<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    超詳細的Wireshark使用教程

    VSole2022-12-12 09:44:38

    一、wireshark是什么?

    wireshark是非常流行的網絡封包分析軟件,簡稱小鯊魚,功能十分強大。可以截取各種網絡封包,顯示網絡封包的詳細信息。

    wireshark是開源軟件,可以放心使用。可以運行在Windows和Mac OS上。對應的,linux下的抓包工具是 tcpdump。使用wireshark的人必須了解網絡協議,否則就看不懂wireshark了。

    二、Wireshark常用應用場景

    1. 網絡管理員會使用wireshark來檢查網絡問題

    2. 軟件測試工程師使用wireshark抓包,來分析自己測試的軟件

    3. 從事socket編程的工程師會用wireshark來調試

    4. 運維人員用于日常工作,應急響應等等

    總之跟網絡相關的東西,都可能會用到wireshark

    三、Wireshark抓包原理

    Wireshark使用WinPCAP作為接口,直接與網卡進行數據報文交換。

    Wireshark使用的環境大致分為兩種,一種是電腦直連網絡的單機環境,另外一種就是應用比較多的網絡環境,即連接交換機的情況。

    「單機情況」下,Wireshark直接抓取本機網卡的網絡流量;

    「交換機情況」下,Wireshark通過端口鏡像、ARP欺騙等方式獲取局域網中的網絡流量。

    端口鏡像:利用交換機的接口,將局域網的網絡流量轉發到指定電腦的網卡上。

    ARP欺騙:交換機根據MAC地址轉發數據,偽裝其他終端的MAC地址,從而獲取局域網的網絡流量。

    四、Wireshark軟件安裝

    軟件下載路徑:https://www.wireshark.org/

    按照系統版本選擇下載,下載完成后,按照軟件提示一路Next安裝。

    五、Wireshark抓包示例

    先介紹一個使用wireshark工具抓取ping命令操作的示例,可以上手操作感受一下抓包的具體過程。

    1、打開wireshark,主界面如下:

    2、選擇菜單欄上 捕獲 -> 選項,勾選WLAN網卡。這里需要根據各自電腦網卡使用情況選擇,簡單的辦法可以看使用的IP對應的網卡。點擊Start,啟動抓包。

    3、wireshark啟動后,wireshark處于抓包狀態中。

    4、執行需要抓包的操作,如在cmd窗口下執行ping www.baidu.com

    5、操作完成后相關數據包就抓取到了,可以點擊 停止捕獲分組 按鈕。

    6、為避免其他無用的數據包影響分析,可以通過在過濾欄設置過濾條件進行數據包列表過濾,獲取結果如下。說明:ip.addr == 183.232.231.172 and icmp 表示只顯示ICPM協議且主機IP為183.232.231.172的數據包。說明:協議名稱icmp要小寫。

    7、wireshark抓包完成,并把本次抓包或者分析的結果進行保存,就這么簡單。關于wireshark顯示過濾條件、抓包過濾條件、以及如何查看數據包中的詳細內容在后面介紹。

    六、Wireshakr抓包界面介紹

    Wireshark 的主界面包含6個部分:

    菜單欄:用于調試、配置

    工具欄:常用功能的快捷方式

    過濾欄:指定過濾條件,過濾數據包

    數據包列表:核心區域,每一行就是一個數據包

    數據包詳情:數據包的詳細數據

    數據包字節:數據包對應的字節流,二進制

    說明:數據包列表區中不同的協議使用了不同的顏色區分。協議顏色標識定位在菜單欄 視圖 --> 著色規則。如下所示

    WireShark 主要分為這幾個界面

    1. Display Filter(顯示過濾器)

    用于設置過濾條件進行數據包列表過濾。菜單路徑:分析 --> Display Filters。

    2. Packet List Pane(數據包列表)

    顯示捕獲到的數據包,每個數據包包含編號,時間戳,源地址,目標地址,協議,長度,以及數據包信息。不同協議的數據包使用了不同的顏色區分顯示。

    3. Packet Details Pane(數據包詳細信息)

    在數據包列表中選擇指定數據包,在數據包詳細信息中會顯示數據包的所有詳細信息內容。數據包詳細信息面板是最重要的,用來查看協議中的每一個字段。各行信息分別為

    (1)Frame:   物理層的數據幀概況

    (2)Ethernet II: 數據鏈路層以太網幀頭部信息

    (3)Internet Protocol Version 4: 互聯網層IP包頭部信息

    (4)Transmission Control Protocol:  傳輸層T的數據段頭部信息,此處是TCP

    (5)Hypertext Transfer Protocol:  應用層的信息,此處是HTTP協議

    TCP包的具體內容

    從下圖可以看到wireshark捕獲到的TCP包中的每個字段。

    4. Dissector Pane(數據包字節區)

    報文原始內容。

    七、Wireshark過濾器設置

    初學者使用wireshark時,將會得到大量的冗余數據包列表,以至于很難找到自己需要抓取的數據包部分。wireshark工具中自帶了兩種類型的過濾器,學會使用這兩種過濾器會幫助我們在大量的數據中迅速找到我們需要的信息。

    1.抓包過濾器

    捕獲過濾器的菜單欄路徑為 捕獲 --> 捕獲過濾器。用于在抓取數據包前設置。

    如何使用呢?設置如下。

    ip host 183.232.231.172表示只捕獲主機IP為183.232.231.172的數據包。獲取結果如下:

    2. 顯示過濾器

    顯示過濾器是用于在抓取數據包后設置過濾條件進行過濾數據包。

    通常是在抓取數據包時設置條件相對寬泛或者沒有設置導致抓取的數據包內容較多時使用顯示過濾器設置條件過濾以方便分析。

    同樣上述場景,在捕獲時未設置抓包過濾規則直接通過網卡進行抓取所有數據包。

    執行ping www.baidu.com獲取的數據包列表如下

    觀察上述獲取的數據包列表,含有大量的無效數據。這時可以通過設置顯示器過濾條件進行提取分析信息。ip.addr == 183.232.231.172,并進行過濾。

    上述介紹了抓包過濾器和顯示過濾器的基本使用方法。在組網不復雜或者流量不大情況下,使用顯示器過濾器進行抓包后處理就可以滿足我們使用。下面介紹一下兩者間的語法以及它們的區別。

    八、wireshark過濾器表達式的規則

    1. 抓包過濾器語法和實例

    抓包過濾器類型Type(host、net、port)、方向Dir(src、dst)、協議Proto(ether、ip、tcp、udp、http、icmp、ftp等)、邏輯運算符(&&與、|| 或、!非)

    (1)協議過濾

    比較簡單,直接在抓包過濾框中直接輸入協議名即可。

    tcp,只顯示TCP協議的數據包列表

    http,只查看HTTP協議的數據包列表

    icmp,只顯示ICMP協議的數據包列表

    (2)IP過濾

    host 192.168.1.104

    src host 192.168.1.104

    dst host 192.168.1.104

    (3)端口過濾

    port 80

    src port 80

    dst port 80

    (4)邏輯運算符&&與、|| 或、!非

    src host 192.168.1.104 &&dst port 80 抓取主機地址為192.168.1.80、目的端口為80的數據包

    host 192.168.1.104 || host 192.168.1.102 抓取主機為192.168.1.104或者192.168.1.102的數據包

    !broadcast 不抓取廣播數據包

    2. 顯示過濾器語法和實例

    (1)比較操作符

    比較操作符有

    == 等于、!= 不等于、> 大于、< 小于、>= 大于等于、<=小于等于

    (2)協議過濾

    比較簡單,直接在Filter框中直接輸入協議名即可。注意:協議名稱需要輸入小寫。

    tcp,只顯示TCP協議的數據包列表

    http,只查看HTTP協議的數據包列表

    icmp,只顯示ICMP協議的數據包列表

    (3) ip過濾

    ip.src ==112.53.42.42 顯示源地址為112.53.42.42的數據包列表

    ip.dst==112.53.42.42, 顯示目標地址為112.53.42.42的數據包列表

    ip.addr == 112.53.42.42 顯示源IP地址或目標IP地址為112.53.42.42的數據包列表

    (4)端口過濾

    tcp.port ==80, 顯示源主機或者目的主機端口為80的數據包列表。

    tcp.srcport == 80, 只顯示TCP協議的源主機端口為80的數據包列表。

    tcp.dstport == 80,只顯示TCP協議的目的主機端口為80的數據包列表。

    (5) http模式過濾

    http.request.method=="GET", 只顯示HTTP GET方法的。

    (6)邏輯運算符為 and/or/not

    過濾多個條件組合時,使用and/or。比如獲取IP地址為192.168.0.104的ICMP數據包表達式為ip.addr == 192.168.0.104 and icmp

    (7)按照數據包內容過濾

    假設我要以ICMP層中的內容進行過濾,可以單擊選中界面中的碼流,在下方進行選中數據。

    右鍵單擊選中后出現如下界面

    選中后在過濾器中顯示如下

    后面條件表達式就需要自己填寫。如下我想過濾出data數據包中包含"abcd"內容的數據流。關鍵詞是contains,完整條件表達式為data contains "abcd"

    看到這, 基本上對wireshak有了初步了解。

    3. 常見用顯示過濾需求及其對應表達式

    數據鏈路層

    篩選mac地址為04:f9:38:ad:13:26的數據包

    eth.src == 04:f9:38:ad:13:26

    篩選源mac地址為04:f9:38:ad:13:26的數據包----

    eth.src == 04:f9:38:ad:13:26

    網絡層

    篩選ip地址為192.168.1.1的數據包

    ip.addr == 192.168.1.1

    篩選192.168.1.0網段的數據

    ip contains "192.168.1"

    傳輸層:

    篩選端口為80的數據包

    tcp.port == 80

    篩選12345端口和80端口之間的數據包

    tcp.port == 12345 &&tcp.port == 80

    篩選從12345端口到80端口的數據包

    tcp.srcport == 12345 &&tcp.dstport == 80

    應用層

    特別說明: http中http.request表示請求頭中的第一行(如GET index.jsp HTTP/1.1) http.response表示響應頭中的第一行(如HTTP/1.1 200 OK),其他頭部都用http.header_name形式。

    篩選url中包含.php的http數據包

    http.request.uri contains ".php"

    篩選內容包含username的http數據包

    http contains "username"

    九、Wireshark抓包分析TCP三次握手

    1. TCP三次握手連接建立過程

    Step1:客戶端發送一個SYN=1,ACK=0標志的數據包給服務端,請求進行連接,這是第一次握手;

    Step2:服務端收到請求并且允許連接的話,就會發送一個SYN=1,ACK=1標志的數據包給發送端,告訴它,可以通訊了,并且讓客戶端發送一個確認數據包,這是第二次握手;

    Step3:服務端發送一個SYN=0,ACK=1的數據包給客戶端端,告訴它連接已被確認,這就是第三次握手。TCP連接建立,開始通訊。

    2. Wireshark抓包獲取訪問指定服務端數據包

    Step1:啟動wireshark抓包,打開瀏覽器輸入www.baidu.com。

    Step2:使用ping www.baidu.com獲取IP。

    Step3:輸入過濾條件獲取待分析數據包列表 ip.addr == 183.232.231.172

    圖中可以看到wireshark截獲到了三次握手的三個數據包。第四個包才是HTTPS的, 這說明HTTPS的確是使用TCP建立連接的。

    第一次握手數據包

    客戶端發送一個TCP,標志位為SYN,序列號為0, 代表客戶端請求建立連接。

    數據包的關鍵屬性如下:

    SYN :標志位,表示請求建立連接

    Seq = 0 :初始建立連接值為0,數據包的相對序列號從0開始,表示當前還沒有發送數據

    Ack =0:初始建立連接值為0,已經收到包的數量,表示當前沒有接收到數據

    第二次握手的數據包

    服務器發回確認包, 標志位為 SYN,ACK。將確認序號(Acknowledgement Number)字段+1,即0+1=1。

    數據包的關鍵屬性如下:

    [SYN + ACK]: 標志位,同意建立連接,并回送SYN+ACK

    Seq = 0 :初始建立值為0,表示當前還沒有發送數據

    Ack = 1:表示當前端成功接收的數據位數,雖然客戶端沒有發送任何有效數據,確認號還是被加1,因為包含SYN或FIN標志位。(并不會對有效數據的計數產生影響,因為含有SYN或FIN標志位的包并不攜帶有效數據)

    第三次握手的數據包

    客戶端再次發送確認包(ACK) SYN標志位為0,ACK標志位為1。并且把服務器發來ACK的序號字段+1,放在確定字段中發送給對方,并且在Flag段寫ACK的+1:

    數據包的關鍵屬性如下:

    ACK :標志位,表示已經收到記錄

    Seq = 1 :表示當前已經發送1個數據

    Ack = 1 : 表示當前端成功接收的數據位數,雖然服務端沒有發送任何有效數據,確認號還是被加1,因為包含SYN或FIN標志位(并不會對有效數據的計數產生影響,因為含有SYN或FIN標志位的包并不攜帶有效數據)。

    就這樣通過了TCP三次握手,建立了連接。開始進行數據交互

    十、Wireshark分析常用操作

    調整數據包列表中時間戳顯示格式。調整方法為 視圖 -->時間顯示格式 --> 日期和時間。調整后格式如下:

    一般Wireshark軟件也可以與各主流廠家的模擬器一起使用,更適合于項目準確配置。

    wireshark抓包
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    接下來,我們通過wireshark來查找pcap文件中的丟線索。結論1、1句忠告:不能通過判斷數據包是否已被接收端收到來判斷pcap中是否丟
    網絡封包分析軟件的功能是擷取網絡封包,并盡可能顯示出最為詳細的網絡封包資料。
    是個抓取網絡數據包的庫,這么說可能還有點抽象,但是工具大家可能都使用過。場景1:網絡流量分析對網絡設備流量進行實時采集以及數據包分析。場景2:偽造數據包不少網絡安全工具,需要偽造網絡數據包,填充上必要的協議字段后發送給對端設備,從而達到一些目的。
    常用的工具有fiddler、wireshark、httpwatch、 firebug、F12/等。的是協議,fiddler的是HTTP、HTTPS協議,wireshark的是其他協議。fiddler、wireshark可以修改接口的參數和返回值,常用的F12調試工具只可以查看接口的參數和響應值。
    小白必看:超詳細的Wireshark使用教程
    在使用沒有無線網卡的電腦或無法開熱點的情況下可以直接在手機上運行Tcpdump然后導出文件在電腦端WireShark中打開,與直接使用WireShark效果相同。
    APP測試必備工具總結
    2023-02-06 10:50:05
    ProxyDroid強制全局代理工具。JustTrustMe基于Xposed寫的反SSL Pinning工具。ObjectionUnpinningPlus瘦蛟舞寫的一個Frida腳本,功能與JustTrustMe相同,但因為Frida的特殊性,可以隨時修改內容,面對一些特殊情況時會很方便。非HTTP請求類WireShark非HTTP的還是使用WireShark這類工具方便些,通常需要配合反編譯找到協議的組成方式。Tcpdump在使用沒有無線網卡的電腦或無法開熱點的情況下可以直接在手機上運行Tcpdump然后導出文件在電腦端WireShark中打開,與直接使用WireShark效果相同。
    APP 聊天協議逆向
    2023-04-07 09:46:21
    環境主機:win10手機:Pixel 4 ,Android 10APP版本:V4.70.0工具IDA、JADX、Frida、Charles、WireShark逆向思路總結:猜流量分析聊天數據一般都為TCP傳輸,所以直接使用WireShark。經過不斷觀察以下特征數據很像聊天數據:接下來的思路就是Hook libc.so 的send函數,打印調用堆棧。殼、脫殼未查到,那就先將APK拖進JADX里進行分析。Frida Hook擼起袖子就準備直接開干,Frida Server已啟動,直接運行。不出意外的意外,Process terminated。再次跟進去,發現了重點胖揍對象。再次發起Frida魔法攻擊。result結果即為TCP data。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类