2021-05-12 14:32:11
Linux抓包命令tcpdump命令圖解
什麼是tcpdump?tcpdump命令-->用來將網路中傳送的封包的"頭"完全截獲下來提供分析,常見的有Wireshark。在Linux中輸入命令man tcpdump給出的定義如下所示:
tcpdump - 轉儲網路上的資料流
是不是感覺很懵?我們用通俗、形象、學術的表達方式來全方位描述tcpdump:
- 通俗的來說,tcpdump是一個抓包工具,用於抓取網路中傳輸的封包
- 形象的來說,tcpdump如同國家海關,凡是入境和出境的貨物,海關都要抽樣檢查,看看裡面具體是什麼貨物
- 學術的來說,tcpdump是一種Sniffer(嗅探器),利用乙太網的特性,通過將網路裝置置於混雜模式來獲取傳輸在網路中的資訊包
【命令作用】
該命令支援針對網路層、協定、主機、網路或埠的過濾,並提供and、or、not等邏輯語句來幫助你去掉無用的資訊。tcpdump就是一種免費的網路分析工具,尤其其提供了原始碼,公開了介面,因此具備很強的可延伸性,對於網路維護和入侵者都是非常有用的工具。tcpdump存在於基本的FreeBSD系統中,由於它需要將網路介面設定為混雜模式,普通使用者不能正常執行,但具備root許可權的使用者可以直接執行它來獲取網路上的資訊。因此系統中存在網路分析工具主要不是對本機安全的威脅,而是對網路上的其他計算機的安全存在威脅。經典的系統管理員分析工具!
【常用關鍵字】
tcpdump命令中幾種關鍵字:
第一種:型別關鍵字,包括:host,net,port
第二種:傳輸方向關鍵字,包括:src,dst
第三種:協定關鍵字,包括: ip,arp,tcp,udp等型別
第四種:其他關鍵字,包括:gateway,broadcast,less,greater,not,!,and,&&,or,||
【備註說明】
1) 抓取回環網口的包: $ tcpdump -i lo
2) 防止包截斷的方法: $ tcpdump -s 0
3) 以數位顯示主機及埠: $ tcpdump -n
【命令淺解】
$ tcpdump tcp -i eth1 -t -s0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap
1)tcp: # ip,icmp,arp,rarp,udp這些選項要放第一個引數,用來過濾資料包的型別
2)-i eth1 # 只抓經過網口eth1的包
3)-t # 不顯示時間戳
4)-s 0 # 抓取封包時預設抓取長度為68位元組。加上-s 0 後可以抓到完整的封包
5)-c 100 # 只抓取100個封包
6)dst port ! 22 # 不抓取目標埠是22的封包
7)src net 192.168.1.0/24 # 封包的源網路地址為192.168.1.0/24
8)-w ./target.cap # 儲存成cap檔案,方便用wireshark工具進行分析
【其他命令】
$ tcpdump host 192.168.0.1 and /(192.168.0.2 or 192.168.0.3 /) # 擷取主機1與主機2或3之間的通訊包
$ tcpdump ip host 192.168.0.1 and ! 192.168.0.2 # 擷取主機1除了和主機2之外所有主機通訊的ip包
$ tcpdump tcp port 23 host 210.27.48.1 # 擷取主機192.168.0.1接收或發出的telnet包
$ tcpdump -i eth0 host ! 192.168.0.1 and ! 192.168.0.2 and dst port 80 # 截獲除了主機1、2外存取本機http埠的封包
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx
本文永久更新連結地址:https://www.linuxidc.com/Linux/2018-09/15420.htm
相關文章