看到大家那麼踴躍的認領研究主題,我也忍不住想認領一個。找來找去,就簡要說一說Linux系統密碼的攻擊與防范吧。
在早期的Linux系統中,/etc/passwd文件含有系統每個用戶的信息,當然,用戶的口令經過一定的數字與邏輯算法後把一個運算結果(可見字符串)放到了passwd文件中,加密強度並不大。於是,早期黑客們只要拿到/etc/passwd這個文件,系統就已經攻入一半了。
後來,隨著安全級別的提高,出現了passwd文件中口令單獨加密的情況,密碼加密後的結果和其他一些輔助信息存到了shadow文件。至於采用何種保存形式和加密算法,可以用/usr/sbin/authconfig程序來設置。
用戶登錄時輸入的口令經計算後與/etc/passwd和/etc/shadow中的結果相比較,符合則允許登錄,否則拒絕登錄。
一個強壯的有效的口令應當至少有8個字符長,不要取用個人信息(如生日,名字,用戶名,計算機的型號等也盡量不要在密碼中連接電話號碼和2002、2000、888等數字),普通的英語單詞也不好(因為可用字典攻擊法),口令中最好有一些非字母(如數字,標點符號,控制字符等),注意盡量不要寫在紙上或計算機中的文件中,選擇口令的一個好方法是將不相關的字母和數字或控制字符相連,並組成不少於8位的長度
為了強迫用戶指定足夠強壯的密碼,需修改文件/etc/login.defs中參數PASS_MIN_LEN(口令最小長度)。同時應限制口令使用時間,保證定期更換口令,建議修改參數PASS_MIN_DAYS(口令使用時間)。一般的Linux設置如圖1所示。
Linux使用的是DES(加密函數式是Crypt)或MD5(函數式是Md)加密算法,由於計算量之大,它們幾乎很難被逆向破解。DES口令密文是有13個ASCII字符的字符串,而MD5口令密文的啟始字符總是“{GetProperty(Content)}$”。OK,大家了解的差不多了吧。接下來,我們就來演示一下。如圖2所示是一台被攻陷的紅帽系列的Linux。入侵者遠程溢出服務器後獲得了一個root權限的登錄界面。
如何知道root用戶的密碼呢?入侵者打開了/etc/passwd文件。如圖3所示。
看來主機的賬戶是用shadow加密了。繼續看/etc/shadow的情況。如圖4所示。
root的冒號後面就是加密後的密碼。開始破解工作吧。
破解Linux口令的工具有很多,如John the Ripper、Crack by Alex Muffett和Cracker Jack等等,其中John the Ripper的功能最為強大,速度也最快。
將/etc/shadow下載到本地,先使用John the Ripper的簡單模式試一下,但沒有結果,如圖5所示。
再掛個字典看看。這裡用“-w=1.txt”指定字典文件。很快,root密碼出來了,原來是:“bigapple”。如圖6所示。