黑客突破防火墻幾種慣用手法
更新時(shí)間:2007年01月16日 00:00:00 作者:
首先,我們需要了解一些基本的防火墻實(shí)現(xiàn)原理。防火墻目前主要分包過(guò)濾,和狀態(tài)檢測(cè)的包過(guò)濾,應(yīng)用層代理防火墻。但是他們的基本實(shí)現(xiàn)都是類似的。
│ │---路由器-----網(wǎng)卡│防火墻│網(wǎng)卡│----------內(nèi)部網(wǎng)絡(luò)│ │
防火墻一般有兩個(gè)以上的網(wǎng)絡(luò)卡,一個(gè)連到外部(router),另一個(gè)是連到內(nèi)部網(wǎng)絡(luò)。當(dāng)打開(kāi)主機(jī)網(wǎng)絡(luò)轉(zhuǎn)發(fā)功能時(shí),兩個(gè)網(wǎng)卡間的網(wǎng)絡(luò)通訊能直接通過(guò)。當(dāng)有防火墻時(shí),他好比插在網(wǎng)卡之間,對(duì)所有的網(wǎng)絡(luò)通訊進(jìn)行控制。
說(shuō)到訪問(wèn)控制,這是防火墻的核心了:),防火墻主要通過(guò)一個(gè)訪問(wèn)控制表來(lái)判斷的,他的形式一般是一連串的如下規(guī)則:
1 accept from+ 源地址,端口 to+ 目的地址,端口+ 采取的動(dòng)作
2 deny ...........(deny就是拒絕。。)
3 nat ............(nat是地址轉(zhuǎn)換。后面說(shuō))
防火墻在網(wǎng)絡(luò)層(包括以下的煉路層)接受到網(wǎng)絡(luò)數(shù)據(jù)包后,就從上面的規(guī)則連表一條一條地匹配,如果符合就執(zhí)行預(yù)先安排的動(dòng)作了!如丟棄包。。。。
但是,不同的防火墻,在判斷攻擊行為時(shí),有實(shí)現(xiàn)上的差別。下面結(jié)合實(shí)現(xiàn)原理說(shuō)說(shuō)可能的攻擊。
二、攻擊包過(guò)濾防火墻
包過(guò)濾防火墻是最簡(jiǎn)單的一種了,它在網(wǎng)絡(luò)層截獲網(wǎng)絡(luò)數(shù)據(jù)包,根據(jù)防火墻的規(guī)則表,來(lái)檢測(cè)攻擊行為。他根據(jù)數(shù)據(jù)包的源IP地址;目的IP地址;TCP/UDP源端口;TCP/UDP目的端口來(lái)過(guò)濾??!很容易受到如下攻擊:
1 ip 欺騙攻擊:
這種攻擊,主要是修改數(shù)據(jù)包的源,目的地址和端口,模仿一些合法的數(shù)據(jù)包來(lái)騙過(guò)防火墻的檢測(cè)。如:外部攻擊者,將他的數(shù)據(jù)報(bào)源地址改為內(nèi)部網(wǎng)絡(luò)地址,防火墻看到是合法地址就放行了:)??墒?,如果防火墻能結(jié)合接口,地址來(lái)匹配,這種攻擊就不能成功了:(
2 d.o.s拒絕服務(wù)攻擊
簡(jiǎn)單的包過(guò)濾防火墻不能跟蹤 tcp的狀態(tài),很容易受到拒絕服務(wù)攻擊,一旦防火墻受到d.o.s攻擊,他可能會(huì)忙于處理,而忘記了他自己的過(guò)濾功能。:)你就可以饒過(guò)了,不過(guò)這樣攻擊還很少的。!
3 分片攻擊
這種攻擊的原理是:在IP的分片包中,所有的分片包用一個(gè)分片偏移字段標(biāo)志分片包的順序,但是,只有第一個(gè)分片包含有TCP端口號(hào)的信息。當(dāng)IP分片包通過(guò)分組過(guò)濾防火墻時(shí),防火墻只根據(jù)第一個(gè)分片包的Tcp信息判斷是否允許通過(guò),而其他后續(xù)的分片不作防火墻檢測(cè),直接讓它們通過(guò)。
這樣,攻擊者就可以通過(guò)先發(fā)送第一個(gè)合法的IP分片,騙過(guò)防火墻的檢測(cè),接著封裝了惡意數(shù)據(jù)的后續(xù)分片包就可以直接穿透防火墻,直接到達(dá)內(nèi)部網(wǎng)絡(luò)主機(jī),從而威脅網(wǎng)絡(luò)和主機(jī)的安全。
4 木馬攻擊
對(duì)于包過(guò)濾防火墻最有效的攻擊就是木馬了,一但你在內(nèi)部網(wǎng)絡(luò)安裝了木馬,防火墻基本上是無(wú)能為力的。
原因是:包過(guò)濾防火墻一般只過(guò)濾低端口(1-1024),而高端口他不可能過(guò)濾的(因?yàn)椋恍┓?wù)要用到高端口,因此防火墻不能關(guān)閉高端口的),所以很多的木馬都在高端口打開(kāi)等待,如冰河,subseven等。。。
但是木馬攻擊的前提是必須先上傳,運(yùn)行木馬,對(duì)于簡(jiǎn)單的包過(guò)濾防火墻來(lái)說(shuō),是容易做的。這里不寫(xiě)這個(gè)了。大概就是利用內(nèi)部網(wǎng)絡(luò)主機(jī)開(kāi)放的服務(wù)漏洞。
早期的防火墻都是這種簡(jiǎn)單的包過(guò)濾型的,到現(xiàn)在已很少了,不過(guò)也有。現(xiàn)在的包過(guò)濾采用的是狀態(tài)檢測(cè)技術(shù),下面談?wù)劆顟B(tài)檢測(cè)的包過(guò)濾防火墻。
三、攻擊狀態(tài)檢測(cè)的包過(guò)濾
狀態(tài)檢測(cè)技術(shù)最早是checkpoint提出的,在國(guó)內(nèi)的許多防火墻都聲稱實(shí)現(xiàn)了狀態(tài)檢測(cè)技術(shù)。
可是:)很多是沒(méi)有實(shí)現(xiàn)的。到底什么是狀態(tài)檢測(cè)?
一句話,狀態(tài)檢測(cè)就是從tcp連接的建立到終止都跟蹤檢測(cè)的技術(shù)。
原先的包過(guò)濾,是拿一個(gè)一個(gè)單獨(dú)的數(shù)據(jù)包來(lái)匹配規(guī)則的??墒俏覀冎?,同一個(gè)tcp連接,他的數(shù)據(jù)包是前后關(guān)聯(lián)的,先是syn包,-》數(shù)據(jù)包=》fin包。數(shù)據(jù)包的前后序列號(hào)是相關(guān)的。
如果割裂這些關(guān)系,單獨(dú)的過(guò)濾數(shù)據(jù)包,很容易被精心夠造的攻擊數(shù)據(jù)包欺騙!??!如nmap的攻擊掃描,就有利用syn包,fin包,reset包來(lái)探測(cè)防火墻后面的網(wǎng)絡(luò)。!
相反,一個(gè)完全的狀態(tài)檢測(cè)防火墻,他在發(fā)起連接就判斷,如果符合規(guī)則,就在內(nèi)存登記了這個(gè)連接的狀態(tài)信息(地址,port,選項(xiàng)。。),后續(xù)的屬于同一個(gè)連接的數(shù)據(jù)包,就不需要在檢測(cè)了。直接通過(guò)。而一些精心夠造的攻擊數(shù)據(jù)包由于沒(méi)有在內(nèi)存登記相應(yīng)的狀態(tài)信息,都被丟棄了。這樣這些攻擊數(shù)據(jù)包,就不能饒過(guò)防火墻了。
說(shuō)狀態(tài)檢測(cè)必須提到動(dòng)態(tài)規(guī)則技術(shù)。在狀態(tài)檢測(cè)里,采用動(dòng)態(tài)規(guī)則技術(shù),原先高端口的問(wèn)題就可以解決了。實(shí)現(xiàn)原理是:平時(shí),防火墻可以過(guò)濾內(nèi)部網(wǎng)絡(luò)的所有端口(1-65535),外部攻擊者難于發(fā)現(xiàn)入侵的切入點(diǎn),可是為了不影響正常的服務(wù),防火墻一但檢測(cè)到服務(wù)必須開(kāi)放高端口時(shí),如(ftp協(xié)議,irc等),防火墻在內(nèi)存就可以動(dòng)態(tài)地天加一條規(guī)則打開(kāi)相關(guān)的高端口。等服務(wù)完成后,這條規(guī)則就又被防火墻刪除。這樣,既保障了安全,又不影響正常服務(wù),速度也快。!
一般來(lái)說(shuō),完全實(shí)現(xiàn)了狀態(tài)檢測(cè)技術(shù)防火墻,智能性都比較高,一些掃描攻擊還能自動(dòng)的反應(yīng),因此,攻擊者要很小心才不會(huì)被發(fā)現(xiàn)。
但是,也有不少的攻擊手段對(duì)付這種防火墻的。
1 協(xié)議隧道攻擊
協(xié)議隧道的攻擊思想類似與VPN的實(shí)現(xiàn)原理,攻擊者將一些惡意的攻擊數(shù)據(jù)包隱藏在一些協(xié)議分組的頭部,從而穿透防火墻系統(tǒng)對(duì)內(nèi)部網(wǎng)絡(luò)進(jìn)行攻擊。
例如,許多簡(jiǎn)單地允許ICMP回射請(qǐng)求、ICMP回射應(yīng)答和UDP分組通過(guò)的防火墻就容易受到ICMP和UDP協(xié)議隧道的攻擊。Loki和lokid(攻擊的客戶端和服務(wù)端)是實(shí)施這種攻擊的有效的工具。在實(shí)際攻擊中,攻擊者首先必須設(shè)法在內(nèi)部網(wǎng)絡(luò)的一個(gè)系統(tǒng)上安裝上lokid服務(wù)端,而后攻擊者就可以通過(guò)loki客戶端將希望遠(yuǎn)程執(zhí)行的攻擊命令(對(duì)應(yīng)IP分組)嵌入在ICMP或UDP包頭部,再發(fā)送給內(nèi)部網(wǎng)絡(luò)服務(wù)端lokid,由它執(zhí)行其中的命令,并以同樣的方式返回結(jié)果。由
于許多防火墻允許ICMP和UDP分組自由出入,因此攻擊者的惡意數(shù)據(jù)就能附帶在正常的分組,繞過(guò)防火墻的認(rèn)證,順利地到達(dá)攻擊目標(biāo)主機(jī)下面的命令是用于啟動(dòng)lokid服務(wù)器程序:
lokid-p CI Cvl
loki客戶程序則如下啟動(dòng):
loki Cd172.29.11.191(攻擊目標(biāo)主機(jī))-p CI Cv1 Ct3
這樣,lokid和loki就聯(lián)合提供了一個(gè)穿透防火墻系統(tǒng)訪問(wèn)目標(biāo)系統(tǒng)的一個(gè)后門。
2 利用FTP-pasv繞過(guò)防火墻認(rèn)證的攻擊
FTP-pasv攻擊是針對(duì)防火墻實(shí)施入侵的重要手段之一。目前很多防火墻不能過(guò)濾這種攻擊手段。如CheckPoint的Firewall-1,在監(jiān)視FTP服務(wù)器發(fā)送給客戶端的包的過(guò)程中,它在每個(gè)包中尋找"227"這個(gè)字符串。如果發(fā)現(xiàn)這種包,將從中提取目標(biāo)地址和端口,并對(duì)目標(biāo)地址加以驗(yàn)證,通過(guò)后,將允許建立到該地址的TCP連接。
攻擊者通過(guò)這個(gè)特性,可以設(shè)法連接受防火墻保護(hù)的服務(wù)器和服務(wù)。
3 反彈木馬攻擊
反彈木馬是對(duì)付這種防火墻的最有效的方法。攻擊者在內(nèi)部網(wǎng)絡(luò)的反彈木馬定時(shí)地連接外部攻擊者控制的主機(jī),由于連接是從內(nèi)部發(fā)起的,防火墻(任何的防火墻)都認(rèn)為是一個(gè)合法的連接,因此基本上防火墻的盲區(qū)就是這里了。防火墻不能區(qū)分木馬的連接和合法的連接。
但是這種攻擊的局限是:必須首先安裝這個(gè)木馬?。?!所有的木馬的第一步都是關(guān)鍵!
四、攻擊代理
代理是運(yùn)行在應(yīng)用層的防火墻,他實(shí)質(zhì)是啟動(dòng)兩個(gè)連接,一個(gè)是客戶到代理,另一個(gè)是代理到目的服務(wù)器。
實(shí)現(xiàn)上比較簡(jiǎn)單,和前面的一樣也是根據(jù)規(guī)則過(guò)濾。由于運(yùn)行在應(yīng)用層速度比較慢/1
攻擊代理的方法很多。
這里就以wingate為例,簡(jiǎn)單說(shuō)說(shuō)了。(太累了)
WinGate是目前應(yīng)用非常廣泛的一種Windows95/NT代理防火墻軟件,內(nèi)部用戶可以通過(guò)一臺(tái)安裝有WinGate的主機(jī)訪問(wèn)外部網(wǎng)絡(luò),但是它也存在著幾個(gè)安全脆弱點(diǎn)。
黑客經(jīng)常利用這些安全漏洞獲得WinGate的非授權(quán)Web、Socks和Telnet的訪問(wèn),從而偽裝成WinGate主機(jī)的身份對(duì)下一個(gè)攻擊目標(biāo)發(fā)動(dòng)攻擊。因此,這種攻擊非常難于被跟蹤和記錄。
導(dǎo)致WinGate安全漏洞的原因大多數(shù)是管理員沒(méi)有根據(jù)網(wǎng)絡(luò)的實(shí)際情況對(duì)WinGate代理防火墻軟件進(jìn)行合理的設(shè)置,只是簡(jiǎn)單地從缺省設(shè)置安裝完畢后就讓軟件運(yùn)行,這就給攻擊者可乘之機(jī)。
1 非授權(quán)Web訪問(wèn)
某些WinGate版本(如運(yùn)行在NT系統(tǒng)下的2.1d版本)在誤配置情況下,允許外部主機(jī)完全匿名地訪問(wèn)因特網(wǎng)。因此,外部攻擊者就可以利用WinGate主機(jī)來(lái)對(duì)Web服務(wù)器發(fā)動(dòng)各種Web攻擊( 如CGI的漏洞攻擊等),同時(shí)由于Web攻擊的所有報(bào)文都是從80號(hào)Tcp端口穿過(guò)的,因此,很難追蹤到攻擊者的來(lái)源。
檢測(cè)
檢測(cè)WinGate主機(jī)是否有這種安全漏洞的方法如下:
1) 以一個(gè)不會(huì)被過(guò)濾掉的連接(譬如說(shuō)撥號(hào)連接)連接到因特網(wǎng)上。
2) 把瀏覽器的代理服務(wù)器地址指向待測(cè)試的WinGate主機(jī)。
如果瀏覽器能訪問(wèn)到因特網(wǎng),則WinGate主機(jī)存在著非授權(quán)Web訪問(wèn)漏洞。
2 非授權(quán)Socks訪問(wèn)
在WinGate的缺省配置中,Socks代理(1080號(hào)Tcp端口)同樣是存在安全漏洞。與打開(kāi)的Web代理(80號(hào)Tcp端口)一樣,外部攻擊者可以利用Socks代理訪問(wèn)因特網(wǎng)。
防范
要防止攻擊WinGate的這個(gè)安全脆弱點(diǎn),管理員可以限制特定服務(wù)的捆綁。在多宿主(multi homed)系統(tǒng)上,執(zhí)行以下步驟以限定如何提供代理服務(wù)。
1選擇Socks或WWWProxyServer屬性。
2選擇Bindings標(biāo)簽。
3按下ConnectionsWillBeAcceptedOnTheFollowingInterfaceOnly按鈕,并指定本W(wǎng)inGate服務(wù)器的內(nèi)部接口。
非授權(quán)Telnet訪問(wèn)
它是WinGate最具威脅的安全漏洞。通過(guò)連接到一個(gè)誤配置的inGate服務(wù)器的Telnet服務(wù),攻擊者可以使用別人的主機(jī)隱藏自己的蹤跡,隨意地發(fā)動(dòng)攻擊。
檢測(cè)
檢測(cè)WinGate主機(jī)是否有這種安全漏洞的方法如下:
1.使用telnet嘗試連接到一臺(tái)WinGate服務(wù)器。
[root@happy/tmp]#telnet172.29.11.191
Trying172.29.11.191….
Connectedto172.29.11.191.
Escapecharacteris‘^]'.
Wingate>10.50.21.5
2.如果接受到如上的響應(yīng)文本,那就輸入待連接到的網(wǎng)站。
3.如果看到了該新系統(tǒng)的登錄提示符,那么該服務(wù)器是脆弱的。
Connectedtohost10.50.21.5…Connected
SunOS5.6
Login:
對(duì)策
防止這種安全脆弱點(diǎn)的方法和防止非授權(quán)Socks訪問(wèn)的方法類似。在WinGate中簡(jiǎn)單地限制特定服務(wù)的捆綁就可以解決這個(gè)問(wèn)題。一般來(lái)說(shuō),在多宿主(multihomed)系統(tǒng)管理員可以通過(guò)執(zhí)行以下步驟來(lái)完成:
1.選擇TelnetSever屬性。
2.選擇Bindings標(biāo)簽。
3.按下ConnectionsWillBeAcceptedOnTheFollowingInterfaceOnly按鈕,并指定本W(wǎng)inGate服務(wù)器的內(nèi)部接口。
五、后話
有防火墻的攻擊不單是上面的一點(diǎn),我有什么寫(xiě)的不對(duì)的,大家指正。
一直以來(lái),黑客都在研究攻擊防火墻的技術(shù)和手段,攻擊的手法和技術(shù)越來(lái)越智能化和多樣化。但是就黑客攻擊防火墻的過(guò)程上看,大概可以分為三類攻擊。
第一類攻擊防火墻的方法是探測(cè)在目標(biāo)網(wǎng)絡(luò)上安裝的是何種防火墻系統(tǒng)并且找出此防火墻系統(tǒng)允許哪些服務(wù)。我們叫它為對(duì)防火墻的探測(cè)攻擊。
第二類攻擊防火墻的方法是采取地址欺騙、TCP序號(hào)攻擊等手法繞過(guò)防火墻的認(rèn)證機(jī)制,從而 對(duì)防火墻和內(nèi)部網(wǎng)絡(luò)破壞。
第三類攻擊防火墻的方法是尋找、利用防火墻系統(tǒng)實(shí)現(xiàn)和設(shè)計(jì)上的安全漏洞,從而有針對(duì)性地發(fā)動(dòng)攻擊。這種攻擊難度比較大,可是破壞性很大。
│ │---路由器-----網(wǎng)卡│防火墻│網(wǎng)卡│----------內(nèi)部網(wǎng)絡(luò)│ │
防火墻一般有兩個(gè)以上的網(wǎng)絡(luò)卡,一個(gè)連到外部(router),另一個(gè)是連到內(nèi)部網(wǎng)絡(luò)。當(dāng)打開(kāi)主機(jī)網(wǎng)絡(luò)轉(zhuǎn)發(fā)功能時(shí),兩個(gè)網(wǎng)卡間的網(wǎng)絡(luò)通訊能直接通過(guò)。當(dāng)有防火墻時(shí),他好比插在網(wǎng)卡之間,對(duì)所有的網(wǎng)絡(luò)通訊進(jìn)行控制。
說(shuō)到訪問(wèn)控制,這是防火墻的核心了:),防火墻主要通過(guò)一個(gè)訪問(wèn)控制表來(lái)判斷的,他的形式一般是一連串的如下規(guī)則:
1 accept from+ 源地址,端口 to+ 目的地址,端口+ 采取的動(dòng)作
2 deny ...........(deny就是拒絕。。)
3 nat ............(nat是地址轉(zhuǎn)換。后面說(shuō))
防火墻在網(wǎng)絡(luò)層(包括以下的煉路層)接受到網(wǎng)絡(luò)數(shù)據(jù)包后,就從上面的規(guī)則連表一條一條地匹配,如果符合就執(zhí)行預(yù)先安排的動(dòng)作了!如丟棄包。。。。
但是,不同的防火墻,在判斷攻擊行為時(shí),有實(shí)現(xiàn)上的差別。下面結(jié)合實(shí)現(xiàn)原理說(shuō)說(shuō)可能的攻擊。
二、攻擊包過(guò)濾防火墻
包過(guò)濾防火墻是最簡(jiǎn)單的一種了,它在網(wǎng)絡(luò)層截獲網(wǎng)絡(luò)數(shù)據(jù)包,根據(jù)防火墻的規(guī)則表,來(lái)檢測(cè)攻擊行為。他根據(jù)數(shù)據(jù)包的源IP地址;目的IP地址;TCP/UDP源端口;TCP/UDP目的端口來(lái)過(guò)濾??!很容易受到如下攻擊:
1 ip 欺騙攻擊:
這種攻擊,主要是修改數(shù)據(jù)包的源,目的地址和端口,模仿一些合法的數(shù)據(jù)包來(lái)騙過(guò)防火墻的檢測(cè)。如:外部攻擊者,將他的數(shù)據(jù)報(bào)源地址改為內(nèi)部網(wǎng)絡(luò)地址,防火墻看到是合法地址就放行了:)??墒?,如果防火墻能結(jié)合接口,地址來(lái)匹配,這種攻擊就不能成功了:(
2 d.o.s拒絕服務(wù)攻擊
簡(jiǎn)單的包過(guò)濾防火墻不能跟蹤 tcp的狀態(tài),很容易受到拒絕服務(wù)攻擊,一旦防火墻受到d.o.s攻擊,他可能會(huì)忙于處理,而忘記了他自己的過(guò)濾功能。:)你就可以饒過(guò)了,不過(guò)這樣攻擊還很少的。!
3 分片攻擊
這種攻擊的原理是:在IP的分片包中,所有的分片包用一個(gè)分片偏移字段標(biāo)志分片包的順序,但是,只有第一個(gè)分片包含有TCP端口號(hào)的信息。當(dāng)IP分片包通過(guò)分組過(guò)濾防火墻時(shí),防火墻只根據(jù)第一個(gè)分片包的Tcp信息判斷是否允許通過(guò),而其他后續(xù)的分片不作防火墻檢測(cè),直接讓它們通過(guò)。
這樣,攻擊者就可以通過(guò)先發(fā)送第一個(gè)合法的IP分片,騙過(guò)防火墻的檢測(cè),接著封裝了惡意數(shù)據(jù)的后續(xù)分片包就可以直接穿透防火墻,直接到達(dá)內(nèi)部網(wǎng)絡(luò)主機(jī),從而威脅網(wǎng)絡(luò)和主機(jī)的安全。
4 木馬攻擊
對(duì)于包過(guò)濾防火墻最有效的攻擊就是木馬了,一但你在內(nèi)部網(wǎng)絡(luò)安裝了木馬,防火墻基本上是無(wú)能為力的。
原因是:包過(guò)濾防火墻一般只過(guò)濾低端口(1-1024),而高端口他不可能過(guò)濾的(因?yàn)椋恍┓?wù)要用到高端口,因此防火墻不能關(guān)閉高端口的),所以很多的木馬都在高端口打開(kāi)等待,如冰河,subseven等。。。
但是木馬攻擊的前提是必須先上傳,運(yùn)行木馬,對(duì)于簡(jiǎn)單的包過(guò)濾防火墻來(lái)說(shuō),是容易做的。這里不寫(xiě)這個(gè)了。大概就是利用內(nèi)部網(wǎng)絡(luò)主機(jī)開(kāi)放的服務(wù)漏洞。
早期的防火墻都是這種簡(jiǎn)單的包過(guò)濾型的,到現(xiàn)在已很少了,不過(guò)也有。現(xiàn)在的包過(guò)濾采用的是狀態(tài)檢測(cè)技術(shù),下面談?wù)劆顟B(tài)檢測(cè)的包過(guò)濾防火墻。
三、攻擊狀態(tài)檢測(cè)的包過(guò)濾
狀態(tài)檢測(cè)技術(shù)最早是checkpoint提出的,在國(guó)內(nèi)的許多防火墻都聲稱實(shí)現(xiàn)了狀態(tài)檢測(cè)技術(shù)。
可是:)很多是沒(méi)有實(shí)現(xiàn)的。到底什么是狀態(tài)檢測(cè)?
一句話,狀態(tài)檢測(cè)就是從tcp連接的建立到終止都跟蹤檢測(cè)的技術(shù)。
原先的包過(guò)濾,是拿一個(gè)一個(gè)單獨(dú)的數(shù)據(jù)包來(lái)匹配規(guī)則的??墒俏覀冎?,同一個(gè)tcp連接,他的數(shù)據(jù)包是前后關(guān)聯(lián)的,先是syn包,-》數(shù)據(jù)包=》fin包。數(shù)據(jù)包的前后序列號(hào)是相關(guān)的。
如果割裂這些關(guān)系,單獨(dú)的過(guò)濾數(shù)據(jù)包,很容易被精心夠造的攻擊數(shù)據(jù)包欺騙!??!如nmap的攻擊掃描,就有利用syn包,fin包,reset包來(lái)探測(cè)防火墻后面的網(wǎng)絡(luò)。!
相反,一個(gè)完全的狀態(tài)檢測(cè)防火墻,他在發(fā)起連接就判斷,如果符合規(guī)則,就在內(nèi)存登記了這個(gè)連接的狀態(tài)信息(地址,port,選項(xiàng)。。),后續(xù)的屬于同一個(gè)連接的數(shù)據(jù)包,就不需要在檢測(cè)了。直接通過(guò)。而一些精心夠造的攻擊數(shù)據(jù)包由于沒(méi)有在內(nèi)存登記相應(yīng)的狀態(tài)信息,都被丟棄了。這樣這些攻擊數(shù)據(jù)包,就不能饒過(guò)防火墻了。
說(shuō)狀態(tài)檢測(cè)必須提到動(dòng)態(tài)規(guī)則技術(shù)。在狀態(tài)檢測(cè)里,采用動(dòng)態(tài)規(guī)則技術(shù),原先高端口的問(wèn)題就可以解決了。實(shí)現(xiàn)原理是:平時(shí),防火墻可以過(guò)濾內(nèi)部網(wǎng)絡(luò)的所有端口(1-65535),外部攻擊者難于發(fā)現(xiàn)入侵的切入點(diǎn),可是為了不影響正常的服務(wù),防火墻一但檢測(cè)到服務(wù)必須開(kāi)放高端口時(shí),如(ftp協(xié)議,irc等),防火墻在內(nèi)存就可以動(dòng)態(tài)地天加一條規(guī)則打開(kāi)相關(guān)的高端口。等服務(wù)完成后,這條規(guī)則就又被防火墻刪除。這樣,既保障了安全,又不影響正常服務(wù),速度也快。!
一般來(lái)說(shuō),完全實(shí)現(xiàn)了狀態(tài)檢測(cè)技術(shù)防火墻,智能性都比較高,一些掃描攻擊還能自動(dòng)的反應(yīng),因此,攻擊者要很小心才不會(huì)被發(fā)現(xiàn)。
但是,也有不少的攻擊手段對(duì)付這種防火墻的。
1 協(xié)議隧道攻擊
協(xié)議隧道的攻擊思想類似與VPN的實(shí)現(xiàn)原理,攻擊者將一些惡意的攻擊數(shù)據(jù)包隱藏在一些協(xié)議分組的頭部,從而穿透防火墻系統(tǒng)對(duì)內(nèi)部網(wǎng)絡(luò)進(jìn)行攻擊。
例如,許多簡(jiǎn)單地允許ICMP回射請(qǐng)求、ICMP回射應(yīng)答和UDP分組通過(guò)的防火墻就容易受到ICMP和UDP協(xié)議隧道的攻擊。Loki和lokid(攻擊的客戶端和服務(wù)端)是實(shí)施這種攻擊的有效的工具。在實(shí)際攻擊中,攻擊者首先必須設(shè)法在內(nèi)部網(wǎng)絡(luò)的一個(gè)系統(tǒng)上安裝上lokid服務(wù)端,而后攻擊者就可以通過(guò)loki客戶端將希望遠(yuǎn)程執(zhí)行的攻擊命令(對(duì)應(yīng)IP分組)嵌入在ICMP或UDP包頭部,再發(fā)送給內(nèi)部網(wǎng)絡(luò)服務(wù)端lokid,由它執(zhí)行其中的命令,并以同樣的方式返回結(jié)果。由
于許多防火墻允許ICMP和UDP分組自由出入,因此攻擊者的惡意數(shù)據(jù)就能附帶在正常的分組,繞過(guò)防火墻的認(rèn)證,順利地到達(dá)攻擊目標(biāo)主機(jī)下面的命令是用于啟動(dòng)lokid服務(wù)器程序:
lokid-p CI Cvl
loki客戶程序則如下啟動(dòng):
loki Cd172.29.11.191(攻擊目標(biāo)主機(jī))-p CI Cv1 Ct3
這樣,lokid和loki就聯(lián)合提供了一個(gè)穿透防火墻系統(tǒng)訪問(wèn)目標(biāo)系統(tǒng)的一個(gè)后門。
2 利用FTP-pasv繞過(guò)防火墻認(rèn)證的攻擊
FTP-pasv攻擊是針對(duì)防火墻實(shí)施入侵的重要手段之一。目前很多防火墻不能過(guò)濾這種攻擊手段。如CheckPoint的Firewall-1,在監(jiān)視FTP服務(wù)器發(fā)送給客戶端的包的過(guò)程中,它在每個(gè)包中尋找"227"這個(gè)字符串。如果發(fā)現(xiàn)這種包,將從中提取目標(biāo)地址和端口,并對(duì)目標(biāo)地址加以驗(yàn)證,通過(guò)后,將允許建立到該地址的TCP連接。
攻擊者通過(guò)這個(gè)特性,可以設(shè)法連接受防火墻保護(hù)的服務(wù)器和服務(wù)。
3 反彈木馬攻擊
反彈木馬是對(duì)付這種防火墻的最有效的方法。攻擊者在內(nèi)部網(wǎng)絡(luò)的反彈木馬定時(shí)地連接外部攻擊者控制的主機(jī),由于連接是從內(nèi)部發(fā)起的,防火墻(任何的防火墻)都認(rèn)為是一個(gè)合法的連接,因此基本上防火墻的盲區(qū)就是這里了。防火墻不能區(qū)分木馬的連接和合法的連接。
但是這種攻擊的局限是:必須首先安裝這個(gè)木馬?。?!所有的木馬的第一步都是關(guān)鍵!
四、攻擊代理
代理是運(yùn)行在應(yīng)用層的防火墻,他實(shí)質(zhì)是啟動(dòng)兩個(gè)連接,一個(gè)是客戶到代理,另一個(gè)是代理到目的服務(wù)器。
實(shí)現(xiàn)上比較簡(jiǎn)單,和前面的一樣也是根據(jù)規(guī)則過(guò)濾。由于運(yùn)行在應(yīng)用層速度比較慢/1
攻擊代理的方法很多。
這里就以wingate為例,簡(jiǎn)單說(shuō)說(shuō)了。(太累了)
WinGate是目前應(yīng)用非常廣泛的一種Windows95/NT代理防火墻軟件,內(nèi)部用戶可以通過(guò)一臺(tái)安裝有WinGate的主機(jī)訪問(wèn)外部網(wǎng)絡(luò),但是它也存在著幾個(gè)安全脆弱點(diǎn)。
黑客經(jīng)常利用這些安全漏洞獲得WinGate的非授權(quán)Web、Socks和Telnet的訪問(wèn),從而偽裝成WinGate主機(jī)的身份對(duì)下一個(gè)攻擊目標(biāo)發(fā)動(dòng)攻擊。因此,這種攻擊非常難于被跟蹤和記錄。
導(dǎo)致WinGate安全漏洞的原因大多數(shù)是管理員沒(méi)有根據(jù)網(wǎng)絡(luò)的實(shí)際情況對(duì)WinGate代理防火墻軟件進(jìn)行合理的設(shè)置,只是簡(jiǎn)單地從缺省設(shè)置安裝完畢后就讓軟件運(yùn)行,這就給攻擊者可乘之機(jī)。
1 非授權(quán)Web訪問(wèn)
某些WinGate版本(如運(yùn)行在NT系統(tǒng)下的2.1d版本)在誤配置情況下,允許外部主機(jī)完全匿名地訪問(wèn)因特網(wǎng)。因此,外部攻擊者就可以利用WinGate主機(jī)來(lái)對(duì)Web服務(wù)器發(fā)動(dòng)各種Web攻擊( 如CGI的漏洞攻擊等),同時(shí)由于Web攻擊的所有報(bào)文都是從80號(hào)Tcp端口穿過(guò)的,因此,很難追蹤到攻擊者的來(lái)源。
檢測(cè)
檢測(cè)WinGate主機(jī)是否有這種安全漏洞的方法如下:
1) 以一個(gè)不會(huì)被過(guò)濾掉的連接(譬如說(shuō)撥號(hào)連接)連接到因特網(wǎng)上。
2) 把瀏覽器的代理服務(wù)器地址指向待測(cè)試的WinGate主機(jī)。
如果瀏覽器能訪問(wèn)到因特網(wǎng),則WinGate主機(jī)存在著非授權(quán)Web訪問(wèn)漏洞。
2 非授權(quán)Socks訪問(wèn)
在WinGate的缺省配置中,Socks代理(1080號(hào)Tcp端口)同樣是存在安全漏洞。與打開(kāi)的Web代理(80號(hào)Tcp端口)一樣,外部攻擊者可以利用Socks代理訪問(wèn)因特網(wǎng)。
防范
要防止攻擊WinGate的這個(gè)安全脆弱點(diǎn),管理員可以限制特定服務(wù)的捆綁。在多宿主(multi homed)系統(tǒng)上,執(zhí)行以下步驟以限定如何提供代理服務(wù)。
1選擇Socks或WWWProxyServer屬性。
2選擇Bindings標(biāo)簽。
3按下ConnectionsWillBeAcceptedOnTheFollowingInterfaceOnly按鈕,并指定本W(wǎng)inGate服務(wù)器的內(nèi)部接口。
非授權(quán)Telnet訪問(wèn)
它是WinGate最具威脅的安全漏洞。通過(guò)連接到一個(gè)誤配置的inGate服務(wù)器的Telnet服務(wù),攻擊者可以使用別人的主機(jī)隱藏自己的蹤跡,隨意地發(fā)動(dòng)攻擊。
檢測(cè)
檢測(cè)WinGate主機(jī)是否有這種安全漏洞的方法如下:
1.使用telnet嘗試連接到一臺(tái)WinGate服務(wù)器。
[root@happy/tmp]#telnet172.29.11.191
Trying172.29.11.191….
Connectedto172.29.11.191.
Escapecharacteris‘^]'.
Wingate>10.50.21.5
2.如果接受到如上的響應(yīng)文本,那就輸入待連接到的網(wǎng)站。
3.如果看到了該新系統(tǒng)的登錄提示符,那么該服務(wù)器是脆弱的。
Connectedtohost10.50.21.5…Connected
SunOS5.6
Login:
對(duì)策
防止這種安全脆弱點(diǎn)的方法和防止非授權(quán)Socks訪問(wèn)的方法類似。在WinGate中簡(jiǎn)單地限制特定服務(wù)的捆綁就可以解決這個(gè)問(wèn)題。一般來(lái)說(shuō),在多宿主(multihomed)系統(tǒng)管理員可以通過(guò)執(zhí)行以下步驟來(lái)完成:
1.選擇TelnetSever屬性。
2.選擇Bindings標(biāo)簽。
3.按下ConnectionsWillBeAcceptedOnTheFollowingInterfaceOnly按鈕,并指定本W(wǎng)inGate服務(wù)器的內(nèi)部接口。
五、后話
有防火墻的攻擊不單是上面的一點(diǎn),我有什么寫(xiě)的不對(duì)的,大家指正。
一直以來(lái),黑客都在研究攻擊防火墻的技術(shù)和手段,攻擊的手法和技術(shù)越來(lái)越智能化和多樣化。但是就黑客攻擊防火墻的過(guò)程上看,大概可以分為三類攻擊。
第一類攻擊防火墻的方法是探測(cè)在目標(biāo)網(wǎng)絡(luò)上安裝的是何種防火墻系統(tǒng)并且找出此防火墻系統(tǒng)允許哪些服務(wù)。我們叫它為對(duì)防火墻的探測(cè)攻擊。
第二類攻擊防火墻的方法是采取地址欺騙、TCP序號(hào)攻擊等手法繞過(guò)防火墻的認(rèn)證機(jī)制,從而 對(duì)防火墻和內(nèi)部網(wǎng)絡(luò)破壞。
第三類攻擊防火墻的方法是尋找、利用防火墻系統(tǒng)實(shí)現(xiàn)和設(shè)計(jì)上的安全漏洞,從而有針對(duì)性地發(fā)動(dòng)攻擊。這種攻擊難度比較大,可是破壞性很大。
相關(guān)文章
DVBBS7.0Sp2前臺(tái)提權(quán)漏洞利用程序[Kendy版]源碼
DVBBS7.0Sp2前臺(tái)提權(quán)漏洞利用程序[Kendy版]源碼...2007-01-01Sql Injection in DB2數(shù)據(jù)庫(kù)
Sql Injection in DB2數(shù)據(jù)庫(kù)...2007-01-01為動(dòng)網(wǎng)論壇添加一個(gè)密碼嗅探器(DVBBS)
為動(dòng)網(wǎng)論壇添加一個(gè)密碼嗅探器(DVBBS)...2007-01-01揭露88red生成htm靜態(tài)頁(yè)面企業(yè)建站系統(tǒng)漏洞
88red生成htm靜態(tài)頁(yè)面企業(yè)建站系統(tǒng)后門利用代碼,用88red做企業(yè)占的朋友可要注意了2008-05-05