史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > Hacker/Cracker 及加解密技術文件
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2004-01-09, 09:41 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 Sniffer 一般問題集(FAQ)

發佈日期: 2000-1-15
內容:
--------------------------------------------------------------------------------

By backend <backend@antionline.org>
http://www.nsfocus.com/


本文是ISS公司在幾年前發佈的一份Sniffer FAQ。雖然裡面涉及的技術可能相對陳舊了一些,但仍然可作為入門級我的文件。希望這份Sniffer FAQ能夠說明 管理員們對網路監聽及解決方法有一個較為清楚的認識。Sniffer已成為當今網際網路上最一般的主機入侵手段之一。
在綠盟網路安全月刊中,我還將陸續介紹Sniffer、Sniffer的剋星——Anti-Sniffer和Anti-Sniffer的剋星——Anti Anti-Sniffer。希望對這方面有興趣的朋友如果有些什麼好資料或建議,請與我聯繫。


FAQ目錄:

* 什麼是sniffer及其工作原理
* 哪裡可以得到sniffer
* 如何監測主機正在竊聽(sniffed)
* 阻止sniffer
o 主動集線器
o 加密
o Kerberos
o 一次性密碼技術
o 非混雜模式網路接頭設備
-------------------------------------------------------------------------------

什麼是sniffer及其工作原理

與電話電路不同,電腦網路是共享通訊通道的。支持每對通訊電腦獨佔通道的交換機/集線器仍然過於昂貴。共享意味著電腦能夠接收到傳送給其它電腦的信息。捕獲在網路中傳輸的資料信息就稱為sniffing(竊聽)。

乙太網是現在套用最廣泛的電腦連網方式。乙太網傳輸協定是在同一回路向所有主機傳送資料包信息。資料包頭包含有目標主機的正確位址。一般情況下只有具有該位址的主機會接受這個資料包。如果一台主機能夠接收所有資料包,而不理會資料包頭內容,這種方式通常稱為「混雜」模式。

由於在一個普通的網路環境中,帳號和密碼信息以明文方式在乙太網中傳輸,一旦入侵者獲得其中一台主機的root權限,並將其置於混雜模式以竊聽網路資料,從而有可能入侵網路中的所有電腦。

-------------------------------------------------------------------

哪裡可以得到sniffer

Sniffer是黑客們最常用的入侵手段之一。例如Esniff.c,是一個小巧的工具,執行在SunOS平台,可捕獲所有telnet、ftp、rloing會話的前300個字元內容。這個由Phrack開發的程序已成為在黑客中傳播最廣泛的工具之一。

你可以在經過允許的網路中執行Esniff.c,瞭解它是如何有效地危及本機機器安全。

以下是一些也被廣泛用於偵錯網路故障的sniffer工具:

* Etherfind on SunOs
* Snoop on Solaris 2.x and SunOs
* Tcpdump
* Packetman, Interman, Etherman, Loadman
商用sniffer:

* Network General.

Network General開發了多種產品。最重要的是Expert Sniffer,它不僅僅可以sniff,還能夠通過高效能的專門系統傳送/接收資料包,說明 診斷故障。還有一個增強產品"Distrbuted Sniffer System"可以將UNIX工作站作為sniffer控制台,而將sniffer agents(代理)分佈到遠端主機上。

* Microsoft's Net Monitor

對於某些商業站點,可能同時需要執行多種傳輸協定——NetBEUI、IPX/SPX、TCP/IP、802.3和SNA等。這時很難找到一種sniffer說明 解決網路問題,因為許多sniffer往往將某些正確的傳輸協定資料包當成了錯誤資料包。Microsoft的Net Monitor(以前叫Bloodhound)
可以解決這個難題。它能夠正確區分諸如Netware控制資料包、NT NetBios名字服務廣播等獨特的資料包。(etherfind只會將這些資料包標識為類型0000的廣播資料包。)這個工具執行在MS Windows 平台上。它甚至能夠按MAC位址(或主機名)進行網路統計和會話信息監視。只需簡單地按下某個會話即可獲得tcpdump標準的輸出。
過濾器設定也是最為簡單的,只要在一個對話視窗中按下需要監視的主機即可。

--------------------------------------------------------------------

如何監測主機正在竊聽(sniffed)

要監測只採集資料而不對任何信息進行回應的竊聽設備,需要逐個仔細檢查乙太網上所有物理連接。

不可能通過遠端傳送資料包或ping就可以檢查電腦是否正在竊聽。

一個主機上的sniffer會將網路接頭置為混雜模式以接收所有資料包。對於某些UNIX系統,通過監測到混雜模式的網路接頭。雖然可以在非混雜模式下執行sniffer,但這樣將只能捕獲本機會話。入侵者也可能通過在諸如sh、telnet、rlogin、in.telnetd等程序中捕獲會話,並將用戶操作記錄到其它文件中。這些都可能通過監視tty和kmem等設備輕易發現。只有混雜模式下的sniffing才能捕獲乙太網中的所有會話,其它模式只能捕獲本機會話。

對於SunOS、NetBSD和其它BSD Unix系統,如下指令:

"ifconfig -a"

會顯示所有網路接頭信息和是否在混雜模式。DEC OSF/1和IRIX等系統需要指定設備。要找到系統中有什麼網路接頭,可以執行如下指令:

# netstat -r
Routing tables
Internet:
Destination Gateway Flags Refs Use Interface
default iss.net UG 1 24949 le0
localhost localhost UH 2 83 lo0
然後通過如下指令檢查每個網路接頭:

#ifconfig le0
le0: flags=8863
inet 127.0.0.1 netmask 0xffffff00 broadcast 255.0.0.1
入侵者經常會替換ifconfig等指令來避開檢查,因此一定要檢查指令程序的校驗值。

在ftp.cert.org:/pub/tools/的cpm程序(SunOS平台)可以檢查接頭是否有混雜模式標記。

對於Ultrix系統,使用pfstat和pfconfig指令也可能監測是否有sniffer執行。

pfconfig指定誰有權限執行sniffer。

pfstat顯示網路接頭是否處於混雜模式。

這些指令只在sniffer與內核存在連結時有效。而在預設情況,sniffer是沒有與內核連結的。大多數的Unix系統,例如Irix、Solaris、SCO等,都沒有任何標記來指示是否處於混雜模式,因此入侵者能夠竊聽整個網路而卻無法監測到它。

通常一個sniffer的記錄文件會很快增大並填滿文件空間。在一個大型網路中,sniffer明顯加重機器負荷。這些警告信息往往能夠說明 管理員發現sniffer。建議使用lsof程序搜尋訪問資料包設備(如SunOS的/dev/nit)的程序和記錄文件。

------------------------------------------------------------------

阻止sniffer

主動式集線器只向目標位址主機傳送資料包,從而使混雜模式sniffer失效。它僅適用於10Base-T乙太網。(註:這種現在已在電腦市場消失。)

只有兩家廠商曾生產過主動式集線器:

* 3Com
* HP
隨著交換機的成本和價格的大幅度降低,交換機已成為非常有效的使sniffer失效的設備。目前最一般的交換機在第三層(網路層)根據資料包目標位址進行轉發,而不太採取集線器的廣播方式,從而使sniffer失去了用武之地。

------------------------------------------------------------------

加密

目前有許多軟體包可用於加密連接,從而使入侵者即使捕獲到資料,但無法將資料解密而失去竊聽的意義。

以下是以前常用的一些軟體包

* deslogin
coast.cs.purdue.edu:/pub/tools/unix/deslogin .

* swIPe
ftp.csua.berkeley.edu:/pub/cypherpunks/swIPe/

* Netlock

-----------------------------------------------------------------

Kerberos

Kerberos是另一個加密網路中帳號信息的軟體包。它的缺點是所有帳號信息都存放在一台主機中,如果該主機被入侵,則會危及整個網路安全。另外配置它也不是一件簡單的事情。Kerberos包括流加密rlogind和流加密telnetd等,它可以防止入侵者捕獲用戶在登入完成後所進行的操作。

Kerberos FAQ可從ftp站點rtfm.mit.edu中得到:
/pub/usenet/comp.protocols/kerberos/Kerberos_Users__Frequently_Asked_Questions_1.11

------------------------------------------------------------------

一次性密碼技術

