以前、サーバー丸ごとウィルスにやられてハッキングされた、という記事を書いたのですが、これと同じような症状が知り合いのサイトにおきましてヘルプ要請が来ました。
その対応策をまとめておきます。
以前の記事↓
今回はさくらサーバーです。
改ざんの予兆は「突然ワードプレスのサイトが見れなくなっている」こと
事の発端は、知り合いから「ワードプレスのサイトが見れない」という連絡で、確認をしてみたところ
WarningとFatal errorが出ていました。
中身を確認すると、どうやらindex.phpのコードが改ざんされている様子。
index.phpを修正する過程で以下のようなことが起きていることが判明しました。
分かったこと
- 各フォルダに大量の「.htaccess」ができている。しかも不審なコードいり。
- index.phpが改ざんされている。しかも不審なコード入り。
- 「.htaccess」と「index.php」はパーミッションが「444」に変更され、削除しても瞬時に生成される
- about.php、radio.php、old-index.php、content.php 、2index.php 、new-index.phpなど普段使わないようなPHPファイルが、どこかしこに入っている
- ワードプレスのダッシュボードには入れるが、admin系のページは「403 Forbidden」になってしまう。
.htaccessには大体このようなコードが入っています。
それから、行ったことは以下の通り
行ったこと
- まず、サーバー内の全データをローカルに保存しバックアップ(数時間かかりました)
- バックアップデータは、一応のためそのまま残しておきます。複製し、「.htaccess」と検索。同日同時間にできているものを一括削除(3000くらいのデータが入っていました)
- ウィルスを動かすデータを洗い出すため、使ってない不要なWPやフォルダは削除する
- about.php、radio.php、old-index.php、content.php 、2index.php 、new-index.phpなど不審なデータは削除(中を開けると)
- 改ざんされている「index.php」は不要なコードを削除し、元の状態に戻す
・・・と、作業をした後、上書きアップロードします。
これだけでワードプレスにログインできる場合もあるのですが、今回はそうはいきませんでした。
サーバー内のワードプレスにアクセスしようとすると、ログインページにスタイルシートが効いてなかったり、ログインできてもこのような画面になりました。
ここまでは見れるのですが、他のページ(例えばプラグインや投稿ページなど)をクリックすると「403 Forbidden」になり、どうにもこうにも先に進めなくなります。
そこで、試しにサーバー内の改ざんされているフォルダ外に一つWordpressを新規にインストールしてみました。
新規のワードプレスには、問題は出なかったので、新WPにプラグイン「Anti-Malware Security and Brute-Force Firewall」を入れて有効化します。
こちらのプラグインはワードプレスのインストールフォルダより上の階層までもスキャンしてくれます。
従って、ウィルスに汚染されていないフォルダ内にWPを入れて、それ以外の階層のサイトまでスキャンできる、というものです。
有効化するとダッシュボードに「Anti-Malware」のメニューができますのでクリック。
スキャン設定画面が出ます。
画面右の「無料でキーをゲット」をクリックすると、名前とメールアドレスを入れるフォームが出ますから、入れて「Register Now」ボタンをクリック。
すると、このようないかにも海外!というようなページが表示されますが、特になにもせず、ワードプレスのダッシュボードに戻ります。
設定画面では、どこのフォルダをスキャンするか選べますから、サーバー内の広めのエリア(改ざんされているフォルダを含む)を選んで「完全なスキャンを実行する」をします。
スキャンが始まり、少し時間がかかりますが、100%になるまで待ちます。
すると出てくるわ出てくるわ・・真っ赤な帯が!!
しかし、出てきた候補はクリックすると中身が確認できます。
脅威ファイルでもないものを拾うので、各リンクをクリックして中身を確認します。
クリックすると↓こんな感じのやばいやつです。一見なにか書いてあるかわからない不可解な文字列です。
(なぜか小さいキャプチャしか残っていなかった^^;)
リストアップされたところに、チェックをいれて、このプラグイン上で削除します。
削除がされるとこのような素敵なメッセージが表示されます
これで、一度、ウィルス感染しているであろうフォルダへ戻り、対象のワードプレスにログインしてみてください。
ログインが無事できれば、急いで「All in one migration」を入れてバックアップを取りましょう。
また、ウィルス感染していると思われるワードプレスにワードプレスドクターさんのマルウェアスキャナープラグインも入れて、すぐさまスキャンしましょう。
プラグインのダウンロードはこちらです。【無料】ワードプレス:マルウェアスキャン&セキュリティープラグイン [マルウェア・ウィルス検出と駆除] | ワードプレスドクター (wp-doctor.jp)
これらは後ほど詳しく解説します。
phpデータのすべてが「403 Forbidden」になり、.htaccessとindex.phpの生成が止まらないっ・・!
ワードプレスのログインさえできるようになれば、一安心なんですが、私の場合、一度できたはずのワードプレスの画面がまた「403」になったり、サーバー内に入っていたいくつかのWPがログインできたりできなかったり・・でした。とほほ・・
さらにテストで同階層に、新しいまっさらなワードプレスを入れてみても、同じようにダッシュボードに入れないので、これはサーバー全体に関わる何かが働いているはずだ、と思いました。
シンプルなphpが表示できるのかのテスト
ワードプレスに関係ないphpファイルをサーバー内に入れてみて、表示されるかどうかを試します。
真っ白のエディタに
<?php phpinfo();
とだけ書いて、test.php かなんかの名前を付けて、サーバー内に設置してアクセスします。
問題がなければ、このような画面が表示されるはずですが、
私の場合は「403 Forbidden」!!!!泣
したがって、やはりサーバー内のおそらく.htaccessが悪さをしているのだと思います。
フォルダ内をすべて空っぽにするという荒行
次に行ったのが、ウィルス感染フォルダ内をほぼ空っぽにする、という手です。
その間、ワードプレスは表示されませんから、アクセスがあっても閲覧できません。
本来、したくはない施策ですが、ウィルスの根本を駆除しなければ・・と夜中に開始。
すると・・・
フォルダ内が真っ白であっても、勝手に「index.php」と「.htaccess」が自動生成される・・
消した瞬間にできる。パーミッションは444。
TPソフト上からもわかります。削除した瞬間に読み込み直すとまた出ているのです^^;
フォルダ内に何も入ってなくても、この状態なのでこれはサーバー自体がやられているか、サーバー内の別フォルダからのアタックか、と考えられるわけです。
ちなみに。同階層に新たにフォルダを作り、新WPを入れてみたところ、そのようなことは起こりませんでしたので、「A(ドメイン名)」のフォルダだけアタックがかかっているような状態のようでした。
まー、そうなれば新しいフォルダを一つ作って、ドメインのつなぎ先を変えればいいのでしょうが、複数のワードプレスがバックアップが取れてないので(403のため)、なんとかかんとかphpが見れてダッシュボードに入りたいのです!
(最初にサーバー内のデータを丸ごとバックアップを取ったのでデーターベースもバックアップが取れれば、復元は可能なのでしょうが、真っ新なWPからの復元をしたかったので、ワードプレスの記事やサイトの設定類をバックアップすることに躍起になっています)
ここまでで試してみたことをまとめます。
ここまでで試してみたこと
- ウィルス感染の恐れのあるフォルダのPHPがみんな403になる。
→同じデータを別のフォルダ、別の階層に入れて表示をためす。
→見れる。
ということは、このフォルダ内だけPHPが見れないということ。どうもパーミッションに問題があるらしい - .htaccessとindex.phpをFTPソフトで消しても、瞬時に生成されるのが分かる。日時は、作業日よりも1か月ほど前の同時刻。
- 試しに別階層に新しいフォルダを作って、WPを入れ、バックアップができていたMigrationデータで復元をしてみた。同じPHPデータも表示されるし、.htaccesee、index.phpも生成されない
- ウィルス感染の恐れがあるフォルダ内を思い切って全部削除。それでも、.htaccessとindex.phpだけが生まれる・・という超恐ろしい自体に・・
- よし、これはサーバー引っ越しだ!と思うが、ウィルス感染フォルダ内にデータのバックアップが取れてないWPがいくつか入っており、どうしてもログインをしたい・・
- エックスサーバーも持っていたので、エックスサーバーの「簡単引っ越しツール(サイトのアカウントパスワードさえ分かればデータを移しかえることができる機能)」を試みるが、「引っ越し元にアクセスできません」と言われ、失敗する
とにかくWordpressのバックアップが取りたい!.htaccessの動きを止めたい!
こんなことを数日繰り返して、「.htaccess」削除だ!→数時間後に大量生成・・また削除・・の悪夢を繰り返していたのですが、
とにかく、今はフォルダ内を復元するというよりも、サーバーの引っ越しを前提にブログのデータのバックアップを取ることに目的を変えて、「.htaccess」の生成とパーミッションを変えないようにする策を試すように。
そうしましたら、先ほどご紹介した「ワードプレスドクター」さんに似たような事例の対処方法が記載されていました。
ワードプレスで一瞬で再度改ざんされるHTACCESSファイルとIndex.phpファイル | ワードプレスドクター (wp-doctor.jp)
この方法を試したところビンゴ!!
見事にPHPにアクセスできるようになり、ワードプレスのダッシュボードに入れるようになりましたっ!!!
さて、急いでバックアップを取ります。(いつアクセスできなくなるかわからないからね)
先ほどお伝えした
・「All in one Migration」でサイト全体のバックアップを取り、
・一応のため「ツール」から「エクスポート」で「すべてのコンテンツ」をバックアップを取り
・「All In One WP Security」でデータベースのバックアップが取れるのでバックアップをしました。
その上で、こちらのWPにも
・Anti-Malware Security and Brute-Force Firewall
・【無料】ワードプレス:マルウェアスキャン&セキュリティープラグイン [マルウェア・ウィルス検出と駆除] | ワードプレスドクター (wp-doctor.jp)
を入れます。
すぐさま走らせて、ウィルスを駆除します。
ワードプレスドクターでマルウェアを判定があると
このような画面が出て、自動駆除してくれます。
ただし、セキュリティソフトをいくつか入れましたから、それぞれのデータで「リスク判定」しあってしまう場合がありますから、必ず中を見てから駆除するかどうかを決めてください。
さくらサーバーの設定を強化する
バックアップが取れたら、さくらサーバーにログインして
・国外IPの遮断(これをすることにより、自身も遮断されることがあるとの情報を得て、今回は最後に設定しました)
・ドメイン事のWAF設定をON
・SSLをON
にした上で、各サイトは「SimpleSSL」プラグインを入れて、SSL化しました。
それから「Anti-Malware Security and Brute-Force Firewall」プラグインでも、セキュリティを強化する設定にしました。
これでひとまず、長い闘いは終わりました。
これで再発するようでしたら、バックアップデータがあるので、他のサーバーに移転することにします^^;
コメント
はじめまして!ブログ読ませていただきました。
僕もまったく同じ状況に陥ってしまい、いろいろ検索をして辿り着きました。参考になる記事をありがとうございます。素人ながら情報量に驚くとともに参考にさせていただきたいと思いました。
ひとつご質問なのですが、
そうしましたら、先ほどご紹介した「ワードプレスドクター」さんに似たような事例の対処方法が記載されていました。
ワードプレスで一瞬で再度改ざんされるHTACCESSファイルとIndex.phpファイル | ワードプレスドクター (wp-doctor.jp)
の部分の設置のところが分からず困っております。ファイル名は何にするのか、どの階層にそのPHPファイルを置くのか、よろしければご教授いただけますと嬉しいです。
やまっちさん、コメントありがとうございます。
この度、同じ状況になったとのこと。大変でしたね・・。
本当、精神的にやられますよね。。。
ワードプレスドクターさんで紹介されていた対処方法ですが、
ワードプレスドクターさんで紹介されていたPHPコードは、どんなファイル名でもいいのです。
テキストエディタにコピペ⇒ kaizan-no.php とか適当な名前にします。
アップロードする階層は、ワードプレスの「index.php」と「htaccess」が入っているフォルダ内です。
で、 http://hogehoge.com/kaizan-no.php とかでURLを叩いてアクセスします。