999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

網絡抓包工具tcpdump使用指南

2020-11-13 05:10:06北京趙琳
網絡安全和信息化 2020年11期

■ 北京 趙琳

編者按:tcpdump 是一款強大的網絡抓包工具,它使用libpcap 庫來抓取網絡數據包,這個庫在幾乎在所有的Linux/Unix 中都有。熟悉tcpdump 的使用能夠幫助你分析調試網絡數據。本文將通過一些具體的示例來介紹它在不同場景下的使用方法。

tcpdump的常用參數:$ tcpdump -i eth0 -nn -s0-v port 80

-i:選擇要捕獲的接口,通常是以太網卡或無線網卡,也可以是VLAN 或其他特殊接口。如果只有一個網絡接口,則無需指定。

-nn:單個n 表示不解析域名,直接顯示IP 地址;兩個n 表示不解析域名和端口。這樣不僅方便查看IP 地址和端口號,而且在抓取大量數據時非常高效,因為域名解析會降低抓取速度。

-s0:tcpdump 默認只會截取前96 字節的內容,要想截取所有的報文內容,通過使用-s number(number 是要截取的報文字節數),如果是0 的話,表示截取報文全部內容。

-v:使用-v、-vv 和-vvv來顯示更多的詳細信息,通常會顯示更多與特定協議相關的信息。

port 80:表示僅抓取80 端口上的流量,通常是HTTP。

-p:不讓網絡接口進入混雜模式。默認情況下使用tcpdump 抓包時,會讓網絡接口進入混雜模式。如果設備接入的交換機開啟了混雜模式,使用-p 選項可以有效地過濾噪聲。

-e:顯示數據鏈路層信息。默認情況下tcpdump 不會顯示數據鏈路層信息,使用-e 選項可以顯示源和目的mac 地址,以及 VLAN tag信息。

-w:用來把數據報文輸出到文件。使用tcpdump 截取數據報文的時候,默認會打印到屏幕的默認輸出,你會看到按照順序和格式,很多的數據一行行快速閃過,根本來不及看清楚所有的內容。

-A 表示使用ASCII 字符串打印報文的全部數據,這樣可以使讀取更加簡單,方便使用grep 等工具解析輸出內容。-X 表示同時使用十六進制和ASCII 字符串打印報文的全部數據。這兩個參數不能一起使用。例如:$tcpdump -A -s0 port 80

首先,抓取特定協議的數據。后面可以跟上協議名稱來過濾特定協議的流量。以UDP 為例,可以加上參數udp或protocol 17,這兩個命令意思相同。

同理,tcp 與 protocol 6 意思相同。

其次,行緩沖模式。如果想實時將抓取到的數據通過管道傳遞給其他工具來處理,需要使用-l 選項來開啟行緩沖模式(或使用-c 選項來開啟數據包緩沖模式)。使用-l 選項可以將輸出通過立即發送給其他命令,其他命令會立即響應。

過濾器

把所有的數據截取下來,從里面找到想要的信息無疑是一件很費時費力的工作。而tcpdump 提供了靈活的語法可以精確地截取關心的數據報,簡化分析的工作量。這些選擇數據包的語句就是過濾器(filter)。

1.Host 過濾器

使用過濾器host 可以抓取特定目的地和源IP 地址的流量。例如:$ tcpdump-I eth0 host 10.10.1.1

該命令會抓取所有發往主機 10.10.1.1 或者從主機10.10.1.1 發出的流量。

也可以使用src 或dst只抓取源或目的地。例如:$ tcpdump -i eth0 dst 10.10.1.1

該命令會只抓取發往主機 10.10.1.1 的流量。

2.Network 過濾器

Network 過濾器用來過濾某個網段的數據,使用的是CIDR 模式。可以使用四元組(x.x.x.x)、三元組(x.x.x)、二元組(x.x)和一元組(x)。四元組就是指定某個主機,三元組表示子網掩碼為255.255.255.0,二元組表示子網掩碼為255.255.0.0,一元組表示子網掩碼為255.0.0.0。例如:$tcpdump net 192.168.1

該命令會抓取所有發往網段192.168.1.x 或從網段192.168.1.x 發出的流量。

例如:$ tcpdump net 10

該命令會抓取所有發往網段10.x.x.x 或從網段10.x.x.x 發出的流量。

