作者KSfish (牧場裡的蠢牛)
看板share
標題[資訊] 如何突破各種防火牆
時間Sun Mar 6 17:28:34 2005
現在隨著人們的安全意識加強,防火牆一般都被公司企業採用來保障網絡的安全,一般
的攻擊者在有防火牆的情況下,一般是很難入侵的。下面談談有防火牆環境下的攻擊和
檢測。
一 防火牆基本原理
首先,我們需要瞭解一些基本的防火牆實現原理。防火牆目前主要分包過濾,和狀
態檢測的包過濾,應用層代理防火牆。但是他們的基本實現都是類似的。
│ │---路由器-----網卡│防火牆│網卡│----------內部網絡│ │
防火牆一般有兩個以上的網絡卡,一個連到外部(router),另一個是連到內部網
絡。當打開主機網絡轉發功能時,兩個網卡間的網絡通訊能直接通過。當有防火牆時,
他好比插在網卡之間,對所有的網絡通訊進行控制。
說到訪問控制,這是防火牆的核心了:),防火牆主要通過一個訪問控制表來判斷
的,他的形式一般是一連串的如下規則:
1 accept from+ 源地址,端口 to+ 目的地址,端口+ 採取的動作
2 deny ...........(deny就是拒絕。。)
3 nat ............(nat是地址轉換。後面說)
防火牆在網絡層(包括以下的煉路層)接受到網絡數據包後,就從上面的規則連表
一條一條地匹配,如果符合就執行預先安排的動作了!如丟棄包。。。。
但是,不同的防火牆,在判斷攻擊行為時,有實現上的差別。下面結合實現原理說
說可能的攻擊。
二 攻擊包過濾防火牆
包過濾防火牆是最簡單的一種了,它在網絡層截獲網絡數據包,根據防火牆的規則
表,來檢測攻擊行為。他根據數據包的源IP地址;目的IP地址;TCP/UDP源端口;
TCP/UDP目的端口來過濾!!很容易受到如下攻擊:
1 ip 欺騙攻擊:
這種攻擊,主要是修改數據包的源,目的地址和端口,模仿一些合法的數據包來騙
過防火牆的檢測。如:外部攻擊者,將他的數據報源地址改為內部網絡地址,防火牆看
到是合法地址就放行了:)。可是,如果防火牆能結合接口,地址來匹配,這種攻擊就
不能成功了:(
2 d.o.s拒絕服務攻擊
簡單的包過濾防火牆不能跟蹤 tcp的狀態,很容易受到拒絕服務攻擊,一旦防火牆
受到d.o.s攻擊,他可能會忙於處理,而忘記了他自己的過濾功能。:)你就可以饒過
了,不過這樣攻擊還很少的。!
3 分片攻擊
這種攻擊的原理是:在IP的分片包中,所有的分片包用一個分片偏移字段標誌分片
包的順序,但是,只有第一個分片包含有TCP端口號的信息。當IP分片包通過分組過濾
防火牆時,防火牆只根據第一個分片包的Tcp信息判斷是否允許通過,而其他後續的分
片不作防火牆檢測,直接讓它們通過。
這樣,攻擊者就可以通過先發送第一個合法的IP分片,騙過防火牆的檢測,接著封
裝了惡意數據的後續分片包就可以直接穿透防火牆,直接到達內部網絡主機,從而威脅
網絡和主機的安全。
4 木馬攻擊
對於包過濾防火牆最有效的攻擊就是木馬了,一但你在內部網絡安裝了木馬,防火
牆基本上是無能為力的。
原因是:包過濾防火牆一般只過濾低端口(1-1024),而高端口他不可能過濾的
(因為,一些服務要用到高端口,因此防火牆不能關閉高端口的),所以很多的木馬都
在高端口打開等待,如冰河,subseven等。。。
但是木馬攻擊的前提是必須先上傳,運行木馬,對於簡單的包過濾防火牆來說,是
容易做的。這裡不寫這個了。大概就是利用內部網絡主機開放的服務漏洞。
早期的防火牆都是這種簡單的包過濾型的,到現在已很少了,不過也有。現在的包
過濾採用的是狀態檢測技術,下面談談狀態檢測的包過濾防火牆。
三 攻擊狀態檢測的包過濾
狀態檢測技術最早是checkpoint提出的,在國內的許多防火牆都聲稱實現了狀態檢
測技術。
可是:)很多是沒有實現的。到底什麼是狀態檢測?
一句話,狀態檢測就是從tcp連接的建立到終止都跟蹤檢測的技術。
原先的包過濾,是拿一個一個單獨的數據包來匹配規則的。可是我們知道,同一個
tcp連接,他的數據包是前後關聯的,先是syn包,-》數據包=》fin包。數據包的前後
序列號是相關的。
如果割裂這些關係,單獨的過濾數據包,很容易被精心夠造的攻擊數據包欺騙!!
!如nmap的攻擊掃瞄,就有利用syn包,fin包,reset包來探測防火牆後面的網絡。!
相反,一個完全的狀態檢測防火牆,他在發起連接就判斷,如果符合規則,就在內
存登記了這個連接的狀態信息(地址,port,選項。。),後續的屬於同一個連接的數
據包,就不需要在檢測了。直接通過。而一些精心夠造的攻擊數據包由於沒有在內存登
記相應的狀態信息,都被丟棄了。這樣這些攻擊數據包,就不能饒過防火牆了。
說狀態檢測必須提到動態規則技術。在狀態檢測裡,採用動態規則技術,原先高端
口的問題就可以解決了。實現原理是:平時,防火牆可以過濾內部網絡的所有端口
(1-65535),外部攻擊者難於發現入侵的切入點,可是為了不影響正常的服務,防火牆一
但檢測到服務必須開放高端口時,如(ftp協議,irc等),防火牆在內存就可以動態地
天加一條規則打開相關的高端口。等服務完成後,這條規則就又被防火牆刪除。這樣,
既保障了安全,又不影響正常服務,速度也快。!
一般來說,完全實現了狀態檢測技術防火牆,智能性都比較高,一些掃瞄攻擊還能
自動的反應,因此,攻擊者要很小心才不會被發現。
但是,也有不少的攻擊手段對付這種防火牆的。
1 協議隧道攻擊
協議隧道的攻擊思想類似與VPN的實現原理,攻擊者將一些惡意的攻擊數據包隱藏
在一些協議分組的頭部,從而穿透防火牆系統對內部網絡進行攻擊。
例如,許多簡單地允許ICMP回射請求、ICMP回射應答和UDP分組通過的防火牆就容
易受到ICMP和UDP協議隧道的攻擊。Loki和lokid(攻擊的客戶端和服務端)是實施這種
攻擊的有效的工具。在實際攻擊中,攻擊者首先必須設法在內部網絡的一個系統上安裝
上lokid服務端,而後攻擊者就可以通過loki客戶端將希望遠程執行的攻擊命令(對應
IP分組)嵌入在ICMP或UDP包頭部,再發送給內部網絡服務端lokid,由它執行其中的命
令,並以同樣的方式返回結果。由
於許多防火牆允許ICMP和UDP分組自由出入,因此攻擊者的惡意數據就能附帶在正
常的分組,繞過防火牆的認證,順利地到達攻擊目標主機下面的命令是用於啟動lokid
服務器程序:
lokid-p–I–vl
loki客戶程序則如下啟動:
loki–d172.29.11.191(攻擊目標主機)-p–I–v1–t3
這樣,lokid和loki就聯合提供了一個穿透防火牆系統訪問目標系統的一個後門。
2 利用FTP-pasv繞過防火牆認證的攻擊
FTP-pasv攻擊是針對防火牆實施入侵的重要手段之一。目前很多防火牆不能過濾這
種攻擊手段。如CheckPoint的Firewall-1,在監視FTP服務器發送給客戶端的包的過程
中,它在每個包中尋找"227"這個字符串。如果發現這種包,將從中提取目標地址和端
口,並對目標地址加以驗證,通過後,將允許建立到該地址的TCP連接。
攻擊者通過這個特性,可以設法連接受防火牆保護的服務器和服務。詳細的描述可
見:
http://www.checkpoint.com/techsupport/alerts/pasvftp.html。
3 反彈木馬攻擊
反彈木馬是對付這種防火牆的最有效的方法。攻擊者在內部網絡的反彈木馬定時地
連接外部攻擊者控制的主機,由於連接是從內部發起的,防火牆(任何的防火牆)都認
為是一個合法的連接,因此基本上防火牆的盲區就是這裡了。防火牆不能區分木馬的連
接和合法的連接。
但是這種攻擊的局限是:必須首先安裝這個木馬!!!所有的木馬的第一步都是關
鍵!!!
四 攻擊代理
代理是運行在應用層的防火牆,他實質是啟動兩個連接,一個是客戶到代理,另一
個是代理到目的服務器。
實現上比較簡單,和前面的一樣也是根據規則過濾。由於運行在應用層速度比較慢
/1
攻擊代理的方法很多。
這裡就以wingate為例,簡單說說了。(太累了)
WinGate是目前應用非常廣泛的一種Windows95/NT代理防火牆軟件,內部用戶可以
通過一台安裝有WinGate的主機訪問外部網絡,但是它也存在著幾個安全脆弱點。
黑客經常利用這些安全漏洞獲得WinGate的非授權Web、Socks和Telnet的訪問,從
而偽裝成WinGate主機的身份對下一個攻擊目標發動攻擊。因此,這種攻擊非常難於被
跟蹤和記錄。
導致WinGate安全漏洞的原因大多數是管理員沒有根據網絡的實際情況對WinGate代
理防火牆軟件進行合理的設置,只是簡單地從缺省設置安裝完畢後就讓軟件運行,這就
給攻擊者可乘之機。
1 非授權Web訪問
某些WinGate版本(如運行在NT系統下的2.1d版本)在誤配置情況下,允許外部主
機完全匿名地訪問因特網。因此,外部攻擊者就可以利用WinGate主機來對Web服務器發
動各種Web攻擊( 如CGI的漏洞攻擊等),同時由於Web攻擊的所有報文都是從80號Tcp
端口穿過的,因此,很難追蹤到攻擊者的來源。
檢測
檢測WinGate主機是否有這種安全漏洞的方法如下:
1) 以一個不會被過濾掉的連接(譬如說撥號連接)連接到因特網上。
2) 把瀏覽器的代理服務器地址指向待測試的WinGate主機。
如果瀏覽器能訪問到因特網,則WinGate主機存在著非授權Web訪問漏洞。
2 非授權Socks訪問
在WinGate的缺省配置中,Socks代理(1080號Tcp端口)同樣是存在安全漏洞。與
打開的Web代理(80號Tcp端口)一樣,外部攻擊者可以利用Socks代理訪問因特網。
防範
要防止攻擊WinGate的這個安全脆弱點,管理員可以限制特定服務的捆綁。在多宿
主(multi homed)系統上,執行以下步驟以限定如何提供代理服務。
1選擇Socks或WWWProxyServer屬性。
2選擇Bindings標籤。
3按下ConnectiollBeAcceptedOnTheFollowingInterfaceOnly按鈕,並指定本
WinGate服務器的內部接口。
非授權Telnet訪問
它是WinGate最具威脅的安全漏洞。通過連接到一個誤配置的WinGate服務器的
Telnet服務,攻擊者可以使用別人的主機隱藏自己的蹤跡,隨意地發動攻擊。
檢測
檢測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.如果接受到如上的響應文本,那就輸入待連接到的網站。
3.如果看到了該新系統的登錄提示符,那麼該服務器是脆弱的。
Connectedtohost10.50.21.5…Connected
SunOS5.6
Login:
對策
防止這種安全脆弱點的方法和防止非授權Socks訪問的方法類似。在WinGate中簡單
地限制特定服務的捆綁就可以解決這個問題。一般來說,在多宿主(multihomed)系統
管理員可以通過執行以下步驟來完成:
1.選擇TelnetSever屬性。
2.選擇Bindings標籤。
3.按下ConnectiollBeAcceptedOnTheFollowingInterfaceOnly按鈕,並指定本
WinGate服務器的內部接口。
五 後話
有防火牆的攻擊不單是上面的一點,我有什麼寫的不對的,大家指正。
一直以來,黑客都在研究攻擊防火牆的技術和手段,攻擊的手法和技術越來越智能
化和多樣化。但是就黑客攻擊防火牆的過程上看,大概可以分為三類攻擊。
第一類攻擊防火牆的方法是探測在目標網絡上安裝的是何種防火牆系統並且找出此
防火牆系統允許哪些服務。我們叫它為對防火牆的探測攻擊。
第二類攻擊防火牆的方法是採取地址欺騙、TCP序號攻擊等手法繞過防火牆的認證
機制,從而 對防火牆和內部網絡破壞。
第三類攻擊防火牆的方法是尋找、利用防火牆系統實現和設計上的安全漏洞,從而
有針對性地發動攻擊。這種攻擊難度比較大,可是破壞性很大。
摘錄自
http://www.owihk.com/network/
http://love.wonderspace.net
--
▅▅▅▅▅▅▅▅▅
︴︴
快樂的世界 忘了回家的時間 ▌
˙ ˙ ▁▁▁
我坐在窗前 凝望著漆黑的天 ▌
★ ☆ ▇▇▇╮
▌
˙ ███╯
▌
☆ ˙ ˙ ◥▓▓▓◤
一起欣賞寧靜的夜吧
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.80.131.66
1F:推 chiwa:感謝,獲益良多~ 140.117.189.45 03/06
2F:推 orez:推一個! 61.228.195.157 03/06