WordPressプラグインに擬態するマルウェア「WPCore Content Manager」特徴と削除方法まとめ

最近サイトが重たい…そんなに大量のデータがあるわけでもないのにどうして?という時、ないでしょうか?
今回、そういったご相談から調査を進めたところ、WordPressプラグインに擬態するマルウェア「WPCore Content Manager」に感染していることが発覚し、削除対応を行いました。調査や対応を進めながら、あまりにもこのマルウェアに関する情報が出てこず、手こずったため、ブログとしてまとめることにしました。

目次

「WPCore Content Manager」とは?

「WPCore Content Manager」はWordPressプラグインに擬態し、Googlebot向けに大量のスパムページをばらまくクローキングを行うマルウェアです。

なんらかの方法で管理者アカウントでログインを行い、「WPCore Content Manager」という名前のプラグインを追加し、そこからGooglebot向けにだけ見えるページを大量に生成します。生成されたページはGooglebotには一般のページを表示させ、Google検索に掲載されます。検索経由でアクセスしてきたのが人間であると判断されると、予め設定されていたページ(ギャンブルサイトや違法薬物の販売サイト、アダルトサイトなど)へ転送される…という仕組みです(この一連の流れをクローキングといいます)。

現状、インターネット上に上がっている報告としては2026年7月の以下のスレッドのみが報告されているものの、「WPCore Content Manager」で検索すると感染したサイトのうちエラーを吐いているページが観測されるなど、比較的新しく、かつそれなりのサイトが感染していることがわかります。

「WPCore Content Manager」のこわいところ

  • 追加されるプラグイン名がごくごく普通のプラグイン名っぽい名前なので、疑いづらい
  • プラグインとして追加される侵入経路が特定されていない
    • リスト型やブルートフォースなどで管理者ユーザーとして侵入されたのか、他のプラグインの脆弱性をついて追加されるものなのかがまだわかっていません
  • 大量のページを作成するため、サーバーにとてつもない負荷がかかる
    • 今回対応したサイトではこのマルウェアが作成したデータだけで100万行分が登録されていました
  • 管理者アカウントを複数追加して去っていく
  • Googlebot向けにのみ動作するので気づきづらい
  • マルウェア感染しているサイトとしてGoogleに検知されると、ドメインごとGoogle八分される(Google検索への掲載不可)おそれがあります

被害にあっているかどうかの確認方法

普通に運用しているとぱっと気づきづらいところがこわい「WPCore Content Manager」なのですが、以下のポイントで確認すれば見つけることができます。

  • プラグイン一覧に「WPCore Content Manager」がないかを調べる
  • 知らないユーザーが作成されていないかを確認する
  • データベース上に以下の名前のテーブルがないか確認する
    • wp_wpcore_cloaker
    • wp_wpcore_ghost_content
    • wp_wpcore_logs
    • wp_wpcore_products
  • Google Search Consoleで身に覚えのない/market/xxx/download/xxxなどのページ名のページがインデックスされていないか確認する

プラグイン一覧に「WPCore Content Manager」の名前で登録されるため、ここで「WPCore Content Manager」が登録されていれば確実にこのマルウェアに感染していると断定することができます。もし、プラグイン一覧に「WPCore Content Manager」を見つけたら、まずは無効化してから削除作業に移りましょう。

「WPCore Content Manager」の削除方法

今回は「WPCore Content Manager」の話をしていますが、「WPCore Content Manager」以外にも同様のタイプのマルウェアは多く存在します。近いやり方で削除できると思うので、「WPCore Content Manager」に限らずマルウェア感染が疑われる場合は削除作業の参考にしてみてください。

「WPCore Content Manager」のプラグインを削除する

プラグイン一覧から「WPCore Content Manager」を削除します。
ひとまずこれでマルウェアの動作そのものを停止することができます。

怪しいユーザーを削除する

「WPCore Content Manager」は管理者権限でユーザーを登録していきます。
ユーザー一覧を確認し、登録した覚えがないユーザーを削除します。

.htaccessをバックアップを取った上で削除・再生成する

ドキュメントルートの.htaccessをバックアップを取った上で削除します。
WordPressは管理画面の設定→パーマリンクで「変更を保存」ボタンを押すと.htaccessを再生成できるので、再生性を行い、サイト全体の動作に問題がないか確認をします。

これでもしマルウェアがバックドアを仕掛けていたとしても、アクセスしづらくなりました。

マルウェアが作成したデータベーステーブルのバックアップを取得し、削除する

「WPCore Content Manager」は動作ログを残すタイプのマルウェアなので、マルウェアの一番大きな置き土産ではありますがいきなり削除せず、当該テーブルのバックアップを取得した上で削除します。

phpMyAdminなどでデータベースにアクセスし、以下のテーブルを探して選択しエクスポート。エクスポート後に削除します。

  • wp_wpcore_cloaker
  • wp_wpcore_ghost_content
  • wp_wpcore_logs
  • wp_wpcore_products

バックアップを取ったテーブルのうちwp_wpcore_logsにはインストールされたタイミングやプラグインがなんらかの動作をした際のログが記録されています。エクスポートしたsqlファイルをテキストファイルで開きログ解析を行います。

