想要知道Unix操作系統的是否被入侵,我們就應該知道如何檢查Unix操作系統文件的完整性相關的知識。在這裡,我們來簡單的介紹下,希望對大家有用。
Unix操作系統檢查文件的完整性有多種方法,通常我們通過輸入ls –l 文件名來查詢和比較文件,這種方法雖然簡單,但還是有一定的實用性。但是如果ls文件都已經被替換了就比較麻煩。在LINUX下可以用rpm –V `rpm –qf 文件名` 來查詢,查詢的結果是否正常來判斷文件是否完整。在LINUX下使用rpm來檢查文件的完整性的方法也很多,這裡不一一贅述,可以man rpm來獲得更多的格式。
Unix操作系統中,/bin/login是被入侵者經常替換作為後門的文件,接下來談一下login後門 :
Unix操作系統裡,Login程序通常用來對telnet來的用戶進行口令驗證。入侵者獲取login的源代碼並修改,使它在比較輸入口令與存儲口令時先檢查後門口令。如果用戶敲入後門口令,它將忽視管理員設置的口令讓你長驅直入:這將允許入侵者進入任何賬號,甚至是root目錄。
由於後門口令是在用戶真實登錄並被日志記錄到utmp和wtmP前產生的一個訪問,所以入侵者可以登錄獲取shell卻不會暴露該賬號。管理員注意到這種後門後,使用”strings”命令搜索login程序以尋找文本信息。許多情況下後門口令會原形畢露。入侵者又會開始加密或者更改隱藏口令,使strings命令失效。
所以許多管理員利用MD5校驗和檢測這種後門。Unix操作系統中有md5sum命令,輸入md5sum 文件名檢查該文件的md5簽名。它的使用格式如下:md5sum –b 使用二進制方式閱讀文件;md5sum –c 逆向檢查MD5簽名;md5sum –t 使用文本方式閱讀文件。
在前面提到過守護進程,對於守護進程配置文件inetd.conf中沒有被注釋掉的行要進行仔細比較。
舉個簡單的例子,如果你開放了telnet服務,守護進程配置文件中就會有一句:
telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd
可以看到它所使用的文件是 /usr/sbin/in.telnetd,檢查該文件的完整性,入侵者往往通過替換守護進程中允許的服務文件來為自己創建一個後門。
LINUX系統中的/etc/crontab也是經常被入侵者利用的一個文件,檢查該文件的完整性,可以直接cat /etc/crontab,仔細閱讀該文件有沒有被入侵者利用來做其他的事情。
不替換login等文件而直接使用進程來啟動後門的方法有一個缺陷,即Unix操作系統一旦重新啟動,這個進程就被殺死了,所以得讓這個後門在系統啟動的時候也啟動起來。通常通過檢查/etc/rc.d下的文件來查看系統啟動的時候是不是帶有後門程序。
說到這裡,另外提一下,如果在某一目錄下發現有屬性為這樣的文件:-rwsr-xr-x 1 root root xxx .sh,這個表明任何用戶進來以後運行這個文件都可以獲得一個rootshell,這就是setuid文件。運行 find –perm 4000 –print對此類文件進行全局查找,然後刪除這樣的文件。
好了,這次關於檢查Unix操作系統文件的完整性的一些知識就介紹到這裡,希望大家看完之後更加的熟練運用。