第十五章 防範網絡嗅探(1 / 3)

第十五章 防範網絡嗅探

最普遍的安全威脅來自內部,同時這些威脅通常都是致命的,其破壞性也遠大於外部威脅。其中網絡嗅探對於安全防護一般的網絡來說,操作簡單的同時威脅巨大,很多黑客也使用嗅探器進行網絡入侵的滲透..網絡嗅探器對信息安全的威脅來自其被動性和非幹擾性,使得網絡嗅探具有很強的隱蔽性,往往讓網絡信息泄密變得不容易被發現。本文分析了網絡嗅探的原理,分析了一些實例,提出解決方案和介紹實踐經驗。

一、嗅探器攻擊原理

嗅探器(sniffer)是利用計算機的網絡接口截獲目的地為其他計算機的數據報文的一種技術。它工作在網絡的底層,把網絡傳輸的全部數據記錄下來.嗅探器可以幫助網絡管理員查找網絡漏洞和檢測網絡性能.嗅探器可以分析網絡的流量,以便找出所關心的網絡中潛在的問題。

不同傳輸介質的網絡的可監聽性是不同的。一般來說,以太網被監聽的可能性比較高,因為以太網是一個廣播型的網絡;FDDIToken被監聽的可能性也比較高,盡管它並不是一個廣播型網絡,但帶有令牌的那些數據包在傳輸過程中,平均要經過網絡上一半的計算機;微波和無線網被監聽的可能性同樣比較高,因為無線電本身是一個廣播型的傳輸媒介,彌散在空中的無線電信號可以被很輕易的截獲。一般情況下,大多數的嗅探器至少能夠分析下麵的協議:

標準以太網

TCP/IP

IPX

DECNET

FDDIToken

微波和無線網。

實際應用中的嗅探器分軟、硬兩種。軟件嗅探器便宜易於使用,缺點是往往無法抓取網絡上所有的傳輸數據(比如碎片),也就可能無法全麵了解網絡的故障和運行情況;硬件嗅探器的通常稱為協議分析儀,它的優點恰恰是軟件嗅探器所欠缺的,但是價格昂貴。目前主要使用的嗅探器是軟件的。

嗅探器捕獲真實的網絡報文。嗅探器通過將其置身於網絡接口來達到這個目的--例如將以太網卡設置成雜收模式。數據在網絡上是以幀(Frame)的單位傳輸的。幀通過特定的稱為網絡驅動程序的軟件進行成型,然後通過網卡發送到網線上。通過網線到達它們的目的機器,在目的機器的一端執行相反的過程。接收端機器的以太網卡捕獲到這些幀,並告訴操作係統幀的到達,然後對其進行存儲。就是在這個傳輸和接收的過程中,每一個在LAN上的工作站都有其硬件地址。這些地址唯一地表示著網絡上的機器。當用戶發送一個報文時,這些報文就會發送到LAN上所有可用的機器。在一般情況下,網絡上所有的機器都可以"聽"到通過的流量,但對不屬於自己的報文則不予響應。如果某在工作站的網絡接口處於雜收模式,那麼它就可以捕獲網絡上所有的報文和幀,如果一個工作站被配置成這樣的方式,它(包括其軟件)就是一個嗅探器。這也是嗅探器會造成安全方麵的問題的原因。通常使用嗅探器的入侵者,都必須擁有基點用來放置嗅探器。對於外部入侵者來說,能通過入侵外網服務器、往內部工作站發送木馬等獲得需要,然後放置其嗅探器,而內部破壞者就能夠直接獲得嗅探器的放置點,比如使用附加的物理設備作為嗅探器(例如,他們可以將嗅探器接在網絡的某個點上,而這個點通常用肉眼不容易發現。除非人為地對網絡中的每一段網線進行檢測,沒有其他容易方法能夠識別出這種連接(當然,網絡拓撲映射工具能夠檢測到額外的IP地址)。

嗅探器可能造成的危害:

嗅探器能夠捕獲口令.

能夠捕獲專用的或者機密的信息.

可以用來危害網絡鄰居的安全,或者用來獲取更高級別的訪問權限.

分析網絡結構,進行網絡滲透。

二.嗅探器攻擊實例

Linux、Unix環境下的嗅探器有:Tcpdump、Nmap、Linuxsniffer、hunt、sniffit等。Linsniffer是一個簡單實用的嗅探器。它主要的功能特點是用來捕捉用戶名和密碼,它在也這方麵非常出色。注:編譯該軟件需要所在的Linux係統上必須的網絡包含文件(tvp.h、ip.h、inet.hif_t、her.h)。雖然這個工具易於使用,但是Linsniffer需要完整的IP頭文件,包括常常存儲在/usr/include/net和/usr/include/netinet的頭文件,在編譯前確保PATH變量包含/usr/include。

獲得這個軟件後,進入src目錄,使用下麵的命令來編譯Linsniffer:$cclinsniffer.c-olinsniffer

要運行Linsniffer,使用下麵的命令:$linsniffer

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

舉例說明,在一台測試的Linux服務器中創建一個名為"goodcjh"的用戶,密碼為"fad"。然後在主機CJH上使用該用戶來登錄這台Linux服務器,並進行一些常見的用戶操作。下麵是進行的一次ftp過程:

CJH$ftpwww.red.net

Connectedtowww.red.net.

220www.red.netFTPserverWedAug1902:55:52MST2002)ready.

