如何突破各種防火墻的防護
防火墻借由監(jiān)測所有的封包并找出不符規(guī)則的內(nèi)容,可以防范電腦蠕蟲或是木馬程序的快速蔓延?,F(xiàn)在隨著人們的安全意識加強,防火墻一般都被公司企業(yè)采用來保障網(wǎng)絡的安全,一般的攻擊者在有防火墻的情況下,一般是很難入侵的。下面談談有防火墻環(huán)境下的攻擊和檢測。
方法步驟
一 防火墻基本原理
首先,我們需要了解一些基本的防火墻實現(xiàn)原理。防火墻目前主要分包過濾,和狀態(tài)檢測的包過濾,應用層代理防火墻。但是他們的基本實現(xiàn)都是類似的。
│ │---路由器-----網(wǎng)卡│防火墻│網(wǎng)卡│----------內(nèi)部網(wǎng)絡│ │
防火墻一般有兩個以上的網(wǎng)絡卡,一個連到外部(router),另一個是連到內(nèi)部網(wǎng)絡。當打開主機網(wǎng)絡轉(zhuǎn)發(fā)功能時,兩個網(wǎng)卡間的網(wǎng)絡通訊能直接通過。當有防火墻時,他好比插在網(wǎng)卡之間,對所有的網(wǎng)絡通訊進行控制。
說到訪問控制,這是防火墻的核心了:),防火墻主要通過一個訪問控制表來判斷的,他的形式一般是一連串的如下規(guī)則:
1 accept from+ 源地址,端口 to+ 目的地址,端口+ 采取的動作
2 deny ...........(deny就是拒絕。。)
3 nat ............(nat是地址轉(zhuǎn)換。后面說)
防火墻在網(wǎng)絡層(包括以下的煉路層)接受到網(wǎng)絡數(shù)據(jù)包后,就從上面的規(guī)則連表一條一條地匹配,如果符合就執(zhí)行預先安排的動作了!如丟棄包。。。。
但是,不同的防火墻,在判斷攻擊行為時,有實現(xiàn)上的差別。下面結(jié)合實現(xiàn)原理說說可能的攻擊。
二 攻擊包過濾防火墻
包過濾防火墻是最簡單的一種了,它在網(wǎng)絡層截獲網(wǎng)絡數(shù)據(jù)包,根據(jù)防火墻的規(guī)則表,來檢測攻擊行為。他根據(jù)數(shù)據(jù)包的源IP地址;目的IP地址;TCP/UDP源端口;TCP/UDP目的端口來過濾!!很容易受到如下攻擊:
1 ip 欺騙攻擊:
這種攻擊,主要是修改數(shù)據(jù)包的源,目的地址和端口,模仿一些合法的數(shù)據(jù)包來騙過防火墻的檢測。如:外部攻擊者,將他的數(shù)據(jù)報源地址改為內(nèi)部網(wǎng)絡地址,防火墻看到是合法地址就放行了:)。可是,如果防火墻能結(jié)合接口,地址來匹配,這種攻擊就不能成功了:(
2 d.o.s拒絕服務攻擊
簡單的包過濾防火墻不能跟蹤 tcp的狀態(tài),很容易受到拒絕服務攻擊,一旦防火墻受到d.o.s攻擊,他可能會忙于處理,而忘記了他自己的過濾功能。:)你就可以饒過了,不過這樣攻擊還很少的。!
3 分片攻擊
這種攻擊的原理是:在IP的分片包中,所有的分片包用一個分片偏移字段標志分片包的順序,但是,只有第一個分片包含有TCP端口號的信息。當IP分片包通過分組過濾防火墻時,防火墻只根據(jù)第一個分片包的Tcp信息判斷是否允許通過,而其他后續(xù)的分片不作防火墻檢測,直接讓它們通過。
這樣,攻擊者就可以通過先發(fā)送第一個合法的IP分片,騙過防火墻的檢測,接著封裝了惡意數(shù)據(jù)的后續(xù)分片包就可以直接穿透防火墻,直接到達內(nèi)部網(wǎng)絡主機,從而威脅網(wǎng)絡和主機的安全。
4 木馬攻擊
對于包過濾防火墻最有效的攻擊就是木馬了,一但你在內(nèi)部網(wǎng)絡安裝了木馬,防火墻基本上是無能為力的。
原因是:包過濾防火墻一般只過濾低端口(1-1024),而高端口他不可能過濾的(因為,一些服務要用到高端口,因此防火墻不能關(guān)閉高端口的),所以很多的木馬都在高端口打開等待,如冰河,subseven等。。。
但是木馬攻擊的前提是必須先上傳,運行木馬,對于簡單的包過濾防火墻來說,是容易做的。這里不寫這個了。大概就是利用內(nèi)部網(wǎng)絡主機開放的服務漏洞。
早期的防火墻都是這種簡單的包過濾型的,到現(xiàn)在已很少了,不過也有?,F(xiàn)在的包過濾采用的是狀態(tài)檢測技術(shù),下面談談狀態(tài)檢測的包過濾防火墻。
三 攻擊狀態(tài)檢測的包過濾
狀態(tài)檢測技術(shù)最早是checkpoint提出的,在國內(nèi)的許多防火墻都聲稱實現(xiàn)了狀態(tài)檢測技術(shù)。
可是:)很多是沒有實現(xiàn)的。到底什么是狀態(tài)檢測?
一句話,狀態(tài)檢測就是從tcp連接的建立到終止都跟蹤檢測的技術(shù)。
原先的包過濾,是拿一個一個單獨的數(shù)據(jù)包來匹配規(guī)則的??墒俏覀冎溃粋€tcp連接,他的數(shù)據(jù)包是前后關(guān)聯(lián)的,先是syn包,-》數(shù)據(jù)包=》fin包。數(shù)據(jù)包的前后序列號是相關(guān)的。
如果割裂這些關(guān)系,單獨的過濾數(shù)據(jù)包,很容易被精心夠造的攻擊數(shù)據(jù)包欺騙!!!如nmap的攻擊掃描,就有利用syn包,fin包,reset包來探測防火墻后面的網(wǎng)絡。!
相反,一個完全的狀態(tài)檢測防火墻,他在發(fā)起連接就判斷,如果符合規(guī)則,就在內(nèi)存登記了這個連接的狀態(tài)信息(地址,port,選項。。),后續(xù)的屬于同一個連接的數(shù)據(jù)包,就不需要在檢測了。直接通過。而一些精心夠造的攻擊數(shù)據(jù)包由于沒有在內(nèi)存登記相應的狀態(tài)信息,都被丟棄了。這樣這些攻擊數(shù)據(jù)包,就不能饒過防火墻了。
說狀態(tài)檢測必須提到動態(tài)規(guī)則技術(shù)。在狀態(tài)檢測里,采用動態(tài)規(guī)則技術(shù),原先高端口的問題就可以解決了。實現(xiàn)原理是:平時,防火墻可以過濾內(nèi)部網(wǎng)絡的所有端口(1-65535),外部攻擊者難于發(fā)現(xiàn)入侵的切入點,可是為了不影響正常的服務,防火墻一但檢測到服務必須開放高端口時,如(ftp協(xié)議,irc等),防火墻在內(nèi)存就可以動態(tài)地天加一條規(guī)則打開相關(guān)的高端口。等服務完成后,這條規(guī)則就又被防火墻刪除。這樣,既保障了安全,又不影響正常服務,速度也快。!
一般來說,完全實現(xiàn)了狀態(tài)檢測技術(shù)防火墻,智能性都比較高,一些掃描攻擊還能自動的反應,因此,攻擊者要很小心才不會被發(fā)現(xiàn)。
但是,也有不少的攻擊手段對付這種防火墻的。
1 協(xié)議隧道攻擊
協(xié)議隧道的攻擊思想類似的實現(xiàn)原理,攻擊者將一些惡意的攻擊數(shù)據(jù)包隱藏在一些協(xié)議分組的頭部,從而穿透防火墻系統(tǒng)對內(nèi)部網(wǎng)絡進行攻擊。
例如,許多簡單地允許ICMP回射請求、ICMP回射應答和UDP分組通過的防火墻就容易受到ICMP和UDP協(xié)議隧道的攻擊。Loki和lokid(攻擊的客戶端和服務端)是實施這種攻擊的有效的工具。在實際攻擊中,攻擊者首先必須設(shè)法在內(nèi)部網(wǎng)絡的一個系統(tǒng)上安裝上lokid服務端,而后攻擊者就可以通過loki客戶端將希望遠程執(zhí)行的攻擊命令(對應IP分組)嵌入在ICMP或UDP包頭部,再發(fā)送給內(nèi)部網(wǎng)絡服務端lokid,由它執(zhí)行其中的命令,并以同樣的方式返回結(jié)果。由
于許多防火墻允許ICMP和UDP分組自由出入,因此攻擊者的惡意數(shù)據(jù)就能附帶在正常的分組,繞過防火墻的認證,順利地到達攻擊目標主機下面的命令是用于啟動lokid服務器程序:
lokid-p–I–vl
loki客戶程序則如下啟動:
loki–d172.29.11.191(攻擊目標主機)-p–I–v1–t3
這樣,lokid和loki就聯(lián)合提供了一個穿透防火墻系統(tǒng)訪問目標系統(tǒng)的一個后門。
2 利用FTP-pasv繞過防火墻認證的攻擊
FTP-pasv攻擊是針對防火墻實施入侵的重要手段之一。目前很多防火墻不能過濾這種攻擊手段。如CheckPoint的Firewall-1,在監(jiān)視FTP服務器發(fā)送給客戶端的包的過程中,它在每個包中尋找"227"這個字符串。如果發(fā)現(xiàn)這種包,將從中提取目標地址和端口,并對目標地址加以驗證,通過后,將允許建立到該地址的TCP連接。
攻擊者通過這個特性,可以設(shè)法連接受防火墻保護的服務器和服務。詳細的描述可見:http://www.checkpoint.com/techsupport/alerts/pasvftp.html。
3 反彈木馬攻擊
反彈木馬是對付這種防火墻的最有效的方法。攻擊者在內(nèi)部網(wǎng)絡的反彈木馬定時地連接外部攻擊者控制的主機,由于連接是從內(nèi)部發(fā)起的,防火墻(任何的防火墻)都認為是一個合法的連接,因此基本上防火墻的盲區(qū)就是這里了。防火墻不能區(qū)分木馬的連接和合法的連接。
但是這種攻擊的局限是:必須首先安裝這個木馬!!!所有的木馬的第一步都是關(guān)鍵!!!
四 攻擊代理
代理是運行在應用層的防火墻,他實質(zhì)是啟動兩個連接,一個是客戶到代理,另一個是代理到目的服務器。
實現(xiàn)上比較簡單,和前面的一樣也是根據(jù)規(guī)則過濾。由于運行在應用層速度比較慢/1
攻擊代理的方法很多。
這里就以wingate為例,簡單說說了。(太累了)
WinGate是目前應用非常廣泛的一種Windows95/NT代理防火墻軟件,內(nèi)部用戶可以通過一臺安裝有WinGate的主機訪問外部網(wǎng)絡,但是它也存在著幾個安全脆弱點。
黑客經(jīng)常利用這些安全漏洞獲得WinGate的非授權(quán)Web、Socks和Telnet的訪問,從而偽裝成WinGate主機的身份對下一個攻擊目標發(fā)動攻擊。因此,這種攻擊非常難于被跟蹤和記錄。
導致WinGate安全漏洞的原因大多數(shù)是管理員沒有根據(jù)網(wǎng)絡的實際情況對WinGate代理防火墻軟件進行合理的設(shè)置,只是簡單地從缺省設(shè)置安裝完畢后就讓軟件運行,這就給攻擊者可乘之機。
1 非授權(quán)Web訪問
某些WinGate版本(如運行在NT系統(tǒng)下的2.1d版本)在誤配置情況下,允許外部主機完全匿名地訪問因特網(wǎng)。因此,外部攻擊者就可以利用WinGate主機來對Web服務器發(fā)動各種Web攻擊( 如CGI的漏洞攻擊等),同時由于Web攻擊的所有報文都是從80號Tcp端口穿過的,因此,很難追蹤到攻擊者的來源。
檢測
檢測WinGate主機是否有這種安全漏洞的方法如下:
1) 以一個不會被過濾掉的連接(譬如說撥號連接)連接到因特網(wǎng)上。
2) 把瀏覽器的代理服務器地址指向待測試的WinGate主機。
如果瀏覽器能訪問到因特網(wǎng),則WinGate主機存在著非授權(quán)Web訪問漏洞。
2 非授權(quán)Socks訪問
在WinGate的缺省配置中,Socks代理(1080號Tcp端口)同樣是存在安全漏洞。與打開的Web代理(80號Tcp端口)一樣,外部攻擊者可以利用Socks代理訪問因特網(wǎng)。
防范
要防止攻擊WinGate的這個安全脆弱點,管理員可以限制特定服務的捆綁。在多宿主(multi homed)系統(tǒng)上,執(zhí)行以下步驟以限定如何提供代理服務。
1選擇Socks或WWWProxyServer屬性。
2選擇Bindings標簽。
3按下ConnectionsWillBeAcceptedOnTheFollowingInterfaceOnly按鈕,并指定本W(wǎng)inGate服務器的內(nèi)部接口。
非授權(quán)Telnet訪問
它是WinGate最具威脅的安全漏洞。通過連接到一個誤配置的inGate服務器的Telnet服務,攻擊者可以使用別人的主機隱藏自己的蹤跡,隨意地發(fā)動攻擊。
檢測
檢測WinGate主機是否有這種安全漏洞的方法如下:
1.使用telnet嘗試連接到一臺WinGate服務器。
[root@happy/tmp]#telnet172.29.11.191
Trying172.29.11.191….
Connectedto172.29.11.191.
Escapecharacteris‘^]'.
Wingate>10.50.21.5
2.如果接受到如上的響應文本,那就輸入待連接到的網(wǎng)站。
3.如果看到了該新系統(tǒng)的登錄提示符,那么該服務器是脆弱的。
Connectedtohost10.50.21.5…Connected
SunOS5.6
Login:
對策
防止這種安全脆弱點的方法和防止非授權(quán)Socks訪問的方法類似。在WinGate中簡單地限制特定服務的捆綁就可以解決這個問題。一般來說,在多宿主(multihomed)系統(tǒng)管理員可以通過執(zhí)行以下步驟來完成:
1.選擇TelnetSever屬性。
2.選擇Bindings標簽。
3.按下ConnectionsWillBeAcceptedOnTheFollowingInterfaceOnly按鈕,并指定本W(wǎng)inGate服務器的內(nèi)部接口。
補充閱讀:防火墻主要使用技巧
一、所有的防火墻文件規(guī)則必須更改。
盡管這種方法聽起來很容易,但是由于防火墻沒有內(nèi)置的變動管理流程,因此文件更改對于許多企業(yè)來說都不是最佳的實踐方法。如果防火墻管理員因為突發(fā)情況或者一些其他形式的業(yè)務中斷做出更改,那么他撞到槍口上的可能性就會比較大。但是如果這種更改抵消了之前的協(xié)議更改,會導致宕機嗎?這是一個相當高發(fā)的狀況。
防火墻管理產(chǎn)品的中央控制臺能全面可視所有的防火墻規(guī)則基礎(chǔ),因此團隊的所有成員都必須達成共識,觀察誰進行了何種更改。這樣就能及時發(fā)現(xiàn)并修理故障,讓整個協(xié)議管理更加簡單和高效。
二、以最小的權(quán)限安裝所有的訪問規(guī)則。
另一個常見的安全問題是權(quán)限過度的規(guī)則設(shè)置。防火墻規(guī)則是由三個域構(gòu)成的:即源(IP地址),目的地(網(wǎng)絡/子網(wǎng)絡)和服務(應用軟件或者其他目的地)。為了確保每個用戶都有足夠的端口來訪問他們所需的系統(tǒng),常用方法是在一個或者更多域內(nèi)指定打來那個的目標對象。當你出于業(yè)務持續(xù)性的需要允許大范圍的IP地址來訪問大型企業(yè)的網(wǎng)絡,這些規(guī)則就會變得權(quán)限過度釋放,因此就會增加不安全因素。服務域的規(guī)則是開放65535個TCP端口的ANY。防火墻管理員真的就意味著為黑客開放了65535個攻擊矢量?
三、根據(jù)法規(guī)協(xié)議和更改需求來校驗每項防火墻的更改。
在防火墻操作中,日常工作都是以尋找問題,修正問題和安裝新系統(tǒng)為中心的。在安裝最新防火墻規(guī)則來解決問題,應用新產(chǎn)品和業(yè)務部門的過程中,我們經(jīng)常會遺忘防火墻也是企業(yè)安全協(xié)議的物理執(zhí)行者。每項規(guī)則都應該重新審核來確保它能符合安全協(xié)議和任何法規(guī)協(xié)議的內(nèi)容和精神,而不僅是一篇法律條文。
四、當服務過期后從防火墻規(guī)則中刪除無用的規(guī)則。
規(guī)則膨脹是防火墻經(jīng)常會出現(xiàn)的安全問題,因為多數(shù)運作團隊都沒有刪除規(guī)則的流程。業(yè)務部門擅長讓你知道他們了解這些新規(guī)則,卻從來不會讓防火墻團隊知道他們不再使用某些服務了。了解退役的服務器和網(wǎng)絡以及應用軟件更新周期對于達成規(guī)則共識是個好的開始。運行無用規(guī)則的報表是另外一步。黑客喜歡從來不刪除規(guī)則的防火墻團隊。
如何突破各種防火墻的防護相關(guān)文章:
1.怎么破防火墻