攻擊原理
攻擊者攻擊目標時常常把破譯用戶的口令作為攻擊的開始。只要攻擊者能猜測或者確定用戶的口令,他就能獲得機器或者網絡的訪問權,并能訪問到用戶能訪問到的任何資源。如果這個用戶有域管理員或root用戶權限,這是極其危險的。
這種方法的前提是必須先得到該主機上的某個合法用戶的帳號,然后再進行合法用戶口令的破譯。獲得普通用戶帳號的方法很多,如:
利用目標主機的Finger功能:當用Finger命令查詢時,主機系統會將保存的用戶資料(如用戶名、登錄時間等)顯示在終端或計算機上;
利用目標主機的X.500服務:有些主機沒有關閉X.500的目錄查詢服務,也給攻擊者提供了獲得信息的一條簡易途徑;
從電子郵件地址中收集:有些用戶電子郵件地址常會透露其在目標主機上的帳號;查看主機是否有習慣性的帳號:有經驗的用戶都知道,很多系統會使用一些習慣性的帳號,造成帳號的泄露。
這又有三種方法:
(1)是通過網絡監聽非法得到用戶口令,這類方法有一定的局限性,但危害性極大。監聽者往往采用中途截擊的方法也是獲取用戶帳戶和密碼的一條有效途徑。當前,很多協議根本就沒有采用任何加密或身份認證技術,如在Telnet、FTP、HTTP、SMTP等傳輸協議中,用戶帳戶和密碼信息都是以明文格式傳輸的,此時若攻擊者利用數據包截取工具便可很容易收集到你的帳戶和密碼。還有一種中途截擊攻擊方法,它在你同服務器端完成"三次握手"建立連接之后,在通信過程中扮演"第三者"的角色,假冒服務器身份欺騙你,再假冒你向服務器發出惡意請求,其造成的后果不堪設想。另外,攻擊者有時還會利用軟件和硬件工具時刻監視系統主機的工作,等待記錄用戶登錄信息,從而取得用戶密碼;或者編制有緩沖區溢出錯誤的SUID程序來獲得超級用戶權限。
(2)是在知道用戶的賬號后(如電子郵件@前面的部分)利用一些專門軟件強行破解用戶口令,這種方法不受網段限制,但攻擊者要有足夠的耐心和時間。如:采用字典窮舉法(或稱暴力法)來破解用戶的密碼。攻擊者可以通過一些工具程序,自動地從電腦字典中取出一個單詞,作為用戶的口令,再輸入給遠端的主機,申請進入系統;若口令錯誤,就按序取出下一個單詞,進行下一個嘗試,并一直循環下去,直到找到正確的口令或字典的單詞試完為止。由于這個破譯過程由計算機程序來自動完成,因而幾個小時就可以把上十萬條記錄的字典里所有單詞都嘗試一遍。 (3)是利用系統管理員的失誤。在現代的Unix操作系統中,用戶的基本信息存放在passwd文件中,而所有的口令則經過DES加密方法加密后專門存放在一個叫shadow的文件中。黑客們獲取口令文件后,就會使用專門的破解DES加密法的程序來解口令。同時,由于為數不少的操作系統都存在許多安全漏洞、Bug或一些其他設計缺陷,這些缺陷一旦被找出,黑客就可以長驅直入。例如,讓Windows95/98系統后門洞開的BO就是利用了Windows的基本設計缺陷。、放置特洛伊木馬程序
特洛伊木馬程序可以直接侵入用戶的電腦并進行破壞,它常被偽裝成工具程序或者游戲等誘使用戶打開帶有特洛伊木馬程序的郵件附件或從網上直接下載,一旦用戶打開了這些郵件的附件或者執行了這些程序之后,它們就會象古特洛伊人在敵人城外留下的藏滿士兵的木馬一樣留在自己的電腦中,并在自己的計算機系統中隱藏一個可以在windows啟動時悄悄執行的程序。當您連接到因特網上時,這個程序就會通知攻擊者,來報告您的IP地址以及預先設定的端口。攻擊者在收到這些信息后,再利用這個潛伏在其中的程序,就可以任意地修改你的計算機的參數設定、復制文件、窺視你整個硬盤中的內容等,從而達到控制你的計算機的目的。
口令攻擊類型
(1) 字典攻擊
因為多數人使用普通詞典中的單詞作為口令,發起詞典攻擊通常是較好的開端。詞典攻擊使用一個包含大多數詞典單詞的文件,用這些單詞猜測用戶口令。使用一部1萬個單詞的詞典一般能猜測出系統中70%的口令。在多數系統中,和嘗試所有的組合相比,詞典攻擊能在很短的時間內完成。
(2) 強行攻擊
許多人認為如果使用足夠長的口令,或者使用足夠完善的加密模式,就能有一個攻不破的口令。事實上沒有攻不破的口令,這只是個時間問題。如果有速度足夠快的計算機能嘗試字母、數字、特殊字符所有的組合,將最終能破解所有的口令。這種類型的攻擊方式叫強行攻擊。使用強行攻擊,先從字母a開始,嘗試aa、ab、ac等等,然后嘗試aaa、aab、aac ……。
攻擊者也可以利用分布式攻擊。如果攻擊者希望在盡量短的時間內破解口令,他不必購買大量昂貴的計算機。他會闖入幾個有大批計算機的公司并利用他們的資源破解口令。
(3)組合攻擊
詞典攻擊只能發現詞典單詞口令,但是速度快。強行攻擊能發現所有的口令,但是破解時間很長。鑒于很多管理員要求用戶使用字母和數字,用戶的對策是在口令后面添加幾個數字。如把口令ericgolf變成ericgolf55。錯誤的看法是認為攻擊者不得不使用強行攻擊,這會很費時間,而實際上口令很弱。有一種攻擊使用詞典單詞但是在單詞尾部串接幾個字母和數字。這就是組合攻擊。基本上,它介于詞典攻擊和強行攻擊之間。
(4)其他攻擊類型
社會工程學
偷窺:觀察別人敲口令
搜索垃圾箱
※ 口令攻擊工具
NT口令破解程序:
(1)L0phtcrack
L0phtcrack是一個NT口令審計工具,能根據操作系統中存儲的加密哈希計算NT口令,功能非常強大、豐富,是目前市面上最好的NT口令破解程序之一。它有三種方式可以破解口令:詞典攻擊、組合攻擊、強行攻擊。L0phtcrack可在www.10pht.com下載(15天試用),它不僅有一個美觀、容易使用的GUI ,而且利用了NT的兩個實際缺陷,這使得L0phtcrack速度奇快。
(2)NTSweep
NTSweep使用的方法和其他口令破解程序不同。它不是下載口令并離線破解,NTSweep是利用了Microsoft允許用戶改變口令的機制。NTSweep首先取定一個單詞,NTSweep使用這個單詞作為帳號的原始口令并試圖把用戶的口令改為同一個單詞。如果主域控制機器返回失敗信息,就可知道這不是原來的口令。反之如果返回成功信息,就說明這一定是帳號的口令。因為成功地把口令改成原來的值,用戶永遠不會知道口令曾經被人修改過。NTSweep可從www.packet.securify.com下載。
NTSweep非常有用,因為它能通過防火墻,也不需要任何特殊權限來運行。但是也有缺點,首先運行起來較慢;其次嘗試修改口令并失敗的信息會被記錄下來,被管理員檢測到;最后,使用這種技術的猜測程序不會給出精確信息,如有些情況不準用戶更改口令,這是程序會返回失敗信息,即使口令是正確的。 (3)NTCrack
NTCrack是UNIX破解程序的一部分,但是在NT環境下破解。NTCrack與UNIX中的破解類似,但是NTCrack在功能上非常有限。它不象其他程序一樣提取口令哈希,它和NTSweep的工作原理類似。必須給NTCrack一個user id和要測試的口令組合,然后程序會告訴用戶是否成功。
(4)PWDump2
PWDump2不是一個口令破解程序,但是它能用來從SAM數據庫中提取口令哈希。L0phtcrack已經內建了這個特征,但是PWDump2還是很有用的。首先,它是一個小型的、易使用的命令行工具,能提取口令哈希;其次,目前很多情況下L0phtcrack的版本不能提取口令哈希。如SYSTEM是一個能在NT下運行的程序,為SAM數據庫提供了很強的加密功能,如果SYSTEM在使用,L0phtcrack就無法提取哈希口令,但是PWDump2還能使用;而且要在windows2000下提取哈希口令,必須使用PWDump2,因為系統使用了更強的加密模式來保護信息。
UNIX口令破解程序:
(1) Crack
Crack是一個旨在快速定位UNIX口令弱點的口令破解程序。Crack使用標準的猜測技術確定口令。它檢查口令是否為如下情況之一:和user id相同、單詞password、數字串、字母串。Crack通過加密一長串可能的口令,并把結果和用戶的加密口令相比較,看其是否匹配。用戶的加密口令必須是在運行破解程序之前就已經提供的。
(2) John the Ripper
UNIX口令破解程序,但也能在Windows平臺運行,功能強大、運行速度快,可進行字典攻擊和強行攻擊。
(3) XIT
XIT是一個執行詞典攻擊的UNIX口令破解程序。XIT的功能有限,因為它只能運行詞典攻擊,但程序很小、運行很快。
(4) Slurpie
Slurpie能執行詞典攻擊和定制的強行攻擊,要規定所需要使用的字符數目和字符類型。如,可以能夠Slurpie發起一次攻擊,使用7字符或8字符、僅使用小寫字母口令進行強行攻擊。
和John、Crack相比,Slurpie最大的優點是它能分布運行,Slurpie能把幾臺計算機組成一臺分布式虛擬機器在很短的時間里完成破解任務。