windump介紹
Windump是Windows環境下一款經典的網絡協定分析軟體,其Unix版本名稱為Tcpdump。它可以捕捉網絡上兩台電腦之間所有的資料包,供網絡管理者/入侵分析員做進一步流量分析和入侵檢測。在這種監視狀态下,任何兩台電腦之間都沒有秘密可言,所有的流量、所有的資料都逃不過你的眼睛(當然加密的資料不在讨論範疇之内,而且,對資料包分析的結果依賴于你的TCP/IP知識和經驗,不同水準的人得出的結果可能會大相徑庭)。如果你做過 DEBUG或者反彙編,你會發現二者是那麼驚人的相似。在W.Richard Stevens的鼎鼎大作《TCP/IP詳解》卷一中,通篇采用Tcpdump捕捉的資料包來向讀者講解TCP/IP;而當年美國最出色的電腦安全專家下村勉在追捕世界頭号黑客米特尼克時,也使用了Tcpdump,Tcpdump/Windump的價值由此可見一斑。
windump下載下傳位址: http://www.hackbase.com/soft/2003-12-23/15431.html(還必須安裝winpacap哦)
Windump的用法
1.下載下傳解壓縮後放入*盤,打開指令提示符,進入*盤,即可輸入相應的指令使用。
2.運作windump -D 可列出目前系統中所有可使用的網絡界面。
3.要使用專門的配置器,用-i指令和配置器号運作程式。
windump手冊
指令格式
windump [ -aBdDeflnNOpqRStvxX ] [ -c count ] [ -F file ]
[ -i interface ] [ -m module ] [ -r file ]
[ -s snaplen ] [ -T type ] [ -w file ]
[ -E algo:secret ] [ expression ]
描述
Tcpdump 輸出網卡資料包中比對布爾表達式的資料標頭。
SunOS 系統下使用nit或bpf:要運作tcpdump,你必須有對dev/nit或/dev/bpf*的權利。Solaris系統下使用dlpi:你必須有對網絡假設定的權利。HP-UX系統下使用dlpi:你應該以超級使用者ROOT或安裝SETUID到ROOT下。IRIX下使用SNOOP:你應該以超級使用者ROOT或安裝SETUID到ROOT下。LINUX下:你應該以超級使用者ROOT或安裝SETUID到ROOT下。在系統Ultrix和 Digital UNIX:
指令參數
-a
将網絡和廣播位址轉化為名稱
-c
接收指定資料包後退出
-d
接收人可讀的包比對編譯代碼到标準輸出,然後停止
-dd
以C程式分段方式捕獲包比對代碼
-ddd
以十進制資料形式捕獲包比對代碼
-e
在每個捕獲行列印鍊路層頭标
-E
algo:secret為解密IPSE ESP包使用算法。算法可以是des-cbc, 3des-cbc, blowfish-cbc, rc3-cbc, cast128-cbc, 或none。預設值是desc-cbc。隻有當TCPDUMP編譯時使用激活加密選項時,才可以解密資料包。Secret是ESP密匙是ASCII碼。目前還不能認為一定是二進制值。該選項是以RFC2406ESP為假設,而不是RFC1827 ESP。隻用于調試,不鼓勵用真正的密碼作為選項。當你在PS或其他場合,把IPSEC密碼寫在指令行上時,會被他人看到。
-f
不用符号而用數字方式輸出外部英特網位址
-F
使用檔案作為過濾表達式的輸入。指令行的其他部分會被忽略。
-i
在接口上監聽。如果沒有指定,TCPDUMP将搜尋系統接口清單中最小,被配置激活的接口(LOOPBACK接口除外)。可用最先比對替換這種關系。在WINDOWS中接口可以是網卡的名稱,或是網卡的号碼(-D參數可顯示該号碼)。核心為2。2或其後的LINUX系統,參數“ANY”可以擷取所有接口的資料。應注意的是在混亂模式下不能使用“ANY”參數。
-l
标準輸出行緩存。如果你想在捕獲資料時檢視的話,這個參數很有用。例如:“tcpdump -l │ tee dat or ``tcpdump -l > dat & tail -f dat.”
-n
不要将位址(如主機位址,端口号)轉換為名稱
-N
不要列印主機名稱的域名限定。如:如果你使用該參數,TCPDUMP會輸出“NIC”而不是“NIC。DDN。MIL”。
-m
從檔案子產品中載入SMI MIB 子產品定義。這個選項可以為TCPDUMP載入多個MIB子產品
-O
不要運作包比對代碼優化器。隻有在你懷疑優化器有問題時可以使用這個參數。
-p
不要讓接口處于“混亂”模式。注意接口可能由于其他原因處于“混亂”模式;是以“-p”不能用作以太網絡主機或廣播的縮寫。
-q
快速(安靜?)輸出。列印較少的協定資訊,是以輸出行更短。
-r
從檔案中讀取包(與參資料-W一起使用)。如果檔案是“-”就使用标準輸入。
-s
不使用預設的68個位元組,更改從每個包中擷取資料的位元組數量( SunOS系統實際最小為96)。對于IP,ICMP,TCP和UDP包68個位元組已足夠,但是對命名服務和NFS包,他們的協定會被截斷(見下面)。包被截斷是因為在使用參數``[│proto]輸出時指定受限制的快照,proto是被截斷協定層的名稱。注意如果使用大的快照會增加處理包的時間,并且明顯地減少包的緩存數量。也許會導緻包的丢失。你應該将snaplen 設定成你感興趣協定的最小數。當snaplen 為0時接收整個包。
-T
根據表達式将選中的資料包表達成指定的類型。目前已有的類型有CNFP(Cisco的網絡流量協定),rpc(遠端程式調用),rtp(實時程式協定),rtcp(實時程式控制協定),snmp(簡單網絡管理協定),vat(可視單頻工具),和wb(分布式白闆)。
-R
假設ESP/AH包遵守舊的說明(RFC1825到RFC1829)。如果該參數被指定,TCPDUMP不打輸出域。因為在ESP/AH說明中沒有協定版本,TCPDUMP就無法推斷出其版本号。
-S
輸出絕對TCP序列号,而不是相對号。
-t
每個捕獲行不要顯示時間戳。
-tt
每個捕獲行顯示非格式化的時間時間戳。
-v
詳細輸出。例如,顯示生存時間TTL,辨別符,總長度和IP資料包的選項。也進行額外的包完整性較驗,如驗證IP和ICMP的頭标較驗值。
-vv
更為詳細的輸出。例如,顯示NFS中繼包中的其他域。
-vvv
很詳細的輸出。如,完全輸出TELNET SB… SE選項。帶-X參數的TELNET,列印并以十六進制輸出。
-w
不對原始資料包解析列印而是轉到檔案中去。以後可用-r選項列印。當檔案名為“-”表示标準輸出。
-x
以十六進制(去除鍊路層頭标)輸出每個資料包。輸出整個包的小部分或snaplen 個位元組。
-X
輸出十六進制同時,輸出ASCII碼。如果-x也被設定,資料包會以十六制/ASCII碼顯示。這對于分析新協定非常友善。如果-x也沒有設定,一些資料包的部分會以十六制/ASCII碼顯示。
Win32特殊擴充
-B
以千位元組為機關設定驅動緩存。預設緩存為1M(即1000)。如果在擷取資料包時有資料丢失,建議使用該參數增大核心緩存大小,因為驅動緩存大小對資料捕獲性能有很大影響。
-D
顯示系統上可用的網卡清單。該參數将傳回每塊網卡的号碼,名稱和描述。使用者可以輸入“WinDump –i 網卡名稱”或“WinDump –i 網卡号碼”。如果機器有多塊網卡,不帶參數的WINDUMP指令會從系統的第一塊可用網卡開始。
表達式
選擇哪些包被捕獲。如果沒有指定表達式,會捕獲所有在網絡中的資料包。否則隻獲捕表達式為真的資料包。
表達式由一個或多個原語組成。原語通常由一個ID(名稱或号碼)前面加一個或多個限定詞組成。有三種不同的限定詞。
類型
限定詞指出id,名稱或号碼屬于哪種類型。可能的類型包括:host,net和port。如’host foo’, `net 128.3', `port 20'. 如果沒有指定類型,假設為host。
方向
限定詞指出特定的傳輸方向,是從id傳來還是傳到id。可能方向是src, dst, src or dst 和 src and dst。例如`src foo', `dst net 128.3', `src or dst port ftp-data'。如果沒有方向限定詞将指定src or dst。對于‘空’鍊路層(像SLIP這樣的點到點協定),可以用inbound和outbound 限定詞指明需要的方向。
協定
限定詞限定比對某類特定的協定。可能的協定有:ether, fddi, tr, ip, ip6, arp, rarp, decnet, tcp和udp。如`ether src foo', `arp net 128.3', `tcp port 21'。如沒指定協定,則假設比對所有協定。如`src foo' 指 `(ip or arp or rarp) src foo' (但後面的表達式不合法法)(except the latter is not legal syntax), `net bar' 指 `(ip or arp or rarp) net bar' 和 `port 53' 指 `(tcp or udp) port 53'。
`fddi' 實際上是’ether’的别名;解析器會認為兩者都是指“指定接口中使用的資料鍊路層”FDDI頭标包括類似以太網的源和目的位址,經常包含類似以太網的包類型,是以你可像對以太網字段一樣過濾FDDI域。FDDI頭标也包括其他域,但你不能在表達式中直接使用他們。
同樣’tr’也是’ether’的别名;前一段FDDI頭标的情況也适用于令牌環網頭标。
除了以上所講的,還有一些特殊的原語關鍵字不使用這種方式:gateway, broadcast, less, greater 和算術表達式,都描述如下:
通過使用and, or和 not 結合原語,構成更複雜的過濾表達式。如`host foo and not port ftp and not port ftp-data'。為了減少輸入,可以忽略相同的限定詞清單。如`tcp dst port ftp or ftp-data or domain' 實際等同于 `tcp dst port ftp or tcp dst port ftp-data or tcp dst port domain'.