S/key和其它一次性密碼技術一樣,使竊聽帳號信息失去意義。S/key的原理是遠端主機已得到一個密碼(這個密碼不會在不安全的網路中傳輸),當用戶連接時會獲得一個「挑戰」(challenge)信息,用戶將這個信息和密碼經過某個算法運算,產生正確的「回應」(response)信息(如果通訊雙方密碼正確的話)。這種驗證方式無需在網路中傳輸密碼,而且相同的「挑戰/回應」也不會出現兩次。S/key可從以下網址得到:ftp://thumper.bellcore.com/pub/nmh/skey

還有一種一次性密碼技術是ID卡系統。每個授權用戶都有一個產生用於訪問各自帳號的數字號碼的ID卡。如果沒有這個ID卡,不可能猜出這個數字號碼。

以下是提供這類解決方案的公司資料:

Secure Net Key (SNK)

Digital Pathways, Inc.
201 Ravendale Dr. Mountainview, Ca.
97703-5216 USA

Phone: 415-964-0707 Fax: (415) 961-7487

Secure ID

Security Dynamics,
One Alewife Center
Cambridge, MA 02140-2312
USA Phone: 617-547-7820
Fax: (617) 354-8836
Secure ID uses time slots as authenication rather than challenge/response.

ArKey and OneTime Pass

Management Analytics
PO Box 1480
Hudson, OH 44236
Email: fc@all.net
Tel:US+216-686-0090 Fax: US+216-686-0092

WatchWord and WatchWord II

Racal-Guardata
480 Spring Park Place
Herndon, VA 22070
703-471-0892
1-800-521-6261 ext 217

CRYPTOCard

Arnold Consulting, Inc.
2530 Targhee Street, Madison, Wisconsin
53711-5491 U.S.A.
Phone : 608-278-7700 Fax: 608-278-7701
Email: Stephen.L.Arnold@Arnold.Com
CRYPTOCard is a modern, SecureID-sized, SNK-compatible device.

SafeWord

Enigma Logic, Inc.
2151 Salvio #301
Concord, CA 94520
510-827-5707 Fax: (510)827-2593
For information about Enigma ftp to: ftp.netcom.com in directory
/pub/sa/safeword

Secure Computing Corporation:

2675 Long Lake Road
Roseville, MN 55113
Tel: (612) 628-2700
Fax: (612) 628-2701
debernar@sctc.com

----------------------------------------------------------------

非混雜模式網路接頭設備

以前,大多數IBM DOS相容機器的網路卡都不支持混雜模式,所以無法進行sniffing。但DOS已退出電腦網路舞台,對於現在電腦市場中的網路接頭設備,請向供應商查詢是否為非混雜模式設備(即不支持混雜模式)。


<< 完 >>

------------------------------------
資料來源:
Internet Security Systems, Inc.
------------------------------------


Linux環境下黑客常用嗅探器分析

發佈日期: 2001-8-23
內容:
--------------------------------------------------------------------------------


作者:<>
來源http://linuxaid.com.cn/
--------------------------------------------------------------------------------


概述
本文對Linux環境下黑客常常使用的幾種嗅探器進行詳細的分析,這些嗅探器往往被入侵者完成入侵以後種植在受害者伺服器當中。這些嗅探器各自有不同的特點,有的只是簡單的用來捕捉用戶名和密碼,有的則非常強大可記錄所有的網路資料流。本文將對下面幾種嗅探器進行分析:

*linsniffer
*linuxsniffer
*hunt
*sniffit
linsniffer
linsniffer是一個簡單實用的嗅探器。它主要的功能特點是用來捕捉用戶名和密碼,它在這方面非常出色。

作者:Mike Edulla
條件: C和IP頭文件
配置文件:無
位置:http://agape.trilidun.org/hack/netwo...rs/linsnifferc
安全歷史: 無
注: 易於使用。但是lnsniffer需要完整的IP頭文件,包括常常存儲在/usr/include/net和 /usr/include/netinet的頭文件,在編譯前確保PATH變數包含/usr/include。

使用下面的指令來編譯lnsniffer:

$cc linsniffer.c -o linsniffer
要執行linsniffer,使用下面的指令:

$linsniffer

啟動以後linsniffer將新增一個空文件:tcp.log來存儲嗅探結果。

在測試中我新增一個名為hapless的用戶,密碼為unaware。然後使用該用戶來登入Linux伺服器,並進行一些一般的用戶操作。下面是進行的一次ftp程序:

GNSS $ ftp 192.168.0.2
Connected to 192.168.0.2.

220 linux.test.net FTP server Wed Aug 19 02:55:52 MST 1998) ready.

Name (192.168.0.2:root): hapless
331 Password required for hapless.
Password:
230 User hapless logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls -al
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 14
drwxrwxr-x 4 hapless hapless 1024 May 20 19:35 .
drwxr-xr-x 6 root root 1024 May 20 19:28 ..
-rw-rw-r-- 1 hapless hapless 96 May 20 19:56 .bash_history
-rw-r--r-- 1 hapless hapless 49 Nov 25 1997 .bash_logout
-rw-r--r-- 1 hapless hapless 913 Nov 24 1997 .bashrc
-rw-r--r-- 1 hapless hapless 650 Nov 24 1997 .cshrc
-rw-r--r-- 1 hapless hapless 111 Nov 3 1997 .inputrc
-rwxr-xr-x 1 hapless hapless 186 Sep 1 1998 .kshrc
-rw-r--r-- 1 hapless hapless 392 Jan 7 1998 .login
-rw-r--r-- 1 hapless hapless 51 Nov 25 1997 .logout
-rw-r--r-- 1 hapless hapless 341 Oct 13 1997 .profile
-rwxr-xr-x 1 hapless hapless 182 Sep 1 1998 .profile.ksh
drwxr-xr-x 2 hapless hapless 1024 May 14 12:16 .seyon
drwxr-xr-x 3 hapless hapless 1024 May 14 12:15 lg
226 Transfer complete.
ftp> ls
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 14
drwxrwxr-x 4 hapless hapless 1024 May 20 19:35 .
drwxr-xr-x 6 root root 1024 May 20 19:28 ..
-rw-rw-r-- 1 hapless hapless 96 May 20 19:56 .bash_history
-rw-r--r-- 1 hapless hapless 49 Nov 25 1997 .bash_logout
-rw-r--r-- 1 hapless hapless 913 Nov 24 1997 .bashrc
-rw-r--r-- 1 hapless hapless 650 Nov 24 1997 .cshrc
-rw-r--r-- 1 hapless hapless 111 Nov 3 1997 .inputrc
-rwxr-xr-x 1 hapless hapless 186 Sep 1 1998 .kshrc
-rw-r--r-- 1 hapless hapless 392 Jan 7 1998 .login
-rw-r--r-- 1 hapless hapless 51 Nov 25 1997 .logout
-rw-r--r-- 1 hapless hapless 341 Oct 13 1997 .profile
-rwxr-xr-x 1 hapless hapless 182 Sep 1 1998 .profile.ksh
drwxr-xr-x 2 hapless hapless 1024 May 14 12:16 .seyon
drwxr-xr-x 3 hapless hapless 1024 May 14 12:15 lg
226 Transfer complete.
ftp> ls -F
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 14
drwxrwxr-x 4 hapless hapless 1024 May 20 19:35 ./
drwxr-xr-x 6 root root 1024 May 20 19:28 ../rw-rw-r-- 1 hapless hapless 96 May 20 19:56 .bash_history
-rw-r--r-- 1 hapless hapless 49 Nov 25 1997 .bash_logout
-rw-r--r-- 1 hapless hapless 913 Nov 24 1997 .bashrc
-rw-r--r-- 1 hapless hapless 650 Nov 24 1997 .cshrc
-rw-r--r-- 1 hapless hapless 111 Nov 3 1997 .inputrc
-rwxr-xr-x 1 hapless hapless 186 Sep 1 1998 .kshrc*
-rw-r--r-- 1 hapless hapless 392 Jan 7 1998 .login
-rw-r--r-- 1 hapless hapless 51 Nov 25 1997 .logout
-rw-r--r-- 1 hapless hapless 341 Oct 13 1997 .profile
-rwxr-xr-x 1 hapless hapless 182 Sep 1 1998 .profile.ksh*
drwxr-xr-x 2 hapless hapless 1024 May 14 12:16 .seyon/
drwxr-xr-x 3 hapless hapless 1024 May 14 12:15 lg/
226 Transfer complete.
ftp> cd lg
250 CWD command successful.
ftp> ls -F
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 8
drwxr-xr-x 3 hapless hapless 1024 May 14 12:15 ./
drwxrwxr-x 4 hapless hapless 1024 May 20 19:35 ../rw-r--r-- 1 hapless hapless 70 Aug 22 1998 lg3_colors
-rw-r--r-- 1 hapless hapless 629 Aug 22 1998 lg3_prefs
-rw-r--r-- 1 hapless hapless 728 Aug 22 1998 lg3_soundPref
-rw-r--r-- 1 hapless hapless 2024 Aug 22 1998 lg3_startup
drwxr-xr-x 2 hapless hapless 1024 May 14 12:15 lg_layouts/
226 Transfer complete.
ftp> cd lg_layouts
250 CWD command successful.

這是一個典型的用戶操作程序。現在我們看看linsniffer產生的嗅探結果:

gnss => linux.test.net [21]
USER hapless
PASS unaware
SYST
PORT 172,16,0,1,4,192
LIST -al
PORT 172,16,0,1,4,193
LIST
PORT 172,16,0,1,4,194
LIST -F
CWD lg
PORT 172,16,0,1,4,195
LIST -F

輸出的內容是很直觀的。首先它記錄這是從GNSS到Linux主機的FTP連接:

gnss => linux.test.net [21]

然後,linsniffer捕獲了hapless的用戶名和密碼。

USER hapless
PASS unaware

最後,linsniffer記錄了hapless使用的每一個指令:

SYST
PORT 172,16,0,1,4,192
LIST -al
PORT 172,16,0,1,4,193
LIST
PORT 172,16,0,1,4,194
LIST -F
CWD lg
PORT 172,16,0,1,4,195
LIST -F

輸出結果非常簡介並且非常適於竊聽密碼及記錄一般的活動。但是不適合於進行更加複雜的分析。這時候你也許會需要linux_sniffe。

linux_sniffer

linux_sniffer提供相對更複雜的探測結果。

作者:loq
要求:C和IP頭文件
配置文件:無
下載位置:http://www.ryanspc.com/sniffers/linux_sniffer.c.
安全歷史:無
注意:linux_sniffer易於使用,但是需要完全的IP頭文件。

使用下面指令編譯linux_sniffer:

$cc linux_sniffer.c -o linuxsniff

下面是一次telnet會話程序,同時被linux_sniffer記錄:

GNSS 2# telnet 192.168.0.1
Connected to 192.168.0.1.
login: hapless
password:
[hapless@linux2 hapless]$ w
19:55:29 up 58 min, 4 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 7:44pm 27.00s 0.17s 0.06s -bash
root tty2 7:46pm 1:56 0.24s 0.01s linuxsniff
root tty3 7:44pm 10:43 0.17s 0.07s -bash
hapless ttyp0 gnss 7:55pm 1.00s 0.26s 0.04s w
[hapless@linux2 hapless]$ who
root tty1 May 20 19:44
root tty2 May 20 19:46
root tty3 May 20 19:44
hapless ttyp0 May 20 19:55 (gnss)
[hapless@linux2 hapless]$ finger -l
Login: root Name: root
Directory: /root Shell: /bin/bash
On since Thu May 20 19:44 (PDT) on tty1 35 seconds idle
On since Thu May 20 19:46 (PDT) on tty2 2 minutes 4 seconds idle
On since Thu May 20 19:44 (PDT) on tty3 10 minutes 51 seconds idle
No mail.
No Plan.

Login: hapless Name: Caldera OpenLinux User
Directory: /home/hapless Shell: /bin/bash
On since Thu May 20 19:55 (PDT) on ttyp0 from gnss
No mail.
No Plan.

同樣這是一次典型的登入程序:用戶登入,檢測哪些用戶在登入等等。linux_sniffer記錄額外的位址資料,但是同樣記錄了一些重要的資料。首先它記錄了連接:

eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 ff fc 27 - ..'
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 ff fa 1f 00 50 00 28 ff - f0 ....P.(..
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 ff fa 20 00 33 38 34 30 - 30 2c 33 38 34 30 30 ff .. .38400,38400.
0010 f0 ff fa 23 00 47 4e 53 - 53 3a 30 2e 30 ff f0 ff ...#.GNSS:0.0...
0020 fa 18 00 49 52 49 53 2d - 41 4e 53 49 2d 4e 45 54 ...IRIS-ANSI-NET
0030 ff f0 - ..
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 ff fc 01 - ...
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 ff fd 01 - ...
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]

隨後,linux_sniffer記錄了登入程序,下面用黑體表示:

eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 68 - h
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 61 - a
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 70 - p
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 6c - l
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 65 - e
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 73 - s
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 73 - s
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 0d 00 - ..
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 75 - u
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 6e - n
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 61 - a
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 77 - w
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 61 - a
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 72 - r
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 65 - e
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]

最後,linux_sniffer記錄了所有的指令:

eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 77 - w
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 0d 00 - ..
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 77 - w
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 68 - h
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 6f - o
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 0d 00 - ..
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 66 - f
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 69 - i
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 6e - n
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 67 - g
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 65 - e
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 72 - r
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]

可以看到,linux_sniffer提供了相對更詳細的內容。

hunt

hunt在你需要易於讀取的結果室的另外一種選項。它具有直觀的指令追蹤和會話監錄功能。

作者:Pavel Krauz
條件: C, IP頭, Linux 2.0.35+, 支持LinuxThreads的GlibC 2.0.7
配置文件:無
位置http://www.cri.cz/kra/index.html
安全歷史:無
註:作者提供有動態連結和靜態連接的二進制發佈。

hunt是以tar.gz的格式發佈的,檔案名為hunt-1_3bin.tgz。首先需要解壓縮:

$tar xvfz hunt-1_3bin.tgz

則hunt被解壓縮到新新增的目錄hunt-1.3種,包括以下內容:

-rw-r--r-- 1 206 users 1616 Apr 2 03:54 CHANGES
-rw-r--r-- 1 206 users 17983 Oct 25 1998 COPYING
-rw-r--r-- 1 206 users 312 Jan 16 04:54 INSTALL
-rw-r--r-- 1 206 users 727 Feb 21 11:22 Makefile
-rw-r--r-- 1 206 users 27373 Feb 15 12:44 README
-rw-r--r-- 1 206 users 167 Dec 4 14:29 TODO
-rw-r--r-- 1 206 users 5067 Feb 13 04:23 addpolicy.c
-rw-r--r-- 1 206 users 7141 Feb 21 23:44 arphijack.c
-rw-r--r-- 1 206 users 25029 Apr 2 03:26 arpspoof.c
drwxr-xr-x 2 206 users 1024 Apr 9 02:03 c
-rw-r--r-- 1 206 users 7857 Nov 9 1998 hijack.c
-rw-r--r-- 1 206 users 5066 Dec 2 12:55 hostup.c
-rwxr-xr-x 1 206 users 84572 Apr 9 02:03 hunt
-rw-r--r-- 1 206 users 24435 Apr 2 03:26 hunt.c
-rw-r--r-- 1 206 users 16342 Mar 30 01:56 hunt.h
-rwxr-xr-x 1 206 users 316040 Apr 9 02:03 hunt_static
-rw-r--r-- 1 root root 265 May 20 22:22 huntdir.txt
-rw-r--r-- 1 root root 2517 May 20 22:19 huntlog.txt
-rw-r--r-- 1 206 users 6249 Feb 21 11:21 macdisc.c
-rw-r--r-- 1 206 users 12105 Feb 21 11:35 main.c
-rw-r--r-- 1 206 users 12000 Feb 6 02:27 menu.c
-rw-r--r-- 1 206 users 7432 Apr 2 03:53 net.c
-rw-r--r-- 1 206 users 5799 Feb 11 04:21 options.c
-rw-r--r-- 1 206 users 11986 Feb 14 04:59 resolv.c
-rw-r--r-- 1 206 users 1948 Oct 25 1998 rst.c
-rw-r--r-- 1 206 users 9545 Mar 30 01:48 rstd.c
-rw-r--r-- 1 206 users 21590 Apr 2 03:58 sniff.c
-rw-r--r-- 1 206 users 14466 Feb 21 12:04 synchijack.c
-rw-r--r-- 1 206 users 2692 Feb 19 00:10 tap.c
-rw-r--r-- 1 206 users 4078 Feb 15 05:31 timer.c
-rw-r--r-- 1 206 users 2023 Oct 25 1998 tty.c
-rw-r--r-- 1 206 users 7871 Feb 11 02:58 util.c
靜態二進制發佈為hunt_static,推薦使用該版本,因為有時候從來源碼編譯可能會出現缺少一些庫的錯誤。使用下面指令來執行hunt:

$hunt_static

執行hunt你將驚奇地發現hunt是關於curse的,因此有非常好記的交互界面。啟動以後表單如下所顯示:

--- Main Menu --- rcvpkt 0, free/alloc 63/64 ------
l/w/r) list/watch/reset connections
u) host up tests
a) arp/simple hijack (avoids ack storm if arp used)
s) simple hijack
d) daemons rst/arp/sniff/mac
o) options
x) exit
* >
在整個例子中,我將從GNSS登入到linux.test.net中進行測試。

GNSS 3% telnet 192.168.0.2
Trying 192.168.0.2...
Connected to 192.168.0.2.
Escape character is '^]'.
Caldera OpenLinux(TM)
Version 1.3
Copyright 1996-1998 Caldera Systems, Inc.
login:
[hapless@linux hapless]$ finger root
Login: root Name: root
Directory: /root Shell: /bin/bash
On since Thu May 20 21:57 (PDT) on tty1 1 minute idle
On since Thu May 20 22:02 (PDT) on tty2 7 minutes 19 seconds idle
On since Thu May 20 21:59 (PDT) on tty3 15 seconds idle
No mail.
No Plan.
[hapless@linux hapless]$ last root
root tty2 Thu May 20 22:02 still logged in
root tty3 Thu May 20 21:59 still logged in
root tty1 Thu May 20 21:57 still logged in
root tty2 Thu May 20 19:46 - down (00:26)
root tty1 Thu May 20 19:44 - 20:12 (00:27)
root tty3 Thu May 20 19:44 - down (00:28)
root tty3 Thu May 20 19:42 - 19:44 (00:01)
root tty1 Thu May 20 19:41 - 19:42 (00:00)
root tty3 Thu May 20 19:28 - 19:41 (00:12)
root tty2 Thu May 20 19:11 - 19:42 (00:31)
root tty1 Thu May 20 19:07 - 19:40 (00:32)
root tty1 Thu May 20 18:57 - 19:07 (00:09)
root tty1 Mon May 17 22:32 - down (00:29)
最後檢查了/etc/passwd,在整個程序中都執行有hunt進行嗅探:

--- Main Menu --- rcvpkt 0, free/alloc 63/64 ------
l/w/r) list/watch/reset connections
u) host up tests
a) arp/simple hijack (avoids ack storm if arp used)
s) simple hijack
d) daemons rst/arp/sniff/mac
o) options
x) exit
*> w
0) 192.168.0.1 [1049] --> 192.168.0.2 [23]
choose conn> 0
dump [s]rc/[d]st/[ b]oth [ b]> b
註:上面的輸入(黑色字體部分)指示hunt來記錄0號連接,並輸出源和目的信息。
則hunt將顯示hapless的所有活動信息到終端螢幕上:

22:18:43 up 21 min, 4 users, load average: 0.00, 0.01, 0.00
TRL-C to break
hhaapplleessss
Password: unaware
[hapless@linux2 hapless]$ cclleeaarr
[hapless@linux2 hapless]$ wwhhoo
root tty1 May 20 21:57
ww
22:18:43 up 21 min, 4 users, load average: 0.00, 0.01, 0.00
[hapless@linux2 hapless]$ mmoorree //eettcc//ppaasssswwdd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin:
adm:x:3:4:adm:/var/adm:
lp:x:4:7:lp:/var/spool/lpd:
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:11:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:
news:x:9:13:news:/var/spool/news:
uucp:x:10:14:uucp:/var/spool/uucp:
operator:x:11:0perator:/root:
games:x:12:100:games:/usr/games:
gopher:x:13:30:gopher:/usr/lib/gopher-data:
ftp:x:14:50:FTP User:/home/ftp:
man:x:15:15:Manuals Owner:/:
majordom:x:16:16:Majordomo:/:/bin/false
postgres:x:17:17:Postgres User:/home/postgres:/bin/bash
nobody:x:65534:65534:Nobody:/:/bin/false
anon:x:100:100:Anonymous:/home/anon:/bin/bash
hapless:x:500:500:Caldera OpenLinux User:/home/hapless:/bin/bash
[hapless@linux2 hapless]$
可以的看到,hunt的輸出非常直觀明瞭,易於閱讀。然而hunt還提供有以下工具:

允許指定任意一個感興趣的連接,而不是記錄所有的東西。

允許指定任意一個連接,而不僅僅是以SYN剛剛開始的連接。It offers spoofing tools.

提供活動會話劫持。

其特有的特色功能和易於使用的界面,使得它對於linux入門者是一個非常好的選項。

sniffit

sniffit是針對哪些需要瞭解更多信息的人的。

作者:Brecht Claerhout
條件:C, IP 頭文件
配置文件:見後面的討論
安全歷史:無
註:sniffit功能非常強大,但是不易學習使用。

$tar xvfz sniffit_0_3_7.tar.gz
$./configure (配置指令將檢測系統是否符合要求)
$make (編譯來源碼)
strip sniffit (精簡二進制程式碼的大小)
現在就可以使用sniffit了(sniffit的配置我們最後討論)。
語法:

sniffit [-xdabvnN] [-P proto ] [-A char ] [-p port ]

[(-r|-R) recordfile ] [-l sniflen ] [-L logparam ] [-F

snifdevice ] [-D tty ] [-M plugin ] [(-t Target-IP | -s

Source-IP ) | (-i|-I) | -c config-file ]

sniffit是一個TCP/IP/ICMP傳輸協定資料報監聽器,其能給出關於這些傳輸協定資料報非常詳細的技術信息(SEQ,ACK,TTL,Windows,....)及符合監聽條件的資料報的各種不同的格式(hex或純文本)

sniffit預設的可以處理以太和PPP設備。但是也可以用在其他的設備上(參見README.FIRST和sn_config.h)。sniffit可以進行方便的配置實現對接入的資料報進行過濾。而配置文件允許非常確定地指定需要處理的資料報。 sniffit同樣有一個交互式界面。


選項:

-v 顯示版本信息

-t 目標位址

只處理目的位址為"目標位址"的資料,和 '-s' '-c' '-v' 選項不相容

-s 源位址

只處理傳送位址為"源位址"的資料,和'-t' '-c' '-v' 選項不相容

-c 配置文件

在配置文件中對包過濾規則進行定義,和-t' '-s' '-v'不相容

-R 文件

將輸出結果記錄到"文件"中(和'-v'不相容)

-n 關閉IP資料報校驗,使偽造的資料也可以顯示出來

