史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 資訊系統安全備援防護技術文件
忘記密碼?
論壇說明 標記討論區已讀

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2004-02-16, 09:01 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 概要介紹ICMP、TCP及UDP 三種進階掃瞄技術及原理

Scan,是一切入侵的基礎,掃瞄探測一台主機包括是為了確定主機是否活動、主機系統、正在使用哪些連接埠、提供了哪些服務、相關服務的軟體版本等等,對這些內容的探測就是為了「對症下藥」。


對主機的探測工具非常多,譬如大名鼎鼎的nmap、netcat、superscan,以及國內的X-Scanner等等。

ICMP傳輸協定——PING是最常用的,也是最簡單的探測手段,用來判斷目標是否活動。實際上Ping是向目標傳送一個要求回顯(Type = 8)的ICMP資料報,當主機得到請求後,再返回一個回顯(Type = 0)資料報。



而且Ping 程序一般是直接實現在系統內核中的,而不是一個用戶行程。Ping是最基本的探測手段,Ping Sweep(Ping掃射)就是對一個網段進行大範圍的Ping,由此確定這個網段的網路運作情況,譬如著名的fping工具就是進行Ping掃射的。

不過現在連基本的個人防火牆都對Ping做了限制,這個也太基本了。

如果透過防火牆,如何獲得最理想的目標圖,也是很多人整天思考的問題。我們這裡介紹的一些掃瞄技術就是要盡可能地繞過一些安全防護設備,並且盡量保護自己,同時達到我們需要的目的。

一、進階ICMP掃瞄技術

Ping就是利用ICMP傳輸協定走的,進階的ICMP掃瞄技術主要是利用ICMP傳輸協定最基本的用途:報錯。根據網路傳輸協定,如果按照傳輸協定出現了錯誤,那麼接收端將產生一個ICMP的錯誤報文。這些錯誤報文並不是主動傳送的,而是由於錯誤,根據傳輸協定自動產生。

當IP資料報出現checksum和版本的錯誤的時候,目標主機將拋棄這個資料報,如果是checksum出現錯誤,那麼路由器就直接丟棄這個資料報了。有些主機譬如AIX、HP-UX等,是不會傳送ICMP的Unreachable資料報的。

我們利用下面這些特性:

1、向目標主機傳送一個只有IP頭的IP資料包,目標將返回Destination Unreachable的ICMP錯誤報文。

2、向目標主機傳送一個壞IP資料報,譬如,不正確的IP頭長度,目標主機將返回Parameter Problem的ICMP錯誤報文。

3、當資料包分片但是,卻沒有給接收端足夠的分片,接收端分片組裝超時會傳送分片組裝超時的ICMP資料報。

向目標主機傳送一個IP資料ǎs擗颶Q橄釷譴砦蟮模o熱縲Q橄畈豢捎茫內V茨勘杲离徇Restination Unreachable的ICMP報文,但是如果是在目標主機前有一個防火牆或者一個其他的過濾裝置,可能過濾掉提出的要求,從而接收不到任何回應。


可以使用一個非常大的傳輸協定數字來作為IP頭部的傳輸協定內容,而且這個傳輸協定數字至少在今天還沒有被使用,應該主機一定會返回Unreachable,如果沒有Unreachable的ICMP資料報返回錯誤提示,那麼就說明被防火牆或者其他設備過濾了,我們也可以用這個辦法來探測是否有防火牆或者其他過濾設備存在。

利用IP的傳輸協定項來探測主機正在使用哪些傳輸協定,我們可以把IP頭的傳輸協定項改變,因為是8位的,有256種可能。通過目標返回的ICMP錯誤報文,來作判斷哪些傳輸協定在使用。


如果返回Destination Unreachable,那麼主機是沒有使用這個傳輸協定的,相反,如果什麼都沒有返回的話,主機可能使用這個傳輸協定,但是也可能是防火牆等過濾掉了。NMAP的IP Protocol scan也就是利用這個原理。

利用IP分片造成組裝超時ICMP錯誤消息,同樣可以來達到我們的探測目的。

當主機接收到丟失分片的資料報,並且在一定時間內沒有接收到丟失的資料報,就會丟棄整個包,並且傳送ICMP分片組裝超時錯誤給原傳送端。


我們可以利用這個特性製造分片的資料包,然後等待ICMP組裝超時錯誤消息。


可以對UDP分片,也可以對TCP甚至ICMP資料包進行分片,只要不讓目標主機獲得完整的資料包就行了,當然,對於UDP這種非連接的不可靠傳輸協定來說,如果我們沒有接收到超時錯誤的ICMP返回報,也有可能時由於線路或者其他問題在傳輸程序中丟失了。

我們能夠利用上面這些特性來得到防火牆的ACL(access list),甚至用這些特性來獲得整個網路拓撲結構。如果我們不能從目標得到Unreachable報文或者分片組裝超時錯誤報文,可以作下面的判斷:

1、防火牆過濾了我們傳送的傳輸協定類型

2、防火牆過濾了我們指定的連接埠

3、防火牆阻塞ICMP的Destination Unreachable或者Protocol Unreachable錯誤消息。


4、防火牆對我們指定的主機進行了ICMP錯誤報文的阻塞。


二、進階TCP掃瞄技術

最基本的利用TCP掃瞄就是使用connect(),這個很容易實現,如果目標主機能夠connect,就說明一個相應的連接埠開啟。不過,這也是最原始和最先被防護工具拒絕的一種。

在進階的TCP掃瞄技術中主要利用TCP連接的三次握手特性和TCP資料頭中的標誌位來進行,也就是所謂的半開掃瞄。

先認識一下TCP資料報頭的這六個標誌位。


URG:(Urgent Pointer field significant)緊急游標。用到的時候值為1,用來處理避免TCP資料流中斷


ACK:(Acknowledgment field significant)置1時表示驗證號(Acknowledgment Number)為合法,為0的時候表示資料段不包含驗證信息,驗證號被忽略。

PSH:(Push Function),PUSH標誌的資料,置1時請求的資料段在接收方得到後就可直接送到應用程式,而不必等到緩衝區滿時才傳送。

RST:(Reset the connection)用於復位因某種原因引起出現的錯誤連接,也用來拒絕非法資料和請求。如果接收到RST位時候,通常發生了某些錯誤。

SYN:(Synchronize sequence numbers)用來建立連接,在連接請求中,SYN=1,ACK=0,連接回應時, SYN=1,ACK=1。即,SYN和ACK來區分Connection Request和Connection Accepted。

FIN:(No more data from sender)用來釋放連接,表明傳送方已經沒有資料傳送了。

TCP傳輸協定連接的三次握手程序是這樣的:

首先客戶端(請求方)在連接請求中,傳送SYN=1,ACK=0的TCP資料包給伺服器端(接收請求端),表示要求同伺服器端建立一個連接;然後如果伺服器端回應這個連接,就返回一個SYN=1,ACK=1的資料報給客戶端,表示伺服器端同意這個連接,並要求客戶端驗證;最後客戶端就再傳送SYN=0,ACK=1的資料包給伺服器端,表示驗證建立連接。

我們就利用這些標誌位和TCP傳輸協定連接的三次握手特性來進行掃瞄探測。

SYN 掃瞄

這種掃瞄方式也被稱為「半開啟」 掃瞄,因為利用了TCP傳輸協定連接的第一步,並且沒有建立一個完整的TCP連接。

實現辦法是向遠端主機某連接埠傳送一個只有SYN標誌位的TCP資料報,如果主機反饋一個SYN || ACK資料包,那麼,這個主機正在監聽該連接埠,如果反饋的是RST資料包,說明,主機沒有監聽該連接埠。


在X-Scanner 上就有SYN的選項項。

ACK 掃瞄

傳送一個只有ACK標誌的TCP資料報給主機,如果主機反饋一個TCP RST資料報來,那麼這個主機是存在的。


也可以通過這種技術來確定對方防火牆是否是簡單的分組過濾,還是一個關於狀態的防火牆。

FIN

對某連接埠傳送一個TCP FIN資料報給遠端主機。


如果主機沒有任何反饋,那麼這個主機是存在的,而且正在監聽這個連接埠;主機反饋一個TCP RST回來,那麼說明該主機是存在的,但是沒有監聽這個連接埠。

NULL

即傳送一個沒有任何標誌位的TCP包,根據RFC793,如果目標主機的相應連接埠是關閉的話,應該傳送回一個RST資料包。

FIN+URG+PUSH

向目標主機傳送一個Fin、URG和PUSH分組,根據RFC793,如果目標主機的相應連接埠是關閉的,那麼應該返回一個RST標誌。

上面這些辦法可以繞過一些防火牆,從而得到防火牆後面的主機信息,當然,是在不被欺騙的情況下的。



這些方法還有一個好處就是比較難於被記錄,有的辦法即使在用netstat指令上也根本顯示不出來,而且一般的安全防護設備也根本不記錄這些內容,這樣能夠更好地隱藏自己。

三、進階UDP掃瞄技術

在UDP實現的掃瞄中,多是了利用和ICMP進行的組合進行,這在ICMP中以及提及了。



還有一些特殊的就是UDP回饋,譬如SQL SERVER,對其1434連接埠傳送『x02』或者『x03』就能夠探測得到其連接連接埠。

本文只是作技術方面的探討,目的是讓大家更好的防範來自各方的攻擊,確保網路安全。本文不提供任何程序和軟體的下載信息



這一篇當作技術文章看看就好,千萬不要有"試試看"的念頭。否則一不小心就
會惹來官司與麻煩,錯誤學習有礙前途.....史萊姆關心您
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
 


主題工具
顯示模式

發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 11:52 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1