黑客伴侶2——tcpdump抓包

黑客伴侶2——tcpdump抓包

4 人贊了文章

我知道你一定聽過wireshark,wireshark真的很好用,可是有個更輕量的Linux命令:tcpdump。它能很容易的抓到包的,最關鍵的是命令可以直接結合linux的管道,威力無窮。

比如,最簡單的

sudo tcpdump host jianshu.com

它會抓取於jianshu.com這個host相通信的所有包,當然,你可再細一點指定過濾條件:

指定協議

sudo tcpdump ip host jianshu.com

sudo tcpdump tcp port 80

注意:sudo tcpdump tcp port 80 host jianshu.com

這樣寫,會報

tcpdump: tcp modifier applied to host的錯

這時有兩種方法:

1.使用and 關鍵字

sudo tcpdump tcp port 80 and host jianshu.com

2.使用管道來查看

ping jianshu.com

得到jianshu.com的ip 120.132.92.21

sudo tcpdump tcp port 80 | grep 120.132.92.21

指定源和目標

這很簡單,用src代表源;用dist代表目標

sudo tcpdump src host 120.132.92.21

使用與或非過濾

非是 『not 『 『! 『,與運算是』and』,』&&』;或運算 是』or』,』││』;

我還是推薦用not and or 這樣的詞,當然符號也行,但這樣更好理解。

比如我們上面用到了and

還可以用not或者or來篩選主機

sudo tcpdump host (210.27.48.2 or 210.27.48.3 )

這裡用到了括弧,用以簡化形式,一定注意,使用命令行時,括弧要帶上這兩個斜杠,並且不能和括弧直接有空格!

查看抓到的數據

如果你不帶-X參數,那麼抓到的只是這樣的概述:

16:08:18.731680 IP 120.132.92.21.http > 192.168.16.163.45134: Flags [.], ack 43441, win 461, options [nop,nop,TS val 766985341 ecr 5849335], length 0

大體是 系統時間 來源主機.埠 > 目標主機.埠 數據包參數

如果要查看詳細的使用 -w 參數指定輸出文件,或者帶上-X參數。

我的建議是把數據輸出到文件。輸出的文件是16進位的,你可以用一些處理十六進位的命令讀出來,例如使用xxd輸出抓到的包的文件 zhuabao.txt

cat zhuabao.txt | xxd

00000000: d4c3 b2a1 0200 0400 0000 0000 0000 0000 ................00000010: 0000 0400 0100 0000 d9a6 fc57 9311 0300 ...........W....00000020: 4a00 0000 4a00 0000 c83a 3560 0630 8c89 J...J....:5`.0..00000030: a5c3 787f 0800 4500 003c f8f6 4000 4006 ..x...E..<..@.@.00000040: 8440 c0a8 10a3 b7fc 343d c530 0050 d40d .@......4=.0.P..00000050: 0ae4 0000 0000 a002 7210 8184 0000 0204 ........r.......

?
推薦閱讀:

wireshark使用教程及過濾語法總結——血淚史的匯聚

TAG:黑客Hacker | 計算機網路 | 數據抓包 |