-x 列印TCP資料報的擴展信息到標準輸出中((SEQ,ACK, Flags等),往往用來跟蹤欺騙,包丟失及實現其他的網路偵錯測試工作。和'-i' 'I' '-v'不相容

-d 輸出到預設的文件中,一般檔案名為源目的位址的組合如:192.168.0.232.1120-192.168.0.231.80

-a 輸出ascII碼格式,不可列印的字串用」.」表示

-P 傳輸協定

指定需要處理的資料的傳輸協定類型,IP,TCP,ICMP,UDP等。

-p 連接埠

只處理目的連接埠為"連接埠"的資料。

-l sniflen

在正常模式下,記錄的資料的總和(預設為300字元),每次的連接的前sniflen個字元被記錄下來。

-F device

指定監聽某個設備的資料如eth0,eth1等

-D tty

所有的記錄信息都被輸出到指定的tty


舉例:

? 要監聽從192.168.0.233發往192.168.0.231的訪問WWW請求資料:

[root@lix /tmp]#/usr/sbin/sniffit -p 80 -P TCP -s 192.168.0.233 -d ttyp1

Packet ID (from_IP.port-to_IP.port): 192.168.0.233.1060-192.168.0.231.80

45 00 00 2C 6D 0B 40 00 80 06 0A A0 C0 A8 00 E9 C0 A8 00 E7 04 24 00 50 00 4E

89 2A 00 00 00 00 60 02 20 00 67 19 00 00 02 04 05 B4

註:192.168.0.231為一台執行linux的伺服器

? 如果希望將輸出轉發IP到一個文件,則

[root@lix /tmp]# /usr/sbin/sniffit -p 80 -P TCP -s 192.168.0.233 -R /tmp/wwwlog

? 如果希望檢視從192.168.0.231返回給192.168.0.225的www頁面資料,並且將資料存儲在一個文件/tmp/wwwlog中:

[root@lix /tmp]# /usr/sbin/sniffit -P TCP -t 192.168.0.225 -R /tmp/wwwlog

註:在225上不要開別的到231的連接,如telnet 否則 資料就回混雜在一起。


? 如果希望檢視從192.168.0.233發給192.168.0.231的ICMP資料,並且將其顯示到控制台上:

[root@lix /tmp]# /usr/sbin/sniffit -P ICMP -t 192.168.0.233 -d ttyp1

sniffit支持配置文件,通過配置文件可以提供更強大的嗅探控制。配置文件格式包含五個不同的字段,意義分別如下:

字段 1—select 或 deselect。指示sniffit捕捉後面條件指定的資料或者不捕捉。

字段 2—from, to, 或 both。 H指示sniffit捕捉來自、發往或雙向的指定的主機的資料。

字段 3—host, port, or mhost。指定一個或多個目標主機。mhost可以用來指定多個主機,如192.168.0。

字段 4—hostname, port number, or multiple-host 列表。

Field 5—連接埠號。

例如:

select from host 192.168.0.1
select from host 192.168.0.1 80
select both port 23
sniffit將捕捉來自兩個主機的telnet和www的所有信息。
select both mhosts 100.100.12.
deselect both port 80
select both host 100.100.12.2
sniffit將捕捉100.100.12.*相關除www以外的所有資料,但是顯示100.100.12.2的www資料




--------------------------------------------------------------------------------
此文章相關評論:

該文章有3個相關評論如下:(點這兒可以發表評論)

花劫容 發表於: 2002/12/10 06:26pm

這篇很傳統!
使用ARP分組檢測處於混雜模式的網路節點

發佈日期: 2001-11-1
內容:
--------------------------------------------------------------------------------


本文只有for Windows的實現

Version 1.0

原著:Daiji Sanai
英文版翻譯:Kelvin King-Pang Tsang
中文版翻譯:nixe0n(譯自英文版)

摘要
1.簡介
2.網路嗅探的原理
3.檢測混雜模式的基本概念
4.基礎
1).硬體過濾器
2).ARP機制
5.檢測處於混雜模式的節點
6.軟體過濾器
1).Linux
2).Micro$oft Windows
7.混雜模式檢測
8.檢查所有網路節點
9.異常情況
1).舊網路卡
2).3COM網路卡
3).Windows Y2K分組捕獲驅動模組


摘要

在一個區域網路中,安全問題應該引起注意。當純文本資料在網路上傳輸時,任何網路用戶都會很容易地竊取這些信息。在網路上竊取資料就叫作嗅探(sniffing)。通過嗅探網路,一個用戶能夠獲得絕密我的文件的訪問權限,窺探到任何人的隱私。在Internet上有很多自由散發的嗅探器軟體可以實現上述目的。儘管進行網路嗅探非常容易,然而卻沒有很好的方法來檢測這種惡意行為。本文將闡述PromiScan(一個能夠有效地檢測網路嗅探器的軟體)使用的檢測機制。嗅探器為了能夠截獲網路上所有的分組,必須把網路接頭卡(Network Interface Card,NIC)設定為混雜模式(promiscuous mode)。接著,網路卡就能夠接受網路上所有的分組,並將其送到系統內核。位址解析傳輸協定(Address Resolution Protocol,ARP)請求報文用來查詢硬體位址到IP位址的解析。我們將使用這類分組來校驗網路卡是否被設定為混雜模式(promiscuous mode)。之所以會使用ARP請求分組是因為它適用於所有關於乙太網的IPV4傳輸協定。在混雜模式(promiscuous mode)下,網路卡不會阻塞目的位址不是自己的分組,而是照單全收,並將其傳送給系統內核。然後,系統內核會返回包含錯誤信息的報文。關於這種機制,我們可以假造一些ARP請求報文傳送到網路上的各個節點,沒有處於混雜模式的網路卡會阻塞這些報文,但是如果某些節點有回應,就表示這些節點的網路卡處於混雜模式下。這些處於混雜模式的節點就可能執行嗅探器程序。這樣就可以成功地檢測到網路執行的嗅探器程序。


1.簡介

在區域網路中,嗅探行為已經成為網路安全的一個巨大威脅。通過網路嗅探,一些惡意用戶能夠很容易地竊取到絕密的我的文件和任何人的隱私。要實現上述目的非常容易,惡意用戶只要從網路上下載嗅探器並安全到自己的電腦就可以了。然而,卻沒有一個很好的方法來檢測網路上的嗅探器程序。本文將討論使用位址解析傳輸協定(Address Resolution Protocol)報文來有效地檢測辦公共外網絡和校園網上的嗅探器程序。


2.網路嗅探的原理

區域網路通常使用乙太網進行連接。在乙太網線纜上使用IP(IPV4)傳輸協定傳輸的傳遞的信息是明文傳輸的,除非使用了加密程序進行了加密。當一個人把信息傳送到網路上,他會希望只有特定的用戶才能收到這些信息。但是,非常不幸,乙太網的工作機制為非驗證用戶提供了竊取這些資料的機會。乙太網在進行信息傳輸時,會把分組送到各個網路節點,目的位址匹配的節點會接收這些分組,其它的網路節點只做簡單的丟棄操作。而接收還是丟棄這些分組由乙太網卡控制。在接收分組時,網路卡會過濾出目的位址是自己的分組接收,而不是照單全收。在本文以後的部分我們將把網路卡的這種過濾稱為硬體過濾(Hardware Filter)。但是這只是在正常情況下,嗅探器使用另一種工作方式,它把自己的網路卡設定為接收所有的網路分組,而不管分組的目的位址是否是自己。這種網路卡模式叫作混雜模式(Promiscuous Mode)。


3.檢測混雜模式的基本概念


在網路中,嗅探器接收所有的分組,而不傳送任何非法分組。它不會妨礙網路資料的流動,因此很難對其進行檢測。不過,處於混雜模式(promiscuous mode)網路卡的狀態很顯然和處於普通模式下不同。在混雜模式下,應該被硬體過濾掉的分組文會進入到系統的內核。是否回應這種分組完全依賴與內核。

下面我們舉一個現實世界中的例子,說明我們檢測處於混雜模式網路節點的方法。設想一下,在一個會議室中正在舉行一個會議。某個人把耳朵放在會議室就可以進行竊聽(嗅探^_^)。當她(還是個女的,原文如此:P)進行竊聽(嗅探)時,會屏住呼吸,安靜地聆聽會議室內所有的發言。然而,如果此時會議室內有人忽然叫竊聽者的名字:「XX太太」,她就可能答應「唉」。這聽起來有點好笑,但是完全可以用於網路嗅探行為的檢測。網路進行網路嗅探的節點會接收網路的所有報文,因此其內核可能對某些本該被硬體過濾的分組作出錯誤回應。根據這個原理,我們可以通過檢查節點對ARP報文的回應來檢測網路的嗅探行為。


4.基礎

1).硬體過濾器

首先,我們從處於混雜模式(promiscuous mode)下和普通模式下有何不同開始。乙太網的位址是6個字元,製造商為每塊網路卡分配的位址在全世界是唯一的,因此理論上沒有相同位址的網路卡。在乙太網上的所有通訊都是關於這種硬體位址。不過,網路卡可以被設定為不同的過濾模式以接收不同種類的分組。下面就是乙太網卡的過濾模式:


unicast: 網路卡接收所有目的位址是自己的分組

broadcast: 接收所有廣播分組,乙太網廣播分組的目的位址是FFFFFFFFFFFF。這種廣播分組能夠到達網路上的所有節點。
multicast: 接收目的位址為指定多投點遞交(multicast)組位址的分組。網路卡只接收其位址已經預先在多投點列表中註冊的分組。
all multicast: 接收所有多投點遞交廣播分組。
promiscuous: 根本不檢查目的位址,接收網路上所有的分組。

圖-1描述了硬體過濾器處於在正常情況下和在混雜模式下的區別。通常,網路卡的硬體過濾器被設定為接收目為單投點遞交(unicast)、廣播(broadcast)和多投點遞交(multicast)位址1的分組。過濾器只接收目的位址為自己的位址、廣播位址(FF FF FF FF FF FF)和多投點位址1(01 00 5E 00 00 01)的分組。


2).ARP機制

