Internet上的網路系統多數使用UNIX主機,當然也有許多採用Solaris、Digital Unix、Linux等主機的。此處主要以針對UNIX主機為例,闡述如下:
1.系統目標分析
a.鎖定目標
Internet上每一台網路主機都有一個符合自己的名字,就像每個人都有一個合適的稱呼一樣,術語稱做域名;然而一個人可能會有幾個名字,域名的定義也會有同樣的情況,在網上能真正標識主機的是IP地址,域名只是用IP地址指定的主機便於好記而起的名字。
當然,利用域名和IP地址都可以順利找到主機(除非你的網路不通)。要開始入侵誰,首先要確定目標,就是要知道這台主機的域名或者IP地址,例如: www.gun.com或124.18.65.1等。知道了要攻擊目標的位置還很不夠,還需要瞭解系統類型、操作系統、提供服務等全面的資料,才能做到 「知己知彼,百戰百勝」。如何獲取相關信息,下面我們將予以介紹,如果對網路域名和IP地址概念不清楚的,趕緊翻一下手頭的書吧!並且現在練習使用一下 ping命令吧!相信在實戰中會用到!
b.服務分析
因特網上的主機大部分都提供WWW、MAIL、FTP、BBS等日常網絡服務,每一台網絡主機原則上可以同時提供幾種服務,一台主機為何能夠提供如此 多的服務呢?因為,UNIX系統是一種多用戶、多任務的系統,將網絡服務劃分許多不同的端口,每一個端口提供一種不同服務,一個服務會有一個程序時刻監視 端口活動,並且給予應有的應答。並且,端口的定義已經成為了標準,例如:FTP服務的端口是21,Telnet服務的端口是23,WWW服務的端口是80 等,如果還想瞭解更多請進行下面的步驟:
進入MS-DOS PROMPT
C:\WINDOWS>edit services (回車)
慢慢閱讀吧!不過很多的端口都沒有什麼用,不必把它們都記住!
我們如何知道目標主機提供了什麼服務呢?很簡單,用提供不同服務的應用程序試一試就知道了,例如:使用Telnet、FTP等用戶軟件向目標主機申請 服務,如果主機有應答就說明主機提供了這個服務,開放了這個端口的服務,但我們現在只需知道目標主機的服務端口是否處於「激活」狀態,不過這樣試比較麻煩 並且資料不全。
黑客經常使用一些像PORTSCAN這樣的工具軟件,對目標主機一定範圍的端口進行掃瞄。這樣可以全部掌握目標主機的端口情況。現在介紹一個好工具 HAKTEK,這是一個非常實用的一個工具軟件,它將許多應用集成在一起的工具,其中包括: Ping、IP地址範圍掃瞄、目標主機端口掃瞄、郵件炸彈、過濾郵件、Finger主機等都是非常實用的工具。完成目標主機掃瞄任務,首先告訴 HAKTEK目標主機的位置,即域名或IP地址。然後選擇端口掃瞄,輸入掃瞄範圍,開始掃瞄,屏幕很快返回激活的端口號以及對應的服務。對資料的收集非常 迅速完整。
為什麼要掌握目標的服務資料?如果目標主機上幾個關鍵的端口的服務都沒有提供,還是放棄進攻的計劃吧,不要浪費太多時間放在這個勝率不大的目標上,趕緊選擇下一個目標。先看一個掃瞄實例:
Scanning host xx.xx.xx, ports 0 to 1000
Port 7 found. Desc=』echo'
Port 21 found. Desc=』ftp'
Port 23 found. Desc=』telnet'
Port 25 found. Desc=』smtp'
Port 53 found. Desc=』domain/nameserver'
Port 79 found. Desc=』finger'
Port 80 found. Desc=』www'
Port 90 found.
Port 111 found. Desc=』portmap/sunrpc'
Port 512 found. Desc=』biff/exec'
Port 513 found. Desc=』login/who'
Port 514 found. Desc=』shell/syslog'
Port 515 found. Desc=』printer'
Done!
如果系統主要端口被「激活」,也不要高興太早,因為系統可能加了某些限制,不允許任何用戶遠程連接或不允許ROOT遠程連接,或者進入後限制用戶只能做指定的活動便又被強行中斷,這僅僅指Telnet服務而言,其實還會遇到很多複雜的情況。
c.系統分析
現在開始講解如何瞭解系統,目標主機採用的是什麼操作系統。其實很簡單,首先打開WIN95的RUN窗口,然後輸入命令:
Telnet xx.xx.xx.xx(目標主機)
然後按「確定」,看一看你的屏幕會出現什麼?
Digital UNIX (xx.xx.xx) (ttyp1)
login:
不用我說你也會知道,你的目標主機和操作系統是什麼啦!對,當然是UNIX機,使用的是Digital UNIX啦!好,我們再看一個操作例子:
UNIX(r) System V Release 4.0 (xx.xx.xx)
login:
這是什麼?可能是SUN主機、Sun Os或Solaris,具體是什麼?我也說不清楚!這一方法不是對所有的系統都有用,例如像下面的情況,就不好判斷是什麼系統:
XXXX OS (xx.xx.xx) (ttyp1)
login:
有些系統將顯示信息進行了更改,因此就不好判斷其系統的信息,但根據一些經驗可以進行初步的判斷,它可能是HP Unix。
另外,利用上面介紹的工具HAKTEK,利用目標主機的Finger功能,也可以洩露系統的信息。
Establishing real-time userlist... (Only works if the sysadmin is a moron)
---[ Finger session ]---
Welcome to Linux version 2.0.30 at xx.xx.xx...
上面的這句話就已經提示了足夠多的系統信息!
如何知道系統中其它端口使用的是什麼服務?例如23、25、80等端口。採用同樣上面的手段,利用TELNET、FTP等。使用TELNET是請將端口號作為命令行參數,例如:
Telnet xx.xx.xx 25
就會有類似下面的信息提供給你:
220 xx.xx.xx Sendmail 5.65v3.2 (1.1.8.2/31Jan97-1019AM) Wed, 3 Jun 1998 13:50:47 +0900
這樣,很清楚目標主機Sendm-ail的版本。當然,有時這種操作對檢測有很多端口和不同的系統共處一機根本沒有用。因此,需要對應的應用工具才能獲得相應的信息。例如:
Connected to xx.xx.xx.220 xx.xx.xx FTP server (Digital UNIX Version 5.60) ready.
User (xx.xx.xx:(none)):
因特網上大多數是WWW主機,如何知道目標主機使用的是什麼樣的WEB服務器,其實網上有許多可供下載的免費查詢工具,只要你告訴它目標主機的地址和WEB服務端口,它立刻會告訴你有關信息。
2.突破防線
在上一小節,介紹了一下如何對系統的目標分析。實際上,要得到系統詳細資料還要費一番工夫。當前的問題是如何取得系統密碼文件,從而對密碼文件進行破解,得到較高權限帳戶的口令。
現在來分兩種情況,第一種考慮黑客是目標主機的一個普通用戶,第二種當然考慮黑客不是目標主機的用戶。
對於第一種用戶應該對目標主機的系統資料應該有一定瞭解,當然可能還不知道具體,例如:你是一個免費主頁空間的用戶。無論第一種用戶還是第二種用戶,每一個人都想成為目標主機的超級用戶,這就像解一道數學題,越難的題就越想解出來,儘管可能要花費好幾天的時間。
得到密碼文件又有兩種情況,通過普通用戶登錄後取得文件,例如利用FTP、Telnet等工具,第二種是利用其它服務端口的BUG或漏洞取得密碼文件,例如利用WWW服務、電子郵件等服務。
對於使用普通用戶登錄取得密碼文件,除了你本身已經是目標主機的普通用戶這一有利條件外,對於陌生的目標主機可能只知道它有一個ROOT用戶,至於其 他帳戶我們一無所知,這又是我們面臨的難題,要想登錄目標主機我們至少要知道一個普通用戶,現在我們連帳號都不知道,就更不用說密碼了。怎麼辦?真是急死 人!
不要急,我們有辦法可以獲得一些帳號,具體方法有很多,我們現在就介紹幾種:
a.利用目標主機的Finger功能
還記得上一小節介紹的工具嗎?對,就是HAKTEK,它的Finger功能可以完全勝任,在TARGET中輸入目標主機的地址,域名或IP地址都可以,選擇Finger按鈕,就會出現例如下面的信息:
Target changed to xx.xx.xx
Establishing real-time userlist... (Only works if the sysadmin is a moron)
---[ Finger session ]---
Logi Name TTY
Idle When Where
xxxx ??? pts/8
2d fri 16:15 xx.xx.xx.xx...
記錄上述帳號信息,經過一段時間的監測,就會積累一定的帳號信息。
b.來源於電子郵件地址
有些用戶電子郵件地址(指@符號前面的部分)與其取郵件的帳號是一致的,這樣就能使我們輕鬆地獲得目標主機的一個普通帳號,當然你可能沒有目標主機的 郵件地址,你可以去找啊,到其網站的主頁上去尋找,肯定上面有一些業務聯繫、製作人員的郵件地址,這不是就有所收穫了嗎!
c.非常全面的X.500功能
有些主機提供了X.500的目錄查詢服務,這就給我們提供了非常好的獲得信息的途徑。如何知道是否提供X.500的功能,我們不是有HAKTEK這個 工具嗎?掃瞄目標主機的端口,如果端口105的狀態已經被「激活」,在自己的機器上安裝一個X.500的客戶查詢的工具,選擇目標主機,可以獲得意想不到 的信息。
d.習慣性常用帳號
根據平時的經驗,一些系統總有一些習慣性的常用帳號,這些帳號都是系統中因為某種應用而設置的。例如:製作WWW網站的帳號可能是html、www、 web等,安裝ORACLE數據庫的可能有oracle的帳號,用戶培訓或教學而設置的user1、user2、student1、student2、 client1、client2等帳戶,一些常用的英文名字也經常會使用,例如:tom、john等,因此可以根據系統所提供的服務和在其主頁得到的工作 人員的名字信息進行猜測。
說了這麼多,還是沒有用啊?只得到了一些帳號,那密碼怎樣能夠得到呢?其實對很多黑客入侵系統實例的分析表明,由於普通用戶對系統安全沒有具體的認 識,因此其密碼很容易被猜測出來,一般用戶的初始密碼大部分和其帳號相同,這根本沒有一點安全性,在得到其帳號信息後就得到了它的密碼,真讓人興奮,另外 一部分使用的密碼比較簡單,例如:將帳號的第一個字母大寫、後面加一個數字,或者使用簡單數字0、1等作為密碼。還有一些成對的帳號和密碼,例如:帳號是 admin,那麼密碼可能是:manager等。在對普通用戶進行測試密碼時,實際上也可以對目標主機系統的重要帳號進行猜測,例如:一些系統管理員將 ROOT的密碼定為主機的名字,象Sun、Digital、sparc20、alpha2100等,oracle數據庫的帳號密碼為oracle7、 oracle8等,如果能迅速得到高級權限的密碼,我們將能節省很多工作,但這並不容易,因為經常發生系統安全的事故,現在很難在系統的帳號的密碼有所突 破。
請記住:
一般用戶常用口令可以通過經驗性的分析得到。
用戶帳號本身的使用往往是帳號第一字母簡單地大寫或全部大寫(system、manager、admin等詞或簡單變化)、後面加上幾個簡單數字(一般是0、1、123、12345、888、168等)。
我們還是繼續以普通用戶的身份進入吧! 現在每個系統管理員都有一定系統安全管理的知識,利用一些系統帳號不能輕易進入。雖然是這樣,但它一般用戶卻沒有注意對系統安全的理解,因此我們突破口也 就在這裡,許多黑客用上面的猜測方法試過不少機器,大都可以成功。如果一個網站上傳主頁的帳號和口令猜中,那就可以隨便在它的網站留下任何信息。
現在,我們以普通用戶的身份進入了主機,當然是用Telnet或FTP啦!對於某些系統能夠進入系統已經是致命的打擊了,例如:上面提到的網站主頁上 傳帳號可以輕鬆用於更改網站內容,入侵者完全可以給其致命一擊。但真正的黑客不應該做這些,應該只想考慮一道難題有一個完美的答案就行了。而且,莽撞行事 還會帶來法律上的麻煩。
好了,現在可以輕鬆一下了,因為已經取得了一個小小的勝利,但這並不是我們這道數學題的最後結果,我們現在只是找到計算這道題的一個公式,如何利用這個公式計算出結果,還有一條比較漫長的路。
3.智取文檔
通過自己的努力進入別人的主機,可能有很大的運氣因素,但只要進入,就是一件讓人非常興奮的事。現在做什麼呢?入侵者現在只是一個沒有任何權限的普通 用戶,我們能做什麼呢?對於一個只想進入看一看,到這裡也就足夠了,但入侵者想成為管理者,成為這台主機臨時的主人,但不想傷害任何人和破壞任何系統。
為了實現這個目標,將如何進行下面的行動呢?要想成為超級用戶,最簡單的方法是擁有超級用戶的口令,通常UNIX所指的是root用戶的口令。
但是,每個系統管理員都不是「傻子」,他們不會使用一個非常簡單易猜的口令讓你那麼容易成為英雄,但如果你運氣很好,可能會碰上這樣的系統管理員。所以使用猜的方法效果非常小。所以只有使用其他的方法,使自己成為超級用戶。
a.程序突破法
利用UNIX系統某些具有超級用戶SID、UID等權限的應用程序和一些系統漏洞,利用C語言開發一些突破程序,使自己成為超級用戶。 這種方法有很強的實用性,但是會受到很多的限制,例如你需要有系統的C語言編譯技能。因此,首先你要判斷你是否有這樣的權限,進入系統後,敲cc或者 gcc等命令,看一看系統會有那些提示,你便知道你有沒有這樣的使用權限。
b.密碼破解法
對於第一種方法對人的要求比較高,你必須瞭解系統的內部結構和原理,並且要有非常熟練的程序開發能力,才能很好地利用第一種方法,因此第一種方法只適合於各種系統的測試。密碼破解法適合於各種水平的人使用,現在唯一的問題,就是如何取得系統的密碼文件?
先看一看,要找的目標文件放在了什麼地方?叫什麼名字?各種系統有著自己獨特的方式。
大部分的系統都對其密碼文件進行了處理,我們只能看到密碼文件的用戶名,而不能看到和用戶名對應的加密後密碼的文本,但有些系統沒有做特殊處理,就可以抓取,例如象Digital Unix等。怎樣才能獲得真正的密碼文件呢?
利用系統管理員的失誤。系統管理員經常對系統的重要文件進行備份,但在備份時忘記了文件權限的限制,找到這些文件吧!
利用系統安全漏洞。某些系統在安裝後忘記安裝升級補丁,因此系統系統便留下許多後門,利用這些後門我們可以輕鬆獲得這些文檔。
某些系統工具的錯誤文件。例如Solaris的FTPD進程產生的CORE文檔,WWW服務器可以抓取密碼文件等。
利用黑客工具軟件將SHADOW文件進行轉換。
c.信息截取法
這種方法要求比較高,利用軟件和硬件工具時刻監視系統主機的工作,等待用戶登錄,記錄登錄信息,從而取得用戶密碼。
取得密碼文件的方法是非常多的,我們這裡不能詳細介紹,針對於各種系統和環境的不同,應該採取非常靈活的方法。



請先 登入 以發表留言。