解析時に関係が確認されたユーザーのパスワードを変更する

wp_wpcore_logsには動作時に関係があったユーザーIDが記録されています。

(0, '2026-00-00 00:00:00', 'info', 'Plugin initialized successfully', xxx),

上記のログで言うと、一番右のxxx部分がユーザーIDです。
xxx番のユーザーがこのサイト内で生きているユーザーである、ということがマルウェア側に伝わっているため、ユーザーデータが抜かれている場合は悪用される可能性があります。
可能であればxxx番のユーザーを削除し作り直すか、最低限パスワードの変更を行いましょう。

怪しいCronイベントを削除する

WP CrontrolとかのCronイベントを確認・編集できるプラグインを追加し、登録されているCronイベントを確認します。

Cronイベントの一覧に以下のイベントがないか探して削除します。

  • wpcore_sitemap_update
  • wpcore_daily_ghost_publish

プラグインを削除してあるのでCronイベント自体は空打ちなのですが、空打ちCron自体がサイト全体に負荷をかけるので削除します。

WordPressコアの全文チェックをかける

バックドアの有無を確認するため、WordPressコアの全文チェックをかけていきます。

サイトデータを全部ダウンロードしてきて、WinMergeなどの差分チェックソフトを使って、利用しているバージョンのWordPressのコアファイルとの差分を確認します。

WinMerge(Windows)や、Beyond Compare・Kaleidoscope(Mac)などで、落としてきたサイトデータとWordPressのコアファイルとを差分比較し、ドキュメントルート・/wp-include/wp-admin内に変なファイルが紛れ込んでいないかの確認を行います。

不審な改変が成されていなければ、WordPressコア側にバックドアが作られている可能性はかなり低くなります。

不審なファイル・記述の目視チェック

WordPressコア内にバックドアがないことを確認したら、それ以外の部分に怪しい部分がないかを確認していきます。
ここからはサイトごとに異なる状態になっているファイルを見ていくので、WordPressコアの時のようにツールを使ってざっくり差分チェックして確認!などができないため、個別に確認していきます。

/wp-content内に不審なファイルがないかの確認

wp_wpcore_logsのログのなかで記録されていた、マルウェアが動いていた期間内やその直前などに変更が加わっているファイルを探します。もしあれば必ずファイルを開いて中の記述に問題がないか確認します。

  • /wp-content/uploads 内にあやしいphpファイルがないか確認する
  • /wp-content/mu-plugins に見覚えのないものがないか確認する
  • 使用中テーマの functions.php に不審な追記がないか確認する
    • functions.phpが読み込んでいるファイルも確認した方がいいです

データベース上に不審な記述がないかの確認

  • wp_options に明らかに怪しい外部URL・スクリプト・巨大な難読化データがないか確認する

ここまで確認して問題がなければ、ほぼマルウェアによる影響はない状態が作れていると考えてよいです。

Google Search Consoleを確認し、マルウェアがばらまいたリンクの削除申請を行う

サイト内でのマルウェアによる影響はこれでほぼなくなりましたが、サイト外での脅威はそのままになっている状態です。
Google Search Consoleを確認し、すでにGooglebotに拾われているマルウェアが作ったページの削除申請を行いましょう。

以下のURLのうち、身に覚えがないページが登録されている場合はマルウェアが作ったページです。

  • /download/~~
  • /market/~~

マルウェアに汚染されないサイトにするために

マルウェアを削除できたらそれで終わりではありません。
すでにマルウェアに感染されうる環境でWordPressサイトを利用しているため、「WPCore Content Manager」以外のマルウェアにも感染しやすい状況にあります。
二度とマルウェアに汚染されないよう、できる限りの対策を行いましょう。

  • WordPressコア/プラグイン/テーマは常に最新にする
  • 使用しないプラグイン/テーマは削除する
    • 特に、毎年勝手に追加されるWordPressのデフォルトテーマは最新のものを除き削除しましょう
  • 管理者権限があるアカウントは2FAをつける
  • セキュリティプラグインを設定する
    • 脆弱性やブルートフォースアタックなどの経路で侵入されることを防げます
  • サイトを放置しない
    • プラグインやユーザー欄に知らないものが追加されていないか、定期的に確認する必要があります

マルウェアによるサイトの汚染は気づかないうちに、時とともに進行するため早めの対処が肝要です。

昨今はWordPressコアやプラグインの脆弱性報告が多く寄せられ、パッチリリースも頻繁になりました。一方で、表示崩れやバージョンアップによる仕様変更を忌避して、作ったときから一切バージョンアップせずWordPressを使うという方もまだたくさんいます。表示崩れは比較的簡単にどうにかできますが、一度マルウェア感染すると復旧がとてつもなく大変ですし、Google検索から排除されることもあります。バージョンアップの適応やセキュリティプラグインの導入など、WordPressの適切な保守管理を心がけましょう。

本記事が同様の症状でお困りの方の参考になれば幸いです。

  • URLをコピーしました!
目次