也可以使用src 或dst只抓取源或目的地。

3.Proto 過濾器

用來過濾某個協議的數據,關鍵字為proto,可省略。proto 后面可以跟上協議號或協議名稱,支持ICMP、IGMP、IGRP、PIM、AH、ESP、CARP、VRRP、UDP 和TCP。

因為,通常的協議名稱是保留字段,所以在與proto指令一起使用時,必須根據shell 類型使用一個或兩個反斜杠(/)來轉義。Linux中的shell 需要使用兩個反斜杠來轉義,MacOS 只需要一個。

該命令會抓取ICMP 協議的報文。

4.Port 過濾器

用來過濾通過某個端口的數據報文,關鍵字為port。例如:$ tcpdump port 38 9 該命令會抓取389 端口的報文。

5.組合過濾器

過濾的真正強大之處在于你可以隨意組合它們,而連接它們的邏輯就是常用的與/AND/&&、或/OR/|| 和非/not/!。

理解 tcpdump 的輸出

截取數據只是第一步,第二步就是理解這些數據。下面就解釋一下tcpdump 命令輸出各部分的意義。

實例:

最基本也是最重要的信息就是數據報的源地址/端口和目的地址/端口。上面的例子第一條數據報中,源地址IP 是192.168.1.106,源端口是56166,目的地址是124.192.132.54,目的端口是80。“>”符號代表數據的方向。

此外,上面的三條數據是TCP 協議的三次握手過程,第一條是SYN 報文,通過Flags [S] 可以看出。第二條是SYN 報文的應答報文(SYN-ACK),通過Flags [S.]可以看出。

工作實例

1.提取HTTP 用戶代理

從HTTP 請求頭中提取HTTP 用戶代理:

通過egrep 可以同時提取用戶代理和主機名(或其他頭文件):

2.只抓取HTTP GET 和POST 流量

抓取HTTP GET 流量:

注意:該方法不能保證抓取到HTTP POST 有效數據流量,因為一個POST 請求會被分割為多個TCP 數據包。

上述兩個表達式中的十六進制將會與GET 和POST請求的ASCII 字符串匹配。例如,tcp[((tcp[12:1] & 0 xf0) >> 2):4] 首先會確定我們感興趣的字節的位置(在 TCP header 之后),然后選擇我們希望匹配的4 個字節。

3.提取HTTP 請求的URL

提取HTTP 請求的主機名和路徑:

4.提取Cookies

提取 Set-Cookie(服務端的Cookie)和 Cookie(客戶端的Cookie):

5.抓取 ICMP 數據包

查看網絡上的所有ICMP數據包:

6.抓取非ECHO/REPLY 類型的ICMP 數據包

通過排除echo 和reply類型的數據包使抓取到的數據包不包括標準的ping包:

7.抓取SMTP/POP3 協議的郵件

可以提取電子郵件的正文和其他數據。例如,只提取電子郵件的收件人:

8.抓取NTP 服務的查詢和響應

9.抓取SNMP 服務的查詢和響應

通過SNMP 服務,網絡運維人員可以獲取大量的設備和系統信息。在這些信息中,系統信息最為關鍵,如操作系統版本、內核版本等。使用SNMP 協議快速掃描程序onesixtyone,可以看到目標系統的信息:

可以通過tcpdump 抓取GetRequest 和 GetResponse:

10.切割pcap 文件

當抓取大量數據并寫入文件時,可以自動切割為多個大小相同的文件。例如,下面的命令表示每3 600 s創建一個新文件 capture-(hour).pcap,每個文件大小不超過 200*1 000 000 字節:

這些文件的命名為capture-{1-24}.pcap,24 小時之后,之前的文件就會被覆蓋。

11.抓取IPv6 流量

可以通過過濾器 ip6 來抓取IPv6 流量,同時可以指定協議如TCP:

從之前保存的文件中讀取IPv6 UDP 數據報文:

12.檢測端口掃描

在下面的例子中,你會發現抓取到的報文的源和目的一直不變,且帶有標志位[S]和[R],它們與一系列看似隨機的目標端口進行匹配。當發送SYN 之后,如果目標主機的端口沒有打開,就會返回一個RESET。這是Nmap 等端口掃描工具的標準做法。