使用乙太網連接的IP網路需要依靠乙太網進行傳輸。只使用IP位址,報文是無法傳送的。因此,在乙太網上需要一種機制來提供IP位址和硬體位址之間的轉換。這種機制就是位址解析傳輸協定(Address Resolution Protocol)。ARP屬於網路層,和IP處於OSI模型的同一層。在IP網路上位址解析是不斷進行的,所以ARP報文比較適合用來檢測處於混雜模式(promiscuous mode)的網路節點。

在下面的例子中,我們將講述使用ARP報文是怎樣解析IP位址的:

例如:網路上一台IP位址為192.168.1.1的PC(X)乙太網位址是00-00-00-00-00-01,這台PC(X)需要像網路上另外一台IP位址為192.168.1.10的PC(Y)傳送消息。在傳送之前,X首先發出一個ARP請求包查詢192.168.1.10對應的乙太網位址。查詢包的目的位址被設定為FF-FF-FF-FF-FF-FF(廣播),從而本機網路上的所有節點都可以收到這個包。收到之後,每個節點會檢查這個ARP包查詢的IP位址和本機的IP位址是否匹配。如果不同,就忽略這個ARP包;如果匹配(Y)就向X發出回應。X收到回應之後就緩衝Y的IP/硬體位址。然後,X就可以向Y傳送實際的資料。


5.檢測處於混雜模式的節點

上面講到,報文的過濾狀態是處於混雜模式狀態和正常的網路節點的區別。當網路卡被設定為混雜模式,本該被過濾掉的報文就會進入系統的內核。通過這種機制,我們可以檢測到網路上處於混雜模式的節點:我們構造一個ARP查詢包,其目的位址不是廣播位址,然後向網路上的各個節點傳送這個ARP查詢包,最後通過各個節點的回應來判斷是否處於混雜模式。

下面我們討論一下整個ARP請求/回應的操作程序。首先,產生一個ARP查詢包來解析192.168.1.10的硬體位址。為了使網路上的所有節點都能夠收到這個查詢包,把這個包的目的位址設定為廣播位址。理論上,只有IP位址為192.168.1.10的網路卡才能對這個查詢包進行回應。

進一步設想,如果我們把這個查詢包的目的位址(乙太網位址)設定為另外的位址,而不是原來的廣播位址又將如何?例如:我們把查詢包的目的位址設定為00-00-00-00-00-01會發生什麼?處於正常模式下網路節點的乙太網卡會認為這個查詢包是發往其它主機的,其硬體過濾器會拒絕接收這個包;然而,如果這個網路節點(192.168.1.10)的乙太網卡處於混雜模式(promiscuous mode)下,那麼即使乙太網位址不匹配,其硬體過濾器也不進行任何過濾,從而使這個查詢包能夠進入到系統的內核。因為這個節點的IP位址和查詢包的要查詢IP位址相同,其內核就會認為ARP查詢包到達,應該作出回應。但是,另我們吃驚的是,這個處於混雜模式節點的內核不會回應ARPR查詢包。這種出人意料的結果說明這個包被系統內核過濾掉了。在這裡我們把這叫作軟體過濾器。


再進去一步,我們可以通過區別硬體過濾器和軟體過濾器的不同特徵來檢測處於混雜模式的網路節點。硬體過濾器一般會阻塞所有無效的分組(這些分組顯然不會進入系統內核),因此能夠通過硬體過濾器一般也能夠通過軟體過濾器,這種情況我們不多做討論。現在我們需要構造應該被被硬體過濾器阻塞,但是卻能夠通過軟體過濾器的報文。如果把這種報文送到各個網路節點,那麼處於普通模式下的網路節點將不做回應;而處於混雜模式的節點會進行回應。


6.軟體過濾器

軟體過濾器依賴於操作系統的內核,因此有必要理解系統內核軟體過濾器是如何工作的。Linux是開放源瑪系統,因此我們能夠獲得其軟體過濾機制。但是對於Micro$oft Windows我們只有憑經驗猜測了

1).Linux

在Linux的乙太網驅動模組中,分組是以硬體位址分類的。


廣播包
FF FF FF FF FF FF

多投點分組
所有的分組都有一個組標誌位集合,不包括廣播分組。

TO_US分組
目的位址和本機網路卡相同的分組。

OTHERHOST分組
所有目的位址和本機網路卡不同的分組。

現在,我們假設具有組標誌位的所有分組都是廣播分組。IP網路對應的乙太網多投點分組的目的位址是01-00-5e-xx-xx-xx,而且,通過校驗組標誌位本來就不能對多投點分組進行分類。這個假設並不錯誤,因為01-00-5e-xx-xx-xx是一個關於IP的多投點位址,但是網路卡硬體位址還用於其它高層傳輸協定。

下面,我們看一下ARP模組的程式碼。

if (in_dev == NULL ||
arp->ar_hln != dev->addr_len ' '
dev->flags & IFF_NOARP ||
skb->pkt_type == PACKET_OTHERHOST ||
skb->pkt_type == PACKET_LOOPBACK ||
arp->ar_pln != 4)
goto out;
Linux內核的ARP模組拒絕所有OTHERHOST類型的分組。接著,ARP模組將處理廣播、多投點和TO_US類型的分組。表1綜合了硬體過濾器和軟體過濾器對各種ARP分組的過濾處理,1說明:hw(hardware)、sw(software)、res.(response)、gr(group)。


下面,後我們將對這六硬體位址的分組進行詳細描述:

TO_US
網路卡在正常模式下,所有位址為TO_US的分組都能夠通過精簡過濾器和軟體過濾器。因此,不管網路卡是否處於混雜模式(promiscuous mode)下,ARP模組都會對其進行回應。

OTHERHOST
當網路卡處於正常模式下,會拒絕所有位址為OTHERHOST的分組。即使網路卡處於混雜模式(promiscuous mode),這種分組也無法通過軟體過濾器,因此這種ARP請求不會收到回應。

BROARDCAST
在正常模式下,BROARDCAST分組能夠也能夠通過硬體和軟體過濾器,因此不能用於網路節點混雜模式的檢測。

MULTICAST
在正常模式下,如果分組的硬體位址沒有在多投點位址列表中註冊,網路卡將拒絕接收;但是,如果網路卡處於混雜模式,這種分組將暢通無阻地穿過硬體過濾器和軟體過濾器。因此,可以使用這種類型的分組來檢測處於混雜模式的網路節點。

group bit
這種類型的分組既不屬於BRODCAST類型也不屬於MULTICAST類型,但是其硬體位址的組位(乙太網位址的首字元低序第一位)置位即:01-00-00-00-00-00。在正常模式下,網路卡會拒絕接收此類分組;但是在混雜模式下,這種類型的分組能夠通過硬體過濾器。而在Linux內核中,這種類型的分組被歸類為多投點分組進行處理,能夠穿過軟體過濾器。因此,這種類型的分組也能夠用於混雜模式檢測。


2).Micro$oft Windows

Windows系統不是開放源碼系統,因此不能從來源碼分析其軟體過濾行為。只好由實驗來測試。在實驗中,我們使用了以下的硬體位址:

FF-FF-FF-FF-FF-FF 廣播位址
所有的網路節點都會接收這種分組。通常的ARP查詢包使用這個位址。

FF-FF-FF-FF-FF-FE 偽廣播位址
FF-FF-FF-FF-FF-FE是一種偽廣播位址,它的最後一位丟失。這個位址被用來檢查軟體過濾器是否檢查所有的位址位,是否回應。

FF-FF-00-00-00-00-00 16位偽廣播位址
FF-FF-00-00-00-00-00只有前16位和真正的廣播位址相同。如果過濾器函數只測試廣播位址的第一個字,這個位址就可以歸入廣播位址。

FF-00-00-00-00-00 8位偽廣播位址
這個位址只有前8位和廣播位址相同,如果過濾器函數只檢查廣播位址的首字元,它也可以歸入廣播位址類。

01-00-00-00-00-00 多投點標記置位位址
這個位址只有多投點標記位(乙太網位址的首字元低序位)被置位,用來檢查過濾器函數是否也像Linux一樣把它作為多投點位址處理。

01-00-5E-00-00-00 多投點位址0
多投點位址0並不常用,因此我們使用這個位址作為沒有在網路卡多投點位址列表中註冊的多投點位址。正常情況下,硬體過濾器應該拒絕接收這種分組。但是,如果軟體過濾器不能檢查所有的位址位,這類分組就可能被歸類到多投點位址。因此,如果網路卡處於混雜模式(promiscuous mode),內核就會進行回應。