Name(www.red.net:root):goodcjh

331Passwordrequiredforgoodcjh.

Password:

230Usergoodcjhloggedin.

RemotesystemtypeisUNIX.

Usingbinarymodetotransferfiles.

ftp>ls-al

200PORTcommandsuccessful.

150OpeningASCIImodedataconnectionfor/bin/ls.

total14

drwxrwxr-x4goodcjhgoodcjh1024May2019:35.

drwxr-xr-x6rootroot1024May2019:28..

-rw-rw-r--1goodcjhgoodcjh96May2019:56.bash_history

-rw-r--r--1goodcjhgoodcjh49Nov252002.bash_logout

-rw-r--r--1goodcjhgoodcjh913Nov242002.bashrc

-rw-r--r--1goodcjhgoodcjh650Nov242002.cshrc

-rw-r--r--1goodcjhgoodcjh111Nov32002.inputrc

-rwxr-xr-x1goodcjhgoodcjh186Sep12002.kshrc

-rw-r--r--1goodcjhgoodcjh392Jan72002.login

-rw-r--r--1goodcjhgoodcjh51Nov252002.logout

-rw-r--r--1goodcjhgoodcjh341Oct132002.profile

-rwxr-xr-x1goodcjhgoodcjh182Sep12002.profile.ksh

drwxr-xr-x2goodcjhgoodcjh1024May1412:16.seyon

drwxr-xr-x3goodcjhgoodcjh1024May1412:15lg

226Transfercomplete.

ftp>ls

200PORTcommandsuccessful.

150OpeningASCIImodedataconnectionfor/bin/ls.

total14

drwxrwxr-x4goodcjhgoodcjh1024May2019:35.

drwxr-xr-x6rootroot1024May2019:28..

-rw-rw-r--1goodcjhgoodcjh96May2019:56.bash_history

-rw-r--r--1goodcjhgoodcjh49Nov252002.bash_logout

-rw-r--r--1goodcjhgoodcjh913Nov242002.bashrc

-rw-r--r--1goodcjhgoodcjh650Nov242002.cshrc

-rw-r--r--1goodcjhgoodcjh111Nov32002.inputrc

-rwxr-xr-x1goodcjhgoodcjh186Sep12002.kshrc

-rw-r--r--1goodcjhgoodcjh392Jan72002.login

-rw-r--r--1goodcjhgoodcjh51Nov252002.logout

-rw-r--r--1goodcjhgoodcjh341Oct132002.profile

-rwxr-xr-x1goodcjhgoodcjh182Sep12002.profile.ksh

drwxr-xr-x2goodcjhgoodcjh1024May1412:16.seyon