WordPressリダイレクトハックの対処法 – 悪意あるサイトへの強制リダイレクトを修正する完全ガイド
WordPressサイトが、自分の知らない悪意のあるサイトへ訪問者を勝手にリダイレクトしていませんか?もしそうなら、あなたのサイトはハッキングされている可能性があります。いわゆる「WordPressリダイレクトハック」は、ハッカーに最も頻繁に悪用されている攻撃手法の一つです。なぜこれほど多用されるのか、その理由も含めて詳しく解説します。
WordPressリダイレクトハックの種類と症状
「WordPressハッキングによる不正リダイレクト」は決して新しい手口ではありません。長年にわたり、ハッカーたちはこのマルウェアをより巧妙に、検出されにくい形へと進化させてきました。代表的なリダイレクトハックのバリエーションは以下の通りです。
| ハックの種類 | 主な症状 |
|---|---|
| クラシック型リダイレクトハック | 最も古くから存在する手口です。誰かがサイトにアクセスするたびに、医薬品サイトやアダルトサイトなどの怪しいリンクへ強制的に誘導されます。 |
| 検索結果経由のリダイレクト | URLを直接入力して開いた場合は正常に表示されますが、Google検索からアクセスすると悪意のあるサイトへリダイレクトされます。 |
| デバイス別リダイレクト | 仕込まれたマルウェアの種類によって、スマートフォンから開いたときのみ、あるいはPCから開いたときのみリダイレクトが発生します。 |
| プッシュ通知ハック | 近年確認されている手口で、ハッカーが訪問者のブラウザにプッシュ通知を表示させます。通知先は多くの場合、アダルトサイトです。 |
| 地域別リダイレクト | 訪問者の中に、リダイレクトされる人とされない人が混在します。ハッカーが特定の地域でのみ作動するようマルウェアを設定しているためで、リダイレクト先も地域ごとに変えられます。 |
WordPressリダイレクトハックの主な症状
- スパムサイトや悪意のあるサイトへの明らかなリダイレクト
- 自サイトのGoogle検索結果がスパムだらけになっている
- サイト上に身に覚えのないプッシュ通知が表示される
- index.phpファイル内に悪意のあるJavaScriptコードが埋め込まれている
- .htaccess内に不明なコードが存在する
- 「人間であることの確認」画面へリダイレクトされる
- サーバー上に意味不明なファイル名のファイルが生成されている
- 怪しいbit.lyリンク:ハッカーの新しい手口です。実際の悪意あるURLを短縮したbit.lyコードをサイトに注入するため、通常のセキュリティスキャナーでは検出されにくくなっています。
現在、travelinskydream[.]ga や track.lowerskyactive、Outlookフィッシングページなどへのリダイレクト事例が多数報告されています。
WordPressスパムリダイレクト:感染経路はどこにあるのか?
正直に言えば、ハッカーがこの攻撃を実行する手段は十数通り以上あります。代表的なものを以下に紹介します。
最近のリダイレクトハック事例 – digestcolect[.]com へのリダイレクト
プラグインの脆弱性(XSS)を悪用されるケース
WordPressプラグインに存在する保存型クロスサイトスクリプティング(XSS)などの脆弱性により、ハッカーはサイトに悪意のあるJavaScriptコードを挿入できます。ハッカーは脆弱なプラグインを突き止めると、そのプラグインを使用しているすべてのサイトを探し出し、攻撃を試みます。過去には「WordPress Live Chat Support」や「Elementor Pro」などがこの種のリダイレクトハックの標的となりました。
.htaccessやwp-config.phpへのコード挿入
無料のセキュリティプラグインでマルウェアスキャンを行うと、.htaccessやwp-config.phpファイルは見落とされがちです。医薬品サイトへのリダイレクト事例では、一見普通のコードに偽装した悪質なコードが.htaccessに追加されていました。さらにハッカーは、ファイル内で右方向に大きくスクロールしないと発見できない位置にコードを隠すため、特定と除去が非常に困難になっています。この2つのファイルに加えて、functions.php、header.php、footer.php、wp-load.php、wp-settings.phpといったWordPressコアファイルも必ずチェックしましょう。
実際に顧客サイトのマルウェアスキャン中に、.htaccessファイル内から以下のようなコードが発見されたことがあります。このコードは訪問者を危険な医薬品スパムサイトへリダイレクトするものでした。
サイトヘッダーへのJavaScript挿入
一部のプラグインやテーマには、<head>タグ内や</body>タグ直前にコードを追加できる機能があります。本来はGoogle AnalyticsやFacebookピクセル、Search Console用のコードを設置するための便利な機能ですが、ハッカーがWordPressサイトのリダイレクト目的で悪用するケースが確認されています。
検索されにくくするため、悪意あるサイトのURLは文字列形式から文字コードへ変換されることが多く、変換後のコードは次のように表示されます。
wp-adminへの幽霊管理者(ゴーストアドミン)の追加
プラグインの権限昇格脆弱性を突かれると、ハッカーがサイトに幽霊(偽)管理者アカウントを作成できる場合があります。一旦管理者権限を奪われると、ハッカーはサイトへのフルアクセスを得て、バックドアやリダイレクトコードを自由に仕込めるようになります。
WordPressリダイレクト感染はどこに潜んでいるのか?
WordPressコアファイルとテーマファイル
攻撃者はWordPressのコアファイルのいずれかにコードを注入することでサイトに感染させることができます。以下のファイルを悪意のあるコードがないか確認してください。
index.phpwp-config.phpwp-settings.phpwp-load.php.htaccess- テーマファイル(
wp-content/themes/{テーマ名}/)footer.phpheader.phpfunctions.php
すべてのJavaScriptファイル
リダイレクトマルウェアの亜種によっては、サイト上のすべてのJavaScript(.js)ファイルに感染するものがあります。wp-includes、プラグイン、テーマフォルダ内のJSファイルも含まれます。同じ難読化コードが各JSファイルの先頭に追記されているのが典型的です。
WordPressデータベース
WordPressデータベースで最も標的になりやすいのは、wp_postsテーブルとwp_optionsテーブルです。スパムサイトへのリンクやJSコードが、記事やページごとに埋め込まれていることがよくあります。
偽のfavicon.icoファイル
一部のマルウェアは、内部に悪意のあるPHPコードを含んだ偽のfavicon.icoやランダムな.icoファイルをサーバー上に生成します。この悪意あるPHPコードは、URLインジェクション、管理者アカウントの作成、スパイウェア/トロイの木馬のインストール、フィッシングページの作成など、危険な動作を実行することが知られています。
関連ガイド – WordPressハック除去の完全手順
こうしたファイルは本物のアイコン画像データではなく悪意あるコードを含んでおり、サーバーをスパムファイルで汚染します。ファイルを読み込むために使われるコードの一例がこちらです。
@include "\x2f/sg\x62/fa\x76ico\x6e_54\x656ed\x2eico";
WordPressリダイレクトハック – マルウェアスキャンの進め方
マルウェアスキャンを始める前に、まず自分のサイトがどのタイプのリダイレクトハックを受けているかを特定しましょう。前述の手順を参考に種類を判明させたら、次は実際に悪意あるコードを見つけてサイトから除去します。
自動マルウェアスキャンツールを使う方法と、手動で対応する方法の2つがあります。リダイレクトハックを除去し再発を防ぐために実行すべき手順は以下の通りです。
1. WordPressマルウェアスキャナーを利用する
技術的な知識があまりないWordPressユーザーにとって、Astraのようなマルウェア除去ソリューションは、サイトを壊すことなくリダイレクト問題を発見・除去・修復できる最速かつ最も簡単な方法です。
手動でスキャンし、ハックの種類に応じた対策を取りたい場合は、以降のステップを順番に実行してください。
2. オンラインのセキュリティスキャンツールでチェックする
予備調査として、Astraの無料セキュリティスキャナーやGoogle Safe Browsingなどのツールでサイトをスキャンできます。サイトがブラックリスト登録されたURLにリンクしている場合、これらのツールが警告を発します。また、サイト内で発見された悪意あるコード断片の簡易リスト(網羅的ではない)も取得できます。詳細なスキャンが必要な場合は、全ファイルを手動で確認するか、専門のマルウェアスキャンを依頼しましょう。
3. WordPressコアファイルの整合性を検証する
コアファイルに悪意あるコードが注入されていないか確認するには、WP-CLIを使ってファイル整合性チェックを実行します。手順は以下の通りです。
- SSHでサーバーにログインする
- WP-CLIをインストールする
- WordPressがインストールされているディレクトリへ移動する
cd /var/www/html/ - 現在のWordPressバージョンを確認する
wp core version - チェックサムが公式リリースと一致しないファイルのリストを取得する
wp core verify-checksums - コマンドの出力を確認する。多少の警告であれば問題ありませんが、コアファイルのチェックサムが一致しない場合は、コアファイルの差し替えまたはバックアップからの復元が必要です。
元のCMSファイルと実際のファイルの差分を目視で確認したい場合は、Astraのコアファイル整合性スキャンを利用できます。
4. 隠れたバックドアとリダイレクトコードを除去する
ハッカーは通常、再侵入のための経路を残します。バックドアは、正規のファイルとそっくりな名前を持つファイルの中に潜んでいることが多いのです。
サイトのファイルを手動で検索し、eval、base64_decode、gzinflate、preg_replace、str_rot13などの悪用されやすいPHP関数を探しましょう。ただし、これらの関数はプラグインが正当な用途でも使用するため、誤ってサイトを壊さないよう、必ずバックアップを取るか専門家の支援を受けてください。
5. 新しい管理者ユーザーが追加されていないか確認する
WordPress管理画面にログインし、幽霊アカウントや見覚えのない管理者ユーザーが追加されていないかチェックします。ハッカーは自分自身を管理者として登録し、リダイレクトハックを除去した後もサイトへのアクセス権を維持して再感染させるのが常套手段です。
不審なユーザーを見つけたら、すぐにアカウントを削除し、他のすべての管理者アカウントのパスワードを変更してください。
ついでに、サイトの運用方針に応じて「誰でもユーザー登録ができる」オプションを無効化し、「新規ユーザーのデフォルト権限グループ」を「購読者」に設定しておきましょう。
6. プラグインとテーマファイルをスキャンする
偽物・脆弱なプラグインをチェックする
左メニューの「プラグイン」をクリックし、インストール済みの全プラグインを確認します。見覚えのないプラグインがあれば削除してください。
更新可能なプラグインについては、WordPressプラグインのチェンジログで最近のセキュリティ問題が報告されていないか確認しましょう。また、前述のステップ4と同様に、プラグインファイル内にバックドアやリダイレクトコードがないかスキャンします。
diffチェッカーなどのオンラインツールを使えば、自分のプラグインファイルと公式版を比較できます。WordPressプラグインディレクトリから同じプラグインをダウンロードし、インストール済みのものと照合してみてください。
ただしこの方法にも限界があります。複数のプラグインを使用している場合、すべてのファイルを比較するのは現実的ではありません。また、リダイレクトハックの原因がゼロデイ脆弱性であれば、修正アップデートがまだ提供されていない可能性もあります。
7. データベース内の悪意あるリンクを検索する
バックドアを探したときと同様に、WordPressデータベース内を手動で検索できます。phpMyAdminやAdminerなどのデータベース管理ツールにログインし、サイトが使用しているデータベースを選択して、<script>、eval、base64_decode、gzinflate、preg_replace、str_replaceなどのキーワードを検索します。
変更を加える際は細心の注意を払ってください。スペース1つ挿入するだけでも、サイトが読み込めなくなったり正常に動作しなくなったりする恐れがあります。
WordPressハッキングリダイレクト:サイトのクリーンアップ方法
スキャンで悪意あるコードを特定できたら、次はそれを除去します。
- まず、感染しているかもしれない状態でも、サイトのファイルとデータベースのバックアップを必ず取ります。
- サーバーにログインし、悪意あるファイルを確認・隔離できるようにします。cPanelのファイルマネージャー、(s)FTP、SSHなど従来の方法が使えます。
- 前のステップで検出されたファイルを編集し、マルウェア部分を特定してコードを削除します。ファイル全体が悪意あるものであれば、ファイルごと削除しても構いません。
- 同じ悪意あるコードが複数のファイルに見つかった場合は、SSH経由でLinuxの
findとsedコマンドを活用できます。変更は元に戻せないため、使用時は十分注意してください。
例:find /path/to/your/folder -name “*.js” -exec sed -i “s//ReplaceWithMalwareCode*//n&/g” ‘{}’ ; - すべてのファイルとデータベースのクリーンアップが完了したら、忘れずにサイトのキャッシュをパージ(消去)します。
- シークレットモード/プライベートブラウジングで自分のサイトにアクセスし、リダイレクトが発生しなくなったことを確認します。
リダイレクトハックを未然に防ぎたい方へ
Astraの受賞歴あるウェブサイト保護ソリューション(WAFファイアウォール+マルウェアスキャナー)なら、WordPressリダイレクトハックだけでなく、バックドア、ウイルス、トロイの木馬などからもサイトを徹底的に保護できます。
リダイレクトマルウェアは非常に蔓延しているため、私たちはリダイレクトハックの修復方法について詳細なステップバイステップ動画も公開しています。ハッカーはセキュリティ企業のレーダーに引っかからないよう手法を常に更新していますが、根本的な原理は変わりません。
あわせて読みたい:WordPressサイトの不要なポップアップを修正する方法 – 詳細ガイド
WordPress悪意あるリダイレクト:まとめ
ハッカーは常に手法を進化させ、世間に知られていない脆弱性を悪用し、さまざまなエクスプロイトを組み合わせて攻撃を仕掛けてきます。ハックの除去は対策の一部にすぎません。二度と被害に遭わないためには、Astraのセキュリティスイートのような恒久的な防御体制が必要です :)
-
WordPressバックドアハッキングとは?症状・発見方法・修正手順を徹底解説
WordPressバックドアとは? 毎年何千ものWordPressサイトがマルウェアに感染しており、その数は年々増加しています。ハッキングされたサイトは、詐欺やスパムの拡散に利用されることが多く、サイトオーナーや開発者自身が感染に気づいていないケースも少なくありません。感染は一時的な場合もあれば、長期にわたり潜伏する場合もあります。この「持続性」を支えているのが、まさにWordPressバックドアなのです。 WordPressバックドアとは、攻撃者にサーバーへの不正かつ永続的なアクセスを許してしまうコードのことです。多くの場合、どこかに隠された悪意あるファイルとして存在し、感染したプラグインで
-
【修正】WordPress「rms-script」リモートアクセスマルウェアの実態と対処法
最近、一部のWordPressサイトにおいて、外部サイトへのリモートアクセスを許してしまうマルウェアが確認されました。このマルウェアは、wp-content/mu-pluginsフォルダ内に配置された複数のPHPファイルに潜んでいることが判明しています。しかも厄介なことに、無料のWordPressセキュリティプラグインでサイトをスキャンしても、異常は一切検出されませんでした。本記事では、このマルウェアの詳細と、感染した場合の具体的な対処方法について詳しく解説します。 rms-scriptマルウェアの挙動 最初に気づくのは、WordPressサイトに奇妙なエラーが表示されることです。このエラーの