こんにちは、とち( @tochi1203 )です。
先日、当ブログはじめ、同じサーバーアカウントに紐づく、手持ちのWordPressサイト7つがハッキング被害に合いました。
死んだ、、、と思いました、はい。

ハッキングから40時間後、なんとか生還を果たしました。
本記事は、ハッキング被害からのWebサイト奪還記です。
本記事は、下の悩みを持つ人を救います。
- WordPressで同様のハッキング被害にあった人
- WordPressのハッキング対策をしっかり講じたい人
- WordPressへのセキュリティ対策に甘さがあった過去の自分
刻々と状況が変わった経緯から、時系列に沿って書いています。
※ 僕のウイルスとの戦いは40時間に及びましたが、記事は3分で読めます。
3分があなたのサイトを救うやもですので、お付き合いくださいm(__)m
【実録】WordPress7サイトがハッキングされた【復旧への死闘40時間】

①予兆:7月1日(木)16時11分

WordPressユーザー登録を知らせるメールが届く。(同日23時にも別ユーザー名にて登録あり)
(注)会員登録サイトではないサイト

またスパムか、、、ぐらいの感覚。
②平常:7月1日(木)16〜24時

何事もなく、WordPressサイトでカタカタ作業。
③異変:7月2日(金)0時30分

ふと、当ブログ(https://to-chi.org/)を開けると、下記のようなエラー表示。
(※黒塗りはサーバーID)

他の手持ちサイトには問題がなかったため、一過性のバグかなぐらいの軽い気持ち。寝る。
ちなみに「fatal error」とは直訳で「致命的な誤り」。

④察知:7月2日(金)6時30分

エラー表示は、出たまま。
ググりまくるも、解決策が見つからず。
ブラウザによるエラーメッセージからサーバーうんぬんが読み取れたので、契約するエックスサーバーに問い合わせメールを送信。
(※電話対応は10時〜)

なお、メール送信後、最新のバックアップを取得。
とんでもないことが起こっていると、ようやく気づく。ざわ。
⑤蒼白:7月2日(金)7時00分

手持ちの全7サイトで、同様のエラーが返されていることが発覚。
(※黒塗りはサーバーID)

失神。
⑥焦燥:7月2日(金)10時00分

営業開始と同時に、エックスサーバーに電話。
「た・す・け・て」と懇願。
問い合わせメールの送信先・技術部からの返信を待ってほしい、とのこと。
ユーザーにも当然、エラー表示が返されている。
この時ほど「アクセス来るな」と念じたことは、ない。
⑦返信:7月2日(金)12時13分

エックスサーバー技術部より、返信あり。

複数のサブディレクトリが生成されているよ、と。
身に覚えはあるか?と。
もちろん、ない。
⑧対処:7月2日(金)12時30分

エックスサーバーからの提案どおり、最新のWordPressをダウンロード。
「wp-includes」フォルダを上書きする。

⑨依頼:7月2日(金)13時18分

「wp-includes」「wp-admin」の上書きだけでは改善が見られず、詳しい原因の調査をエックスサーバーに依頼。

合わせて、全サイトがやられている旨を再度、連絡。
緊急性を強調。
このあたりから、焦りで記憶が飛ぶ。
⑩悪意:7月2日(金)15時37分

エックスサーバーより、調査報告が届く。

「致命的なバグ(脆弱性)が存在し、第三者に悪用されてしまった可能性が非常に高い状況」とのこと。
検知された不正ファイルが、ドバっと下記。

手持ちの7サイトすべてに、不正ファイルが仕込まれていた。
同時にサーバー側にて、以下の処理を実行してもらう。
- 全ドメインにWAF(Web Application Firewall)を設定
- 不正ファイルのパーミッションを000に変更。機能無効化。
⑪除去:7月2日(金)16時00分

不正プログラムを一個一個、削除。

さらにWordPressよりダウンロードしたばかりの、クリーンなファイルを上書きしていく。
(wp-config.phpとwp-contentフォルダ以外)
一部のドメインで、サイトが復旧する。
ただ当ブログほか、主稼働していたサイトは、復旧せず。
⑫激闘:7月2日(金)20時02分

エックスサーバーにて、不正プログラムが仕込まれる前の状態(6月30日)のバックアップファイルをダウンロード。(※自動バックアップにて)

ダウンロードした”問題の起こっていなかった”ときのファイルを、上書きしていく。

ファイルを上書きするたび、表示エラーが変わる。
変わる → 上書き

変わる → 上書き

変わる → 上書き

終わりなき旅
変わる → 上書き

エラー表示を追って、ひたすらバックアップファイルで上書きすること2時間、復旧。
(したと思っていた…後ほど不具合発覚)
⑬謎人:7月2日(金)22時00分

ようやく入れた管理画面。
全サイトに謎のユーザー。



即刻、削除。
全サイトで、パスワードと管理画面URLを変更。
ユーザーの登録通知が入ったのは1サイトだけだったのに…。データベースに入られた?
⑭馬鹿:7月2日(金)23時00分

安堵と、激闘の疲れゆえ、落ちる。
完全復旧していないこと、つゆ知らず。
⑮再戦:7月3日(金)6時00分

一部のサイトで「403エラー」が、頻出していることに気づく。

Index.phpファイルの有無の確認、パーミッションの変更でも治らず。
⑯原因:7月3日(金)8時00分

エックスサーバー側にて「WAF」を設定してもらったことに思い至る。
403が頻出したサイトの「WAF」を解除。

403エラーが解消。
全サイトが、通常表示されるように。
これにて、全サイトが完全復旧!(したと思う^^;)
⑰御礼:7月3日(金)8時53分

迅速に対応いただいたエックスサーバーにお礼のメールを送信。
ハッキングからの復旧への激闘、終幕。

WordPressハッキングにあった落ち度と原因(推測)

今回ハッキングにあったWordPress7サイトのうち3サイトは、実質放置していたサイトでした。
そのうちセキュリティの弱い1つのサイトを狙われ、管理画面に入られ、全サイトにまで被害が及んだ推測です。

侵入を許したサイトの、”当時” のセキュリティ状況が下記。
- WordPress本体、テーマ、プラグインを更新せず放置
- WordPress管理画面ログインURLがデフォルトのまま
- 管理画面ログインパスワードが、推測されやすいもの
1つのドメインから紐づくアカウントのドメイン全てがやられる事態を想定せず、鍵の開いたサイトを放置していた自分の落ち度でございました。
WordPressハッキングへの対策(全サイトに講じよ)

今回のWordPressサイトのハッキング被害を受け、以下の対策を手持ちの全サイトに講じました。
- 不使用ドメインの解約 ← ドメイン取得業者で解約
- 管理画面ログイン通知 ← SiteGuard WP Pluginで実装
- ログインパスワードの変更 ← 管理画面「設定」より変更
- 管理画面ログインURLの変更 ← SiteGuard WP Pluginで実装
- 不使用テーマ・プラグインの削除 ← 管理画面で操作
- WordPress本体、プラグインの更新 ← 管理画面より更新
- コンテンツ表示に問題ない範囲でのWAFの設定 ← サーバーで設定
上記で、ログイン周りを中心にある程度の攻撃には対処できる、と思います。
より強固なセキュリティ対策を講じたい方は、下の記事をどうぞ。
» 【必須】WordPressセキュリティ対策13個【猛攻に備えヨ】
【実録】WordPress7サイトがハッキングされた【復旧への死闘40時間】:おわりに

生きた心地のしない40時間でした。
今回のハッキングにあって、以下の気づきがありました。
- やはりWordPressには、脆弱性がある(再確認)
- 1つのドメインから、違うドメインに攻撃は及ぶ
- 力を入れてきたサイトは子どものような尊い存在
2度とこんな思いをしたくないので、セキュリティへの意識、高めていかないと、です。
最後に重ねてですが、迅速に対応くださったエックスサーバーさんに感謝です。
あざますm(__)m »エックスサーバー