每個進程都會有一個PID,而每一個PID都會在/proc目錄下有一個相應的目錄,這是linux(當前內核2.6)系統(tǒng)的實現(xiàn)。
一般后門程序,在ps等進程查看工具里找不到,因為這些常用工具甚至系統(tǒng)庫在系統(tǒng)被入侵之后基本上已經被動過手腳(網(wǎng)上流傳著大量的rootkit。假如是內核級的木馬,那么該方法就無效了)。
因為修改系統(tǒng)內核相對復雜(假如內核被修改過,或者是內核級的木馬,就更難發(fā)現(xiàn)了),所以在/proc下,基本上還都可以找到木馬的痕跡。
思路:
在/proc中存在的進程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)是不是被黑,其復雜程度主要取決于入侵者“掃尾工作”是否做得充足。對于一次做足功課的入侵來說,要想剔除干凈,將是一件分精密、痛苦的事情,通常這種情況,需要用專業(yè)的第三方的工具(有開源的,比如tripwire,比如aide)來做這件事情。
而專業(yè)的工具,部署、使用相對比較麻煩,也并非所有的管理員都能熟練使用。
實際上Linux系統(tǒng)本身已經提供了一套“校驗”機制,在檢查系統(tǒng)上的程序沒有被修改。比如rpm包管理系統(tǒng)提供的 -V 功能:
rpm -Va
即可校驗系統(tǒng)上所有的包,輸出與安裝時被修改過的文件及相關信息。但是rpm系統(tǒng)也可能被破壞了,比如被修改過。
更多信息請查看IT技術專欄