Firewalk:高級(jí)路由跟蹤工具(Linux)
Firewalk使用類似traceroute的技術(shù)來(lái)分析IP包的響應(yīng),從而測(cè)定網(wǎng)關(guān)的訪問(wèn)控制列表和繪制網(wǎng)絡(luò)圖的工具。Firewalk使用類似于路由跟蹤(traceroute-like)的IP數(shù)據(jù)包分析方法,來(lái)測(cè)定一個(gè)特殊的數(shù)據(jù)包是否能夠從攻擊者的主機(jī)傳送到位于數(shù)據(jù)包過(guò)濾設(shè)備后的目標(biāo)主機(jī)。這種技術(shù)能夠用于探測(cè)網(wǎng)關(guān)上打開(kāi)(‘open’)或允許通過(guò)(‘pass through’)的端口。更進(jìn)一步地,它能夠測(cè)定帶有各種控制信息的數(shù)據(jù)包是否能通過(guò)給定網(wǎng)關(guān)。要理解這種技術(shù)的工作原理,首先理解路由跟蹤(traceroute)是如何工作的。
下載鏈接:http://down.51cto.com/data/149274
>>去網(wǎng)絡(luò)安全工具百寶箱看看其它安全工具
Traceroute的基本工作原理是發(fā)送UDP或ICMP echo數(shù)據(jù)包到目標(biāo)主機(jī),同時(shí)在每輪(缺省是三個(gè)數(shù)據(jù)包)成功的探測(cè)后將IP包頭中的TTL(Time To Live,生存期)域遞增1。如果路由跟蹤使用UDP數(shù)據(jù)包,則目標(biāo)端口在每個(gè)數(shù)據(jù)包中都遞增1。IP數(shù)據(jù)包頭的TTL域用于限制數(shù)據(jù)包在網(wǎng)絡(luò)中傳輸?shù)纳嫫冢渲翟诿颗_(tái)路由器轉(zhuǎn)發(fā)數(shù)據(jù)包前減1。如果TTL為0或更小,則路由器會(huì)向源主機(jī)回送一個(gè)ICMP錯(cuò)誤消息(time to live exceeded in transit)數(shù)據(jù)包。這樣源主機(jī)就能夠知道數(shù)據(jù)包在哪臺(tái)路由器上過(guò)期。通過(guò)將TTL從開(kāi)始時(shí)設(shè)置為1,且依次遞增1,并監(jiān)視ICMP響應(yīng)信息來(lái)獲得主機(jī)間的所有路由器(這里假設(shè)數(shù)據(jù)包均未被過(guò)濾或丟失)。為了確保能夠從最終的目標(biāo)主機(jī)獲得正確的響應(yīng)(ICMP port unreachable或ICMP echo reply),traceroute或者使用極少被其它程序使用的高端UDP端口,或者使用ping數(shù)據(jù)包。
traceroute(路由跟蹤)工作在IP層(網(wǎng)絡(luò)層),其上的任何傳輸協(xié)議(UDP、TCP和ICMP)均能被使用。Traceroute的這個(gè)特性使得其能利用任何位于IP層上層的協(xié)議。如果我們?cè)噲D探測(cè)位于防火墻后的主機(jī),而到達(dá)該防火墻的數(shù)據(jù)包被ACL所禁止,則該數(shù)據(jù)包會(huì)(在大多數(shù)情況下)被丟棄。通過(guò)這種探測(cè),我們能夠確定該路由上的最后一臺(tái)網(wǎng)關(guān)(如防火墻)。如果我們?cè)偈褂闷渌煌愋偷膖raceroute探測(cè),并得到正常響應(yīng)時(shí),說(shuō)明了兩點(diǎn):
1)該防火墻允許這種類型的網(wǎng)絡(luò)通信通過(guò);
2)探測(cè)到位于該防火墻后的一臺(tái)主機(jī)。如果以這些結(jié)果為依據(jù),我們會(huì)知道防火墻的過(guò)濾規(guī)則是基于通信類型的。這就是firewalk的基本原理。
Firewalk是一種利用上述技術(shù)的網(wǎng)絡(luò)審核工具,也就是說(shuō)它是一個(gè)高級(jí)的traceroute工具。2002年10月,這個(gè)一流的工具在原來(lái)的基礎(chǔ)上進(jìn)行了重新開(kāi)發(fā)。
Firewalk的探測(cè)工作包括了兩個(gè)階段:一個(gè)是網(wǎng)絡(luò)探測(cè)階段,另一個(gè)是掃描階段。最初,為了得到正確的IP TTL值,我們需要得到到達(dá)網(wǎng)關(guān)的跳數(shù)(hop)。通過(guò)依次遞增數(shù)據(jù)包的TTL值(即traceroute的工作原理),向目標(biāo)主機(jī)連接發(fā)送這些探測(cè)包。一旦得到了到達(dá)網(wǎng)關(guān)的跳數(shù),將進(jìn)入下一階段:實(shí)際的掃描。這些掃描是很簡(jiǎn)單的,F(xiàn)irewalk向目標(biāo)主機(jī)發(fā)送帶有超時(shí)設(shè)置的TCP或UDP數(shù)據(jù)包。如果能夠在傳輸超時(shí)前監(jiān)聽(tīng)到響應(yīng),則可以認(rèn)為該端口是打開(kāi)的,否則就是關(guān)閉的。
二、下載軟件。
首先在軟件的主頁(yè)下載源代碼。http://www.packetfactory.net/firewalk/dist/firewalk-1.0.tar.gz 和運(yùn)行Firewalk所需的相關(guān)軟件。
1. libnet :http://www.packetfactory.net/libnet/dist/libnet.tar.gz
2. Libpcap :http://www.tcpdump.org/release/libpcap-0.7.1.tar.gz
3. Libdnet :http://ftp.netsw.org/system/libs/network/libdnet/libdnet-1.4.tar.gz
三、安裝軟件。
1、 以根權(quán)限登陸Linux
#gunzip firewalk-1.0.tar.gz#tar vxf firewalk-1.0.tar#cd firewalk-1.0
2、然后將三個(gè)輔助軟件拷貝到Firewalk文件夾中編譯。這里以libdnet-1.4.tar.gz 為例其他兩個(gè)軟件: libnet.tar.、gzlibpcp-0.7.1.tar.gz安裝過(guò)程相同。
#gunzip libdnet-1.4.tar.gz#tar vxf libdnet-1.4.tar#cd libdnet-1.4#./configure#make#make install
3、三個(gè)輔助軟件安裝后退回Firewalk目錄:
#./configure#make#make install
最后需要說(shuō)明的是一定要先安裝編譯三個(gè)輔助軟件,最后編譯Firewalk。
四、運(yùn)行軟件
Firewalk的格式是 Firewalk 5.0 [gateway ACL scanner]
總結(jié):Firewalk是一個(gè)網(wǎng)關(guān)審計(jì)工具。目前版本的Firewalk只是處理了數(shù)據(jù)包頭,而沒(méi)有填入任何數(shù)據(jù)段內(nèi)容。后續(xù)版本將能夠模擬各種服務(wù)和數(shù)據(jù)通信,甚至隨機(jī)化探測(cè)掃描的次序和次數(shù),其隱蔽性和功能將更強(qiáng)。
2003年nmap-hackers郵件列表中發(fā)起了最佳安全工具的評(píng)選活動(dòng),1854個(gè)用戶參與了此次活動(dòng),每個(gè)用戶最多可以選擇8個(gè)最佳工具,這次評(píng)選出的最佳安全工具為75個(gè)(結(jié)果在http://www.insecure.org/ )。這次評(píng)選出來(lái)的75個(gè)最佳安全工具在網(wǎng)絡(luò)安全領(lǐng)域都是一些很有代表性的軟件。Firwalk也在其中排名34位,是網(wǎng)管員應(yīng)當(dāng)掌握的安全工具。
參考文章:http://www.packetfactory.net/projects/firewalk/firewalk-final.pdf