<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-08-07 22:23:11

    前言

    我們都知道,一般流量分析設備都支持pcap回放離線分析的功能,但如果抓的pcap丟了包,會影響最終安全測試的效果。

    比如說競測現場需要提供pcap包測試惡意文件的檢測功能,如果pcap中丟包,可能會導致文件還原失敗,最終惡意文件檢測功能“實效”。

    那問題來了,我們怎么識別pcap包是否有丟包呢?

    接下來,我們通過wireshark來查找pcap文件中的丟包線索。

    完整?丟包?

    思路1:透過現象看現象。

    在真實的網絡分析場景中,特別是傳輸大文件時,經常會發現這樣的現象

    大文件已經傳輸到了對端,但是pcap中卻存在丟包。

    這是為什么呢?網絡數據包真的有完整地傳輸給對端嗎?

    毋庸置疑,對端收到了完整地文件,數據包時肯定傳輸到了對端。那為什么wireshark中的pcap包丟包了呢?

    我們還是來看看wireshark的抓包原理吧!

    wireshark在Linux操作系統中,底層是基于libpcap進行抓包的,tcpdump底層也是基于libpcap的,關于tcpdump的底層的收包原因已經在tcpdump能進行丟包分析。

    一文中已經分析過了網卡層面的流程和入口,這里就不再贅述了。

    由此我們可明確一點:產生上述現象的原因,并不是網卡丟包,因為網卡層面的丟包肯定會影響文件數據的完整性,由此如果我們排除wireshark使用錯誤產生的丟包,還可能是在下面這個過程中丟的包:

    通過deliver_skb來進入 packet_rcv階段 ,packet_rcv 把收到的skb放到當前的packet socket緩沖區,應用層調用recvfrom就可以將緩沖區中的數據包拷貝到應用層,從而實現libpcap的收包,大致過程如圖1所示:

    圖1:libpcap的收包過程

    所以我們能夠得出wireshark丟包的原因可能是:

    1、packet socket緩沖區已滿導致丟包;
    2、從緩沖區拷貝到應用層中斷異常導致丟包。
    3、當然排除以上兩條,也有可能是多路徑網絡結構允許屬于同一 TCP 會話的數據包通過不同的網絡接口,導致wireshark捕獲的數據包不全。

    可是在我們日常的流量分析工作中,往往會根據對端有沒有完整地數據包來判斷我們用wireshark抓的數據包是否完整,這樣做可能會嚴重影響安全測試的工作效率。

    那有沒有能夠快速分析pcap包中是否丟包的方法呢

    答案是有,可以用wireshark的專家信息快速分析丟包的效果

    丟包線索

    思路2:透過本質看現象。

    打開wireshark,在工具欄中點擊“分析->專家信息”,如圖1、圖2所示:

    圖1:wireshark的專家信息位置

    wireshark的專家信息中提供了錯誤、警告、注意、對話這4種信息,選中任意一條都能定位到具體的數據包。

    圖2:wireshark的丟包警告1

    圖3:wireshark的丟包警告2

    那專家信息中的哪些信息提示了丟包的線索呢?

    1、Acked segment that wasn't capture(common at capture start)如圖2所示:表示此數據包已經ack了未捕獲的數據。

    傳輸正常,接收方已經確認,但 Wireshark 無法在捕獲的數據中找到某段數據包, 這通常發生在捕獲設備不夠快的時候,比如libpcap的接收緩沖區已滿,或者由緩沖區向應用層拷貝的時候導致的丟包。

    2、TCP Previous segment not captured如圖3所示:表示如果數據包 N 標有未捕獲的前一個段,則表示在捕獲中沒有來自同一 TCP 會話的數據包,其 [seq + 長度≠數據包 N 的 seq ]。

    最典型的原因是數據包丟失或延遲啟動捕獲,但也有可能是發送方的 TCP 堆棧有問題,或者是多路徑網絡結構允許屬于同一 TCP 會話的數據包通過不同的網絡接口,導致數據包確實到達目的地,但沒被 Wireshark 捕獲到。

    結論

    1、1句忠告:不能通過判斷數據包是否已被接收端收到來判斷pcap中是否丟包。
    2、1個小tip:pcap丟包可以通過wireshark的專家信息快速定位和判斷。
    3、4條經驗:由wireshark產生的丟包可能有4種原因,
    ①packet socket的緩沖區已滿導致丟包;
    ②從緩沖區拷貝到應用層中斷異常導致丟包;
    ③wireshark使用不當,延遲啟動捕獲導致丟包;
    ④也有可能是多路徑網絡結構允許屬于同一 TCP 會話的數據包通過不同的網絡接口,導致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
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类