tcpdump手機抓包


####

這個沒有圖形界面,可以在Linux服務器上運行,這是比wireshark優秀的地方,

###

首先手機root

####

然后adb要能連接手機

####

下載tcpdump

下載連接如下:
http://www.androidtcpdump.com/android-tcpdump/downloads

 

#####

copy到手機上(root過)

然后將下載到的tcpdump拷貝到手機某個目錄下

adb push /Users/liqian/Downloads/tcpdump /storage/sdcard0/tcpdump

 

####

安裝到系統目錄
進入adb shell,然后再獲取su權限.

cp /sdcard/liqian/tcpdump /system/bin/tcpdump 

這一步copy如果報錯:adb向手機寫入文件,Read-only file system

執行這個命令:mount -o rw,remount /system

 

####

給tcpdump添加執行權限
命令:chmod 755 /system/bin/tcpdump

####

執行tcpdump
1|shell@ja3gduosctc:/system/bin $ su
root@ja3gduosctc:/system/bin # ./tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes

 

####

使用tcpdump抓包

代碼如下:

tcpdump -i wlan0 -s 0 -w /sdcard/1.pcap

可以結束時使用Ctrl+c快捷鍵讓tcpdump結束抓包,抓到數據會存到/sdcard/1.pcap文件內

###

tcpdump命令學習

tcpdump支持相當多的不同參數,如:

使用-i參數指定tcpdump監聽的網絡界面,這在計算機具有多個網絡界面時非常有用,

使用-c參數指定要監聽的數據包數量,

使用-s:"-s 0": capture the entire packet(-s參數用以指定數據包捕獲長度,此處指定為0,意為抓取完整的數據包)

使用-w參數指定將監聽到的數據包寫入文件中保存

####

監視指定主機的數據包

打印所有進入或離開sundown的數據包.

tcpdump host sundown
也可以指定ip,例如截獲所有210.27.48.1 的主機收到的和發出的所有的數據包

tcpdump host 210.27.48.1

 

 tcpdump -i wlan0 -s 0 -c 2 -X icmp

使用十六進制輸出

當我們想要檢查包的內容是否有問題的時候,十六進制的輸出很有幫助:

-X 是十六進制輸出

-c 是輸出多少個,2就是輸出兩個,不加就是輸出全部,

###

基於包大小進行篩選

如果你正在查看特定大小的包,你可以使用這個參數。使用 less、greater 或者對應的數學符號進行過濾:

tcpdump less 32 tcpdump greater 64 tcpdump <= 128

 

###

 

-A:以ASCII形式打印每個包,對抓取web page很方便(最小化鏈路層報頭)。

-r 讀取我們輸出的文件,

-X 就是16進制查看,

這個地方就可以加很多的參數進行過濾了

 

####

更復雜的tcpdump參數是用於過濾目的,這是因為網絡中流量很大,如果不加分辨將所有的數據包都截留下來,數據量太大,反而不容易發現需要的數據包。

使用man tcpdump查看這些過濾規則的具體用法。

從上面tcpdump的輸出可以看出,tcpdump對截獲的數據並沒有進行徹底解碼,數據包內的大部分內容是使用十六進制的形式直接打印輸出的。

顯然這不利於分析網絡故障,通常的解決辦法是先使用帶-w參數的tcpdump 截獲數據並保存到文件中,

然后再使用其他程序進行解碼分析。當然也應該定義過濾規則,以避免捕獲的數據包填滿整個硬盤。

FreeBSD提供的一個有效的解碼程序為tcpshow,它可以通過Packages Collection來安裝。

 

###

重新打開一個終端(Terminal),執行如下命令
復制代碼代碼如下:

adb pull /sdcard/1.pcap .

 

 

###

裝Wireshark並分析pcap文件

雙擊 1.pcap文件,1.pcap文件會自動被Wireshark打開。在Wireshark的Filter內輸入如下一些過濾條件,可以更加方便地分析數 據來源。
tcp.port == 80 //過濾來自80端口的TCP數據
udp.port == 12345 //過濾來自12345端口的UDP數據
ip.src == 192.168.0.1 //過濾源IP為192.168.0.1的數據
ip.dst == 192.168.0.1 //過目的IP為192.168.0.1的數據

 

###

但是你抓到了你都看不懂,怎么辦????

 

 

####


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM