查看單個文章
舊 2006-04-22, 07:21 PM   #3 (permalink)
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 金幣
預設

連接阜掃瞄簡介

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

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

什麼是掃瞄器

掃瞄器是一種自動檢測遠端或本機主機安全性弱點的程序,通過使用掃瞄器你可一不留痕跡的發現遠端伺服器的各種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 那裡有服務列表
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次