每個(gè)進(jìn)程都會(huì)有一個(gè)PID,而每一個(gè)PID都會(huì)在/proc目錄下有一個(gè)相應(yīng)的目錄,這是linux(當(dāng)前內(nèi)核2.6)系統(tǒng)的實(shí)現(xiàn)。
一般后門程序,在ps等進(jìn)程查看工具里找不到,因?yàn)檫@些常用工具甚至系統(tǒng)庫在系統(tǒng)被入侵之后基本上已經(jīng)被動(dòng)過手腳(網(wǎng)上流傳著大量的rootkit。假如是內(nèi)核級(jí)的木馬,那么該方法就無效了)。
因?yàn)樾薷南到y(tǒng)內(nèi)核相對(duì)復(fù)雜(假如內(nèi)核被修改過,或者是內(nèi)核級(jí)的木馬,就更難發(fā)現(xiàn)了),所以在/proc下,基本上還都可以找到木馬的痕跡。
思路:
在/proc中存在的進(jìn)程ID,在 ps 中查看不到(被隱藏),必有問題。
?123456789101112 #!/bin/bash str_pids="`ps -A | awk '{print $1}'`"; for i in /proc/[[:digit:]]*; do if echo "$str_pids" | grep -qs `basename "$i"`; then : else echo "Rootkit's PID: $(basename "$i")"; fidone
討論:
檢查系統(tǒng)(Linux)是不是被黑,其復(fù)雜程度主要取決于入侵者“掃尾工作”是否做得充足。對(duì)于一次做足功課的入侵來說,要想剔除干凈,將是一件分精密、痛苦的事情,通常這種情況,需要用專業(yè)的第三方的工具(有開源的,比如tripwire,比如aide)來做這件事情。
而專業(yè)的工具,部署、使用相對(duì)比較麻煩,也并非所有的管理員都能熟練使用。
實(shí)際上Linux系統(tǒng)本身已經(jīng)提供了一套“校驗(yàn)”機(jī)制,在檢查系統(tǒng)上的程序沒有被修改。比如rpm包管理系統(tǒng)提供的 -V 功能:
rpm -Va
即可校驗(yàn)系統(tǒng)上所有的包,輸出與安裝時(shí)被修改過的文件及相關(guān)信息。但是rpm系統(tǒng)也可能被破壞了,比如被修改過。
更多信息請(qǐng)查看IT技術(shù)專欄