外掛聯合國討論區

標題: 抓取APP封包 經驗分享 不特定網路下 [打印本頁]

作者: shalei    時間: 2015-5-31 01:18
標題: 抓取APP封包 經驗分享 不特定網路下
本帖最後由 大胖 於 2015-5-30 23:21 編輯


這陣子因為分析一款android遊戲 所以嘗試抓包
但發現古歌上 似乎沒人提供 ”針對指定app"實時"抓包”的方法,本人的方法不限定只抓http包(Fiddler),對網路環境的要求也非常低(標題誇大了些)  且能實時抓,雖然文章敘述冗長 實際上操作很簡單的 
在此分享我的方法:


1.在電腦上使用 CCProxy 架設 socks5 server。

2.android端 借由 ProxyDroid,使APP透過電腦的socks5 server代{過}{濾}理聯網。

3.電腦執行 Wireshark,並使用Filter功能,過濾出APP和socks5 server間的通訊。

  3.1 要過濾出我們要的信息 需要稍 為瞭解socks5協議,大體上流程:1.socks5 client與socks5 server 的特定port建立連接。2.client告訴 server 欲連結的host的 IP 和 Port,由server 向 host 建立連結。3.此後只要 client send server 什麼,server就send host 什麼;server從host recv 什麼,client 就從 server recv什麼,socket協議不會額外包裝訊息。

  3.2 Capture Filter:(src 192.168.23.1 and src port 10800 and dst 192.168.23.2) or (src 192.168.23.2 and dst 192.168.23.1 and dst port 10800) , 說明: 192.168.23.2 是 android端IP,192.168.23.1是電腦IP,10800是socks5 server的 port。Capture Filter語法很直觀,src代表 source ip ; dst代表 destination ip

我表達能力不好,將就將就...文中很可能有錯誤的理解 還請各位指出 謝謝哦~

補充: 雖然我的網路環境是 android連上電腦分享的 wifi , wireshark對無線網路的介面監聽
其實無論 android使用何種方式連網 甚至 android和電腦不同局網  此方法都適用的(例如手機3G上網也可以)
只要你知道 android端的 ip和 socks5 server的 ip(本機 IP),即可透過 wireshark的 filter過濾出來(因為有過濾,不會有其他雜訊的)
缺點是,同時只能對一個 app抓包 若 android上有一個以上的 app透過同一個 socks5 server連網,wireshark將無法分辨是哪一個app的封包。

補充:
關於 Capture Filter, 我認為應該再說清楚些!

   src                                  dst
APP -----------------> socks5 server
IP 定值                          IP 定值
port 不定                    port 定值
因此  (src 192.168.23.2 and dst 192.168.23.1 and dst port 10800)
_______________________________________________________

       src                                    dst
socks5 server -----------------> APP
IP 定值                          IP 定值
port 定值                    port 不定
因此  (src 192.168.23.1 and src port 10800 and dst 192.168.23.2)


另外如果有無線網卡的話,可以共享個熱點,Wireshark完全可以抓熱點的包..
當然,socks5也是一種方法...

純粹分享,如果喜歡請評分或回覆一下讓我知道,我才有動力繼續分享





歡迎光臨 外掛聯合國討論區 (https://bbs.wgun.net/) Powered by Discuz! X2.5