1. 程式人生 > >linux伺服器上查殺webshell木馬方法

linux伺服器上查殺webshell木馬方法

1、可以查詢近3天被修改過的檔案,並顯示檔案列表詳細資訊:

find -name "*.php" -type f -mtime -3 -exec ls -l {} \;

當然,結果中可能會包含很多cache類檔案,這些檔案不是我們要查詢的,那麼就需要把這類檔案從查詢結果中排除掉,往往cache檔案都存放到cache特定的目錄。

使用 -prune 引數來進行過濾,增加排除某些目錄條件的查詢命令:

find . -path "/xxxxx/caches" -prune -o  -name "*.php"  -type f -mtime -3 -exec ls -l {} \;

注意:

(1)、要忽略的路徑引數必須緊跟著搜尋的路徑之後,否則該引數無法起作用。

(2)、路徑結尾不要有“/”符號。

2、查到可疑檔案,分析,確定是木馬後,根據木馬檔案的檔案資訊查詢更多的存放位置。比如木馬的檔名稱為“muma.php”。

find . -name "muma.php" -type f -mtime -5 -exec ls -l  {} \;

20160426144502

以上命令,是放寬了查詢時間的長度,查詢最近5天該名稱檔案的資訊列表,可以通過檢視檔案大小來判定是否是同樣的木馬檔案。

看圖中命令結果,檔案大小都是“233”,則有很大的可能性是同樣的木馬檔案,綜合修改時間判斷,最好是也cat一下檢查核驗,以免誤殺。

可以利用find和ls命令的一些更豐富的引數資訊來判定分析。

可能會用到find命令的引數功能列表:

find   /home   -size   +512k;                #查大於512k的檔案
find   /home   -size   -512k;               #查小於512k的檔案
find   /home   -mtime   -2;               # 在/home下查最近兩天內改動過的檔案
find /home    -atime -1;                 # 查1天之內被存取過的檔案
find /home -mmin    +60;                 # 在/home下查60分鐘前改動過的檔案
find /home   -amin   +30;                #  查最近30分鐘前被存取過的檔案
find /home   -newer   tmp.txt;           #  在/home下查更新時間比tmp.txt近的檔案或目錄
find /home   -anewer   tmp.txt;          #  在/home下查存取時間比tmp.txt近的檔案或目錄

結合ls的兩種時間資訊:

ls -lc filename 列出檔案的   ctime    是在寫入檔案、更改所有者、許可權或連結設定時隨Inode的內容更改而更改的時間。
ls  -l  filename   列出檔案的   mtime  在寫入檔案時隨檔案內容的更改而更改的時間。

ctime和mtime不一致時有可能是木馬檔案,黑客有可能會修改了mtime時間。

3、刪除木馬檔案

這一步應該是進一步分析木馬的入侵路徑等,但是這個過程又是另一個非常複雜的系統工程,後邊再詳細說明,暫時跳過。

find . -name "muma.php" -type f -mtime -5    -size   -5k -exec rm -rf  {} \;

增加一個過濾條件,-size -5k,即檔案大小小於5k的。

4、查詢目錄下檔案內容包含木馬特定字串的檔案列表,並刪除處理。

#查詢檔案,並顯示檔案的ctime時間,比對檔案資訊
find . -name "*.php" -exec grep -rl "YLbgPfj524" {} \; -exec ls -lc {} \;


#確認沒有問題後,刪除掉
find . -name "*.php" -exec grep -rl "YLbgPfj524" {} \; -exec rm -rfv {} \;