WordPress に XSS が埋め込まれてから復旧まで

ざっと記録として残しておきます。

5/30 に悪質サイトに登録される

仕事上、執筆やらプログラミングの折りには自分のサイトを Google で検索するのが多いのですが、5/30 の朝に検索すると悪質サイトとして登録されていました。

Google ウェブマスターからはこんな感じ。

image

なんぞ、クラッキングされたのか?と思ったものの、直で moonmile.net からアクセスして当 blog にアクセスすると大丈夫。でも、Google 検索をさせると駄目という状態で。なんら表面上は大丈夫なように見えるんですが、妙にアクセスが遅いのが気になるところでした。ページにアクセスしようとすると、windows defender が警告を発する状態です。

ソースコードが保存できない

表面上、何もないということは XSS を仕組まれたか何かなので、ソースコードを見ます。Firefox ではガードされて見れなかったので、ひとまず Edge で見てエディタに貼り付けて保存しようとすると、windows defender が警告を出します。ってことは、コード自身に何かがある訳ですよね。

そんな訳でちょっとずつ HTML コードを削っていくと、妙な javascript が head タグにくっついているのを発見。それを削ると保存できるので、どうやらここが原因のようです。コード自体は公開できないのですが(悪質サイトになってしまうし)、kicrea[.]it に情報を送っています。

こんなスクリプトが wp_head() の後ろに埋め込まれます。IP のところは怪しいサイトに誘導されています。

image

wordpress の header.php を見る

google の Search Console https://www.google.com/webmasters/tools/home?hl=ja 名にたくさんのページが改竄されています。URL を見るとRSSまで改竄されているのと、先の head タグに書きもまれているので、どうやらヘッダ部分があやしいと推測します。

案の定 header.php に XSS が仕込まれているので削除します。

問題は、ここの blog のテーマだけでなく使っていないテーマの header.php や、相乗りしている header.php にも改竄がはいっていたことです。アクセスログを見ても wordpress からログインした形跡がないし(admin は消し去っています)、そもそも使っていないテーマの header.php を改竄すること自体おかしいし、ファイルの日付を見ると変更されていないので、どうやらターミナルコンソールのほうで何かあった感じ。

フォルダをリネームして google へ再申請

ひとまず、Google 検索で悪質サイトが出続けるのも困るので、フォルダをリネームして、Google に再申請します。元ページを削除した旨を連絡して、まっさらな index.html だけおきます。再申請のチェックは 12時間ぐらい掛かるので、まあ、早めに手を打っておこうかと。

たぶん、共有サーバーだから?

いくつかのサブドメインで運用している wordpress の header.php もやられてしまったので、これも修正します。当然、それらのドメイン(dotnetlab.net や openccpm.com)も悪質サイト扱いになっているので、同じように再申請しておきます。

このブログが乗っているのは、共有サーバーなのでたぶん100名ぐらいが同時に使っているんですよね。改竄された形跡から考えると、wordpress 経由とは考えづらく、ターミナルのパスワードが盗られたとも考えにくいので、共有の他のユーザーから漏れたのかなと。ただし、header.php のパーミッションは 644 -rw-r–r– なので、以前ロリポップ等でやられてしまったようなグループからは外れていると思うんですけどね。ルート権限からユーザーのパスワードが抜かれてしまったのかもしれません(ホスト側から連絡がないのでわからず)。

ひとまず、ターミナルへのパスワードを変更して、header.php を手作業で修正して様子見という状態です。2日間経って元に戻る気配はないので、ここで対処は終了。現時点では google から以前通りアクセスができます。

これ、個人の相乗り wordpress だったからよかったけど、商用サイトとかアフリエイトサイトとかだったら復旧が大変だったろうなと。

カテゴリー: トラブルシューティング パーマリンク