01-00-5E-00-00-01 多投點位址1
區域網路上的所有網路節點都應該接收多投點位址1類型的分組。換句話說,預設情況下硬體過濾器允許這類分組通過。但是可以由於網路卡不支持多投點模式而不回應。因此,這類分組可以用於檢查主機是否支持多投點位址。


即使結果:

對於這7種類型位址的測試結果如表2所顯示。測試是針對Windows85/98/ME/2000和Linux。不出所料,網路卡處於正常模式下,內核會對所有位址為廣播位址和多投點位址1的分組進行回應。

然而,當網路卡處於混雜模式下時,每種操作系統的測試結果不盡相同。Windows95/98/ME會回應31、16、8位偽廣播位址的分組。因此,我們可以認為Window9x系列操作系統的軟體過濾器只通過檢測一位來判斷分組位址是否是廣播位址。

Windows2000對位址為31、16位偽廣播位址的分組進行回應。因此,我們可以認為WindowsY2K檢查位址的8位來判斷分組位址是否為廣播位址。

Linux內核對所有七種位址的分組都會進行回應。


7.混雜模式檢測

我們可以把這個測試結果用於區域網路處於混雜模式節點的檢測。下面是直接檢測程序:

1).我們需要檢測IP位址A的主機是否處於混雜模式。我們首先需要構造如下格式的ARP分組和乙太網畫格:

ARP分組:

目的乙太網位址 00 00 00 00 00 00(說明1)
傳送方乙太網位址 00 11 22 33 44 55(說明2)
高層傳輸協定類型 08 00(IP)
硬體類型 00 01(乙太網)
硬體位址長度 06(乙太網位址長度)
IP位址長度 04
傳送方的IP位址 本機IP位址
目標的IP位址 被檢測主機的IP位址
ARP操作碼 00 01(ARP請求01、ARP回應02)


乙太網畫格:

傳輸協定類型 08 06(ARP)
傳送方的硬體位址 本機乙太網卡位址
目標硬體位址 FF FF FF FF FF FE


說明1:這時ARP要查詢的乙太網位址,全部填0或者1都可以。
說明2:用自己的乙太網位址替代。


2).分組構造完成後,我們可以把它傳送到網路上。

3).現在我們需要等待目標主機的反應。如果目標主機處於正常狀態,這個分組就會被阻塞;但是如果處於混雜模式(promiscuous mode)下,我們就會收到回應。


8.檢查所有網路節點

只要順序使用第七節敘述的檢測方法,我們就可能檢測出所有處於混雜模式下的網路節點。但是,某些情況下,會使這種檢測方法失效。


9.異常情況

上面講到有一些情況不能使用這種方式進行混雜模式檢測。這些異常情況包括:

1).舊網路卡

有些舊網路卡不支持多投點列表,例如:3COM EtherlinkIII。分組不經過硬體過濾器的檢查就進入軟體過濾器,

2).3COM網路卡

安裝在LInux主機的3COM 3c905網路卡,預設情況下被設定為接收所有的多投點分組。因此,我們無法區別混雜模式和多投點模式。造成這種異常的原因是這種網路卡的Linux驅動模組不支持多投點列表,網路卡就會接收所有多投點分組。注意:Linux安裝程序使用3c59x.o作為這種網路卡的驅動模組。如果把驅動模組改為3c905x.o可以解決這個問題。

3).Windows Y2K分組捕獲驅動模組

當WindowsY2K分組捕獲驅動模組是動態載入的,也會產生異常情況。WinPcap2.1(2.01不同)和SMS是用於WindowsY2K的兩種動態載入分組捕獲驅動模組。當它們安裝到WindowsY2K系統中,會有一些特別的反應。即使網路卡不處於混雜模式下,也會對位址為16為偽廣播位址的分組進行回應(使用這兩種驅動模組的嗅探器也將無法準確操作)。也就是說,即使嗅探器沒有執行也照樣可以檢測到。可能是Micro$oft為了方便混雜模式的檢測有意為之。

網路監聽攻擊技術

在網路中,當信息進行傳播的時候,可以利用工具,將網路接頭設定在監聽的模式,便可將網路中正在傳播的信息截獲或者捕獲到,從而進行攻擊。網路監聽在網路中的任何一個位置模式下都可實施進行。而黑客一般都是利用網路監聽來截取用戶密碼。比如當有人佔領了一台主機之後,那麼他要再想將戰果擴大到這個主機所在的整個區域網路話,監聽往往是他們選項的捷徑。很多時候我在各類安全論壇上看到一些初學的愛好者,在他們認為如果佔領了某主機之後那麼想進入它的內部網應該是很簡單的。其實非也,進入了某主機再想轉入它的內部網路裡的其它機器也都不是一件容易的事情。因為你除了要拿到他們的密碼之外還有就是他們共享的絕對路徑,當然了,這個路徑的盡頭必須是有寫的權限了。在這個時候,執行已經被控制的主機上的監聽程序就會有大收效。不過卻是一件費神的事情,而且還需要當事者有足夠的耐心和應變能力。

網路監聽的原理

Ethernet(乙太網,它是由施樂公司發明的一種比較流行的區域網路技術,它包含一條所有電腦都連線到其上的一條電纜,每台電腦需要一種叫接頭板的硬體才能連線到乙太網)傳輸協定的工作方式是將要傳送的資料包發往連接在一起的所有主機。在包頭中包括有應該接收資料包的主機的正確位址,因為只有與資料包中目標位址一致的那台主機才能接收到信息包,但是當主機工作在監聽模式下的話不管資料包中的目標物理位址是什麼,主機都將可以接收到。許多區域網路內有十幾台甚至上百台主機是通過一個電纜、一個集線器連接在一起的,在傳輸協定的高層或者用戶來看,當同一網路中的兩台主機通信的時候,源主機將寫有目的的主機位址的資料包直接發向目的主機,或者當網路中的一台主機同外界的主機通信時,源主機將寫有目的的主機IP位址的資料包發向網關。但這種資料包並不能在傳輸協定棧的高層直接傳送出去,要傳送的資料包必須從TCP/IP傳輸協定的IP層交給網路接頭,也就是所說的資料鏈路層。網路接頭不會識別IP位址的。在網路接頭由IP層來的帶有IP位址的資料包又增加了一部分以太禎的禎頭的信息。在禎頭中,有兩個域分別為只有網路接頭才能識別的源主機和目的主機的物理位址這是一個48位的位址,這個48位的位址是與IP位址相對應的,換句話說就是一個IP位址也會對應一個物理位址。對於作為網關的主機,由於它連接了多個網路,它也就同時具備有很多個IP位址,在每個網路中它都有一個。而發向網路外的禎中繼攜帶的就是網關的物理位址。

Ethernet中填寫了物理位址的禎從網路接頭中,也就是從網路卡中傳送出去傳送到物理的線路上。如果區域網路是由一條粗網或細網連接成的,那麼數位信號在電纜上傳輸信號就能夠到達線路上的每一台主機。再當使用集線器的時候,傳送出去的信號到達集線器,由集線器再發向連接在集線器上的每一條線路。這樣在物理線路上傳輸的數位信號也就能到達連接在集線器上的每個主機了。當數位信號到達一台主機的網路接頭時,正常狀態下網路接頭對讀入資料禎進行檢查,如果資料禎中攜帶的物理位址是自己的或者物理位址是廣播位址,那麼就會將資料禎交給IP層軟體。對於每個到達網路接頭的資料禎都要進行這個程序的。但是當主機工作在監聽模式下的話,所有的資料禎都將被交給上層傳輸協定軟體處理。

當連接在同一條電纜或集線器上的主機被邏輯地分為幾個子網的時候,那麼要是有一台主機處於監聽模式,它還將可以接收到發向與自己不在同一個子網(使用了不同的掩碼、IP位址和網關)的主機的資料包,在同一個物理信道上傳輸的所有信息都可以被接收到。

在UNIX系統上,當擁有超級權限的用戶要想使自己所控制的主機進入監聽模式,只需要像Interface(網路接頭)傳送I/O控制指令,就可以使主機設定成監聽模式了。而在Windows9x的系統中則不論用戶是否有權限都將可以通過直接執行監聽工具就可以實現了。

