使用tcpdump攔截linux網絡數據

使用tcpdump攔截linux服務端網絡數據

 

語法範例:

tcpdump -vv -i ens3 '((tcp)&&(host 183.239.240.48)&&(port 3001))'  -c 100 -w 12.cap

tcpdump -vv -i eth0 '((tcp)&&(src host 10.67.37.26)&&(dst port 9300))'  -c 1000 -w 12.cap

 

-i表示指定網絡設備

後面的字串是規則,規則通常這麼拼接:


 
  1. 非 : ! or "not"
  2. 且 : && or "and"
  3. 或 : || or "or"

規則語句有這些:

協議類:

arp,ip,tcp,udp,icmp

地址類:

host:源或目標ip

dst host:目標ip

src host:源ip

port:源或目標端口.(有dst host  , src host,含義同上)

net:指定網絡.(也有dst net ,src net)

按照包長:

less 100 表示少於100

greater 100 表示大於100

高級過濾:

根據ip包頭:

ip[0]>5

從IP包頭取包大小(2bytes),判斷:

ip[2:2]>600

tcp包頭也能取大小:

tcp[0:2]

攔截HTTP(並不一定能成功,因爲頭長度不固定):

0x4745 爲"GET"前兩個字母"GE"

0x4854 爲"HTTP"前兩個字母"HT"

tcp[20:2]=0x4745 or tcp[20:2]=0x4854

==============================================

可以通過-c參數指定抓多少個包,然後用"-w"放到文本文件

參考文章:

https://www.wains.be/pub/networking/tcpdump_advanced_filters.txt (中文翻譯:http://www.veryarm.com/1751.html#12)

http://packetpushers.net/masterclass-tcpdump-expressions/

https://www.hugeserver.com/kb/install-use-tcpdump-capture-packets/

https://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章