Tcpdump的小經驗(轉)

post0發表於2007-08-10
Tcpdump的小經驗(轉)[@more@]

網上的東西都是這樣,介紹軟體,引數的多,例項的很少。

很多時候,我們有了軟體的引數使用方法,但是還是不是很明白,領會。今天,我在用網路崗監控的時候,看到裡面監控的僅僅是些常用的網路伺服器形式,80,郵件,ftp,功能太下載。這個監控上網內容還可以,要分析些網路事件,無能為力了。

於是,我想到,一般區域網中怕的就是木馬,病毒,傳送垃圾資料包,常常堵塞網路。 於是,我就想起用tcpdump來試試看,畢竟很多軟體都是靠他來監控的。試試牛刀了

先 tcpdump 一看,資訊太多。 想了想我要做的是什麼,主要是想看看,區域網中訪問internet那些東西,跟那些機器有連線,而且要探測不明連結。從而可以發現是否有木馬,病毒一些在作怪!

tcpdump dst net not 192.168.123.0/24 不監視跟網內機子的連結,過濾很多資訊。迅速進入主題, 不想看發郵件的情況,一般的80網頁訪問,domain訪問,還有要排除網內已有伺服器的一些埠。

tcpdump dst net not 192.168.123.0/24 and dst port not ( www or 25 or 110 or 5000 or domain ) and src port ! ( 4011 or 4010 or 4009 )

這樣的話看到的資訊就相對少了很多,這個時候就可以看到一些不常見的連結了,對發現木馬和病毒會有一定的幫助。

相信大家看過tcpdump的用法,過濾表示式應該不難理解。

我也就解釋下吧,高手就不用看了。

dst net not 192.168.123.0/24 不監視與網內機器的連線

dst port not ( www or 25 or 110 or 5000 or domain ) 過濾與internet中執行 目標埠的連線,不顯示訪問網頁,郵件,查詢DNS的這些連線

src port ! ( 4011 or 4010 or 4009 ) 這個主要是因為 裝有虛擬區域網軟體,網內伺服器與外面分部的連線,不需要顯示。 當然這裡的埠可以根據實際情況換掉

接下來,我(隔了一天接著寫)我從看到的資訊裡面發現有頻繁連線外面5050的連線,google搜尋了下5050是什麼埠,發現跟dudu.com中的一個軟體有關係。接著我又開個term,tcpdump dst port 5050 ,這樣又可以同時看到那些具體連線外面5050埠的機子。我的過程中就發現只有一臺機子更這個聯絡。最後在那臺機子上果然發現以前安裝的一個dudu校友錄軟體的服務在後臺執行。

透過這個經歷,發現tcpdump果然很強大,只要靈活運用,作用還真的很大。雖然,我寫的帖子沒有什麼深奧的地方,也很簡單。 之所以寫這個東西,不是來說明什麼,只是想對一些想了解卻總不明白的兄弟一點點啟發。 要舉一反三哦

Linux下網路分析例解

Linux作為網路伺服器,特別是作為路由器和閘道器時,資料的採集和分析是必不可少的。所以,今天我們就來看看Linux中強大的網路資料採集分析工具 ——TcpDump。

顧名思義,TcpDump可以將網路中傳送的資料包的“頭”完全截獲下來提供分析。它支援針對網路層、協議、主機、網路或埠的過濾,並提供and、 or、not等邏輯語句來幫助你去掉無用的資訊。和Linux終端狀態下的其他軟體一樣,TcpDump也是依靠引數來工作,本文將結合例項來說明。資料過濾不帶任何引數的TcpDump將搜尋系統中所有的網路介面,並顯示它截獲的所有資料,這些資料對我們不一定全都需要,而且資料太多不利於分析。所以,我們應當先想好需要哪些資料,TcpDump提供以下引數供我們選擇資料:

-b 在資料-鏈路層上選擇協議,包括ip、arp、rarp、ipx都是這一層的。

例如:tcpdump -b arp 將只顯示網路中的arp即地址轉換協議資訊。

-i 選擇過濾的網路介面,如果是作為路由器至少有兩個網路介面,透過這個選項,就可以只過濾指定的介面上透過的資料。例如: tcpdump -i eth0 只顯示透過eth0介面上的所有報頭。

src、 dst、port、host、net、ether、gateway這幾個選項又分別包含src、dst 、port、host、net、ehost等附加選項。他們用來分辨資料包的來源和去向,src host 192.168.0.1指定源主機IP地址是192.168.0.1,dst net 192.168.0.0/24指定目標是網路192.168.0.0。以此類推,host是與其指定主機相關無論它是源還是目的,net是與其指定網路相關的,ether後面跟的不是IP地址而是實體地址,而gateway則用於閘道器主機。可能有點複雜,看下面例子就知道了: tcpdump src host 192.168.0.1 and dst net 192.168.0.0/24 過濾的是源主機為192.168.0.1與目的網路為192.168.0.0的報頭。 tcpdump ether src 00:50:04:BA:9B and dst…… 過濾源主機實體地址為XXX的報頭(為什麼ether src後面沒有host或者net?實體地址當然不可能有網路嘍)。 Tcpdump src host 192.168.0.1 and dst port not telnet 過濾源主機192.168.0.1和目的埠不是telnet的報頭。 ip icmp arp rarp 和 tcp、udp、icmp這些選項等都要放到第一個引數的位置,用來過濾資料包的型別。例如: tcpdump ip src…… 只過濾資料-鏈路層上的IP報頭。 tcpdump udp and src host 192.168.0.1 只過濾源主機192.168.0.1的所有udp報頭。 資料顯示/輸入輸出 TcpDump提供了足夠的引數來讓我們選擇如何處理得到的資料,如下所示:

-l 可以將資料重定向。 如tcpdump -l >tcpcap.txt將得到的資料存入tcpcap.txt檔案中。

-n 不進行IP地址到主機名的轉換。如果不使用這一項,當系統中存在某一主機的主機名時,TcpDump會把IP地址轉換為主機名顯示,就像這樣:eth0 < ntc9.1165> router.domain.net.telnet,使用-n後變成了:eth0 < 192.168.0.9.1165 > 192.168.0.1.telnet。

-nn 不進行埠名稱的轉換。 上面這條資訊使用-nn後就變成了:eth0 < ntc9.1165 > router.domain.net.23。

-N 不列印出預設的域名。 還是這條資訊-N 後就是:eth0 < ntc9.1165 > router.telnet。 -O 不進行匹配程式碼的最佳化。

-t 不列印UNIX時間戳,也就是不顯示時間。

-tt 列印原始的、未格式化過的時間。

-v 詳細的輸出,也就比普通的多了個TTL和服務型別。好了,說了這麼多,是不是覺得TcpDump這個工具很好?它還有好多功能限於篇幅不能一一介紹,多讀一讀“幫助”都會有很大的收穫,這也算是進入 Linux世界的一條捷徑吧

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-942664/,如需轉載,請註明出處,否則將追究法律責任。

相關文章