在網路監聽時,常常要儲存大量的信息(也包含很多的垃圾信息),並將對收集的信息進行大量的整理,這樣就會使正在監聽的機器對其它用戶的請求回應變的很慢。同時監聽程序在執行的時候需要消耗大量的處理器時間,如果在這個時候就詳細的分析包中的內容,許多包就會來不及接收而被漏走。所以監聽程序很多時候就會將監聽得到的包存放在文件中等待以後分析。分析監聽到的資料包是很頭疼的事情。因為網路中的資料包都非常之複雜。兩台主機之間連續傳送和接收資料包,在監聽到的結果中必然會加一些別的主機交互的資料包。監聽程序將同一TCP會話的包整理到一起就相當不容易了,如果你還期望將用戶詳細資料整理出來就需要根據傳輸協定對包進行大量的分析。Internet上那麼多的傳輸協定,執行進起的話這個監聽程序將會十分的大哦。

現在網路中所使用的傳輸協定都是較早前設計的,許多傳輸協定的實現都是關於一種非常好記的,通信的雙方充分信任的基礎。在通常的網路環境之下,用戶的信息包括密碼都是以明文的方式在網上傳輸的,因此進行網路監聽從而獲得用戶信息並不是一件難點事情,只要掌握有初步的TCP/IP傳輸協定知識就可以輕鬆的監聽到你想要的信息的。前些時間美籍華人China-babble曾提出將望路監聽從區域網路延伸到廣域網中,但這個想法很快就被否定了。如果真是這樣的話我想網路必將天下大亂了。而事實上現在在廣域網裡也可以監聽和截獲到一些用戶信息。只是還不夠明顯而已。在整個Internet中就更顯得微不足道了。

下面是一些系統中的著名的監聽程序,你可以自己嘗試一下的。

Windows9x/NT NetXRayhttp://semxa.kstar.com/hacking/netxray.zip

DEC Unix/Linux  Tcpdump  http://semxa.kstar.com/hacking/management.zip

Solaris  Nfswatch   http://semxa.kstar.com/hacking/nfswatch.zip

SunOS Etherfind http://semxa.kstar.com/hacking/etherfind012.zip

 

檢測網路監聽的方法

網路監聽在上述中已經說明了。它是為了系統管理員管理網路,監視網路狀態和資料流動而設計的。但是由於它有著截獲網路資料的功能所以也是黑客所慣用的伎倆之一。

一般檢測網路監聽的方法通過以下來進行:

"amp;#9658;網路監聽說真的,是很難被發現的。當執行監聽程序的主機在進聽的程序中只是被動的接收在乙太網中傳輸的信息,它不會跟其它的主機交換信息的,也不能修改在網路中傳輸的信息包。這就說明了網路監聽的檢測是比較麻煩的事情。

一般情況下可以通過ps-ef或者ps-aux來檢測。但大多實施監聽程序的人都會通過修改ps的指令來防止被ps-ef的。修改ps只需要幾個shell把監聽程序的名稱過濾掉就OK了。一能做到啟動監聽程序的人也絕對不是個菜的連這個都不懂的人了,除非是他懶。

上邊提到過。當執行監聽程序的時候主機回應一般會受到影響變的會慢,所以也就有人提出來通過回應的速率來判斷是否受到監聽。如果真是這樣判斷的話我想世界真的會大亂了,說不準一個時間段內會發現無數個監聽程序在執行呢。呵呵。

如果說當你懷疑網內某太機器正在實施監聽程序的話(怎麼個懷疑?那要看你自己了),可以用正確的IP位址和錯誤的物理位址去ping它,這樣正在執行的監聽程序就會做出回應的。這是因為正常的機器一般不接收錯誤的物理位址的ping信息的。但正在進聽的機器就可以接收,要是它的IP stack不再次反向檢查的話就會回應的。不過這種方法對很多系統是沒效果的,因為它依賴於系統的IP stack。

另一種就是向網上發大量不存在的物理位址的包,而監聽程序往往就會將這些包進行處理,這樣就會導致機器效能下降,你可以用icmp echo delay來判斷和比較它。還可以通過搜尋網內所有主機上執行的程序,但這樣做其的難度可想而知,因為這樣不但是大的工作量,而且還不能完全同時檢查所有主機上的工作。可是如果管理員這樣做也會有很大的必要性,那就是可以確定是否有一個工作是從管理員電腦上啟動的。

在Unix中可以通過ps –aun或ps –augx指令產生一個包括所有工作的清單:工作的屬主和這些工作佔用的處理器時間和記憶體等。這些以標準表的形式輸出在STDOUT上。如果某一個工作正在執行,那麼它將會列在這張清單之中。但很多黑客在執行監聽程序的時候會毫不客氣的把ps或其它執行中的程序修改成Trojan Horse程序,因為他完全可以做到這一點的。如果真是這樣那麼上述辦法就不會有結果的。但這樣做在一定程度上還是有所作為的。在Unix和Windows NT上很容易就能得到當前工作的清單了。但DOS、Windows9x好像很難做到哦,直接是不是我沒測試過不得而知。

還有一種方式,這種方式要靠足夠的運氣。因為往往黑客所用的監聽程序大都是免費在網上得到的,他並非專業監聽。所以做為管理員用來搜尋監聽程序也可以檢測。使用Unix可以寫這麼一個搜尋的小工具了,不然的話要累死人的。呵呵。

有個叫Ifstatus的執行在Unix下的工具,它可以識別出網路接頭是否正處於偵錯狀態下或者是在進聽裝下。要是網路接頭執行這樣的模式之下,那麼很有可能正在受到監聽程序的攻擊。Ifstatus一般情況下不會產生任何輸出的,當它檢測到網路的接頭處於監聽模式下的時候才回輸出。管理員可以將系統的cron參數設定成定期執行Ifstatus,如果有好的cron工作的話可以將它產生的輸出用mail傳送給正在執行cron工作的人,要實現可以在crontab目錄下加****/usr/local/etc/ifstatus一行參數。這樣不行的話還可以用一個指令碼程序在crontab下00****/usr/local/etc/run-ifstatus。

抵禦監聽其實要看哪個方面了。一般情況下監聽只是對用戶密碼信息比較敏感一點(沒有無聊的黑客去監聽兩台機器間的聊天信息的那是個浪費時間的事情)。所以對用戶信息和密碼信息進行加密是完全有必要的。防止以明文傳輸而被監聽到。現代網路中,SSH(一種在套用環境中提供保密通信的傳輸協定)通信傳輸協定一直都被沿用,SSH所使用的連接埠是22,它排除了在不安全信道上通信的信息,被監聽的可能性使用到了RAS算法,在授權程序結束後,所有的傳輸都用IDEA技術加密。但SSH並不就是完全安全的。至少現在我們可以這麼大膽評論了。

著名的Sniffer監聽工具

Sniffer之所以著名,權因它在很多方面都做的很好,它可以監聽到(甚至是聽、看到)網上傳輸的所有信息。Sniffer可以是硬體也可以是軟體。主要用來接收在網路上傳輸的信息。網路是可以執行在各種傳輸協定之下的,包括乙太網Ethernet、TCP/IP、ZPX等等,也可以是集中傳輸協定的聯合體系。

Sniffer是個非常之危險的東西,它可以截獲密碼,可以截獲到本來是秘密的或者專用信道內的信息,截獲到信用卡號,經濟資料,E-mail等等。更加可以用來攻擊與己相臨的網路。

Sniffer可以使用在任何一種平台之中。而現在使用Sniffer也不可能別發現,這個足夠是對網路安全的最嚴重的挑戰。

在Sniffer中,還有「熱心人」編寫了它的Plugin,稱為TOD殺手,可以將TCP的連接完全切斷。總之Sniffer應該引起人們的重視,否則安全永遠做不到最好。

如果你只是想用來研究的話可以在這http://semxa.kstar.com/hacking/sniffer260.zip找到一個經過我漢化的Sniffer程序工具。
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
 



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用

相似的主題
主題 主題作者 討論區 回覆 最後發表
sniff教學 psac 資訊系統安全備援防護技術文件 0 2004-07-14 02:32 PM
Hack Proofing Your Network mic64 網路軟硬體架設技術文件 12 2004-06-21 03:28 PM
如何發現同一個網路上的sniffer? psac 網路軟硬體架設技術文件 0 2004-05-24 03:24 PM
SNIFFER(嗅探器)-簡介 psac Hacker/Cracker 及加解密技術文件 0 2003-07-21 09:15 PM


所有時間均為台北時間。現在的時間是 06:38 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1