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