13.過濾Nmap NSE 腳本測試結果

本例中Nmap NSE 測試腳本http-enum.nse 用來檢測HTTP 服務的合法URL。

在執行腳本測試的主機上:t=http-enum.nse targe tip

在目標主機上:

14.抓取DNS 請求和響應

向Google 公共DNS發起的出站DNS 請求和A 記錄響應可以通過tcpdump 抓取到:

15.抓取HTTP 有效數據包

抓取80 端口的HTTP 有效數據包,排除TCP 連接建立過程的數據包(SYN/FIN/ACK):

16.找出發包最多的IP

找出一段時間內發包最多的IP,或者從一堆報文中找出發包最多的IP,可以使用下面的命令:

圖1 抓取到的數據

17.抓取DHCP 報文

抓取DHCP 服務的請求和響應報文,67 為DHCP 端口,68 為客戶機端口。

18.將輸出內容重定向到Wireshark

通常Wireshark(或tsh ark)比tcpdump 更容易分析應用層協議。一般的做法是在遠程服務器上先使用tcpdump 抓取數據并寫入文件,然后將文件拷貝到本地工作站上用Wireshark分析。

還有一種更高效的方法,可以通過SSH 連接將抓取到的數據實時發送給Wireshark 進行分析。以MacOS 系統為例,可以通過brew cask install wireshark 來安裝,然后通過下面的命令來分析:

例如,如果想分析 DNS協議,可以使用下面的命令:

抓取到的數據,如圖1所示。

-c 選項用來限制抓取數據的大小。如果不限制大小,就只能通過ctrl-c來停止抓取,這樣一來不僅關閉了tcpdump,也關閉了wireshark。

主站蜘蛛池模板: 国产高清不卡| 91外围女在线观看| 露脸一二三区国语对白| 美女免费精品高清毛片在线视| 亚洲成年人网| 久久99国产视频| 99视频国产精品| 国产一级精品毛片基地| 亚州AV秘 一区二区三区| 国产最新无码专区在线| 国产精品部在线观看| 婷婷午夜影院| 在线观看国产精品第一区免费| 中文字幕无线码一区| 这里只有精品在线播放| 国产亚洲欧美在线中文bt天堂| 天天色综合4| 天堂成人在线视频| 日韩美女福利视频| 婷婷亚洲综合五月天在线| 好紧好深好大乳无码中文字幕| 欧美国产日韩在线观看| 99久久精品免费看国产免费软件| 伊人久热这里只有精品视频99| www.av男人.com| 国产肉感大码AV无码| 亚洲IV视频免费在线光看| 国产一级妓女av网站| 欧美黄网在线| 国内a级毛片| 无遮挡国产高潮视频免费观看| 亚洲欧洲综合| 四虎综合网| av大片在线无码免费| 亚洲视频免| 在线国产你懂的| www.精品视频| 人人爱天天做夜夜爽| 伊人91在线| 国产正在播放| 中文字幕色在线| 亚洲免费成人网| 免费AV在线播放观看18禁强制| 中文字幕免费在线视频| 精品国产aⅴ一区二区三区 | 热99精品视频| 亚洲av无码人妻| 波多野结衣久久精品| 亚洲人成成无码网WWW| 99热6这里只有精品| 日本成人精品视频| 国产肉感大码AV无码| 国产精品自在在线午夜区app| 凹凸精品免费精品视频| 日韩在线2020专区| 国产在线拍偷自揄观看视频网站| 亚洲第一色视频| 国产精品欧美在线观看| 超碰免费91| 91蜜芽尤物福利在线观看| 午夜国产精品视频| 九九热在线视频| 99热最新网址| 免费xxxxx在线观看网站| 中国特黄美女一级视频| 欧美日韩综合网| 无码精品国产dvd在线观看9久 | 午夜福利免费视频| jizz亚洲高清在线观看| av无码一区二区三区在线| 久久夜色精品| 久久综合九色综合97网| 亚洲国产亚洲综合在线尤物| 国产综合精品一区二区| 亚洲第一视频网| 老司机aⅴ在线精品导航| 国产电话自拍伊人| 国产乱人激情H在线观看| 天天干天天色综合网| 国产美女主播一级成人毛片| 国产成人亚洲欧美激情| 国产黄色爱视频|