Windump

Windump

Windump是Windows環境下一款經典的網路協定分析軟體,其Unix版本名稱為Tcpdump。它可以捕捉網路上兩台電腦之間所有的數據包,供網路管理員/入侵分析員做進一步流量分析和入侵檢測。但對數據包分析的結果依賴於你的TCP/IP知識和經驗,不同水平的人得出的結果可能會大相逕庭。其與DEBUG或反彙編很相似。在W.Richard Stevens的大作《TCP/IP詳解》卷一中,通篇採用Tcpdump捕捉的數據包來向讀者講解TCP/IP。當年美國最出色的電腦安全專家下村勉在追捕世界頭號黑客米特尼克時,也使用了Tcpdump,Tcpdump/Windump的價值由此可見一斑。

基本介紹

  • 軟體名稱:Windump
  • 性質:經典的網路協定分析軟體
  • Unix版本名稱:Tcpdump
  • 類型:免費軟體
用法,驅動下載,運行,參數,使用,TCP的三步握手,第一行,第二行,第三行,握手不成功,

用法

驅動下載

我們正式開始介紹Windump。該軟體是免費軟體,命令行下面使用,需要WinPcap驅動,Windump的下載非常方便,很多站點都有,擴展連結里也提供了一個地址。

運行

現在我們打開一個命令提示符,運行windump後出現:
D:\tools>windump
windump: listening on \Device\NPF_{3B4C19BE-6A7E-4A20-9518-F7CA659886F3}
這表示windump正在監聽我的網卡,網卡的設備名稱是:
\Device\NPF_{3B4C19BE-6A7E-4A20-9518-F7CA659886F3}
如果你看見螢幕上顯示出這個信息,說明你的winpcap驅動已經正常安裝,否則請下載並安裝正確的驅動。

參數

Windump的參數很多,運行windump -h可以看到:
Usage: windump
[-aAdDeflnNOpqRStuvxX]
[-B size]
[-c count]
[ -C file_size ]
[ -F file ]
[ -i interface ]
[ -r file ]
[ -s snaplen ]
[ -T type ]
[ -w file ]
[ -E algo:secret ]
[ expression ]

使用

TCP的三步握手

下面我來結合TCP的三步握手來介紹Windump的使用,請接著往下看:
D:\tools>windump -n
windump: listening on \Device\NPF_{3B4C19BE-6A7E-4A20-9518-F7CA659886F3}
09:32:30.977290 IP 192.168.0.226.3295 > 192.168.0.10.80: S 912144276:912144276(0) win 64240 <mss 1460,nop,nop,sackOK> (DF)//第一行
09:32:30.978165 IP 192.168.0.10.80 > 192.168.0.226.3295: S 2733950406:2733950406(0) ack 912144277 win 8760 <nop,nop,sackOK,mss 1460> (DF)//第二行
09:32:30.978191 IP 192.168.0.226.3295 > 192.168.0.10.80: . ack 1 win 64240 (DF)//第三行

第一行

先看第一行。
其中09:32:30.977290表示時間;
192.168.0.226為源IP位址,連線埠3295,其實就是我自己的那台電腦;192.168.0.10是目的地址,連線埠80,我們可以判斷這是連線在遠程主機的WEB服務上面;
S 912144276:912144276(0)表示我的電腦主動發起了一個SYN請求,這是第一步握手,912144276是請求端的初始序列號;
win 64240 表示發端通告的視窗大小;
mss 1460表示由發端指明的最大報文段長度。
這一行所表示的含義是IP位址為192.168.0.226的電腦向IP位址為192.168.0.10的電腦發起一個TCP的連線請求。

第二行

接下來我們看第二行,時間不說了;
源IP位址為192.168.0.10,而目的IP位址變為192.168.0.226;
後面是S 2733950406:2733950406(0) ack 912144277,這是第二步握手,2733950406是伺服器端所給的初始序列號,ack 912144277是確認序號,是對第一行中客戶端發起請求的初始序列號加1。
該行表示伺服器端接受客戶端發起的TCP連線請求,並發出自己的初始序列號。

第三行

再看第三行,這是三步握手的最後一步,客戶端傳送ack 1,表示三步握手已經正常結束,下面就可以傳送數據了。

握手不成功

在這個例子裡面,我們使用了-n的參數,表示源地址和目的地址不採用主機名的形式顯示而採用IP位址的形式。下面我們再來看看如果三步握手不成功會是怎么樣。我先telnet到一台沒有開telnet服務的計算機上面:
C:\Documents and Settings\Administrator>telnet 192.168.0.10
正在連線到192.168.0.10...不能打開到主機的連線, 在連線埠 23.
由於目標機器積極拒絕,無法連線。
這個時候我們再看windump所抓獲的數據包:
D:\tools>windump -n
windump: listening on \Device\NPF_{3B4C19BE-6A7E-4A20-9518-F7CA659886F3}
10:38:22.006930 arp who-has 192.168.0.10 tell 192.168.0.226//第三行
10:38:22.007150 arp reply 192.168.0.10 is-at 0:60:8:92:e2:d//第四行
10:38:22.007158 IP 192.168.0.226.3324 > 192.168.0.10.23: S 1898244210:1898244210
(0) win 64240 <mss 1460,nop,nop,sackOK> (DF)
//第五行
10:38:22.007344 IP 192.168.0.10.23 > 192.168.0.226.3324: R 0:0(0) ack 1898244211 win 0
//第六行
10:38:22.478431 IP 192.168.0.226.3324 > 192.168.0.10.23: S 1898244210:1898244210(0) win 64240 <mss 1460,nop,nop,sackOK> (DF)
10:38:22.478654 IP 192.168.0.10.23 > 192.168.0.226.3324: R 0:0(0) ack 1 win 0
10:38:22.979156 IP 192.168.0.226.3324 > 192.168.0.10.23: S 1898244210:1898244210
(0) win 64240 <mss 1460,nop,nop,sackOK> (DF)
10:38:22.979380 IP 192.168.0.10.23 > 192.168.0.226.3324: R 0:0(0) ack 1 win 0
從第三行中,我們可以看見192.168.0.226因為不知道192.168.0.10的MAC地址,所以首先傳送ARP廣播包;在第四行中,192.168.0.10回應192.168.0.226的請求,告訴192.168.0.226它的MAC地址是0:60:8:92:e2:d。
第五行中,192.168.0.226向192.168.0.10發起SYN請求,但在第六行中,我們可以看見,因為目標主機拒絕了這一請求,故傳送R 0:0(0)的回響,表示不接受192.168.0.226的請求。在接下來的幾行中我們看見192.168.0.226連續向192.168.0.10傳送SYN請求,但都被目標主機拒絕。

相關詞條

熱門詞條

聯絡我們