友人が運営するwordpressサイトがハッキングされていました。
ざっと調べたところよくある問題のようです。どのサイトでも発生する可能性があると思われるので、そのサイトの情報は伏せた上で、症状と対処を共有しておきます。
どういう経路で改ざんされたか未特定なので対症療法的な対処です。(なんらかの脆弱性を突かれたとした場合、そこを塞ぐのが根本対応となります)
環境
- PHP 5.6.40
- WORDPRESS 4.9.10
- さくらレンタルサーバ
症状
そのサイトにアクセスすると「時々」、無関係なページ(多くはショッピングサイト)にリダイレクトされる。
原因
index.php
とwp-settings.php
が改ざんされて、不正なコードが実行されるようになっていました。(コメント欄でwp-config.php
も改竄されたというご報告もいただきました)
具体的には、以下のようなコードがファイルの先頭(<?php
の後)に挿入されています。(include命令のハイフンは実際には存在しません)
/*5cadc*/
@i-nclude "\057ho\155e/\...中略.../.\0671b\143bc\1452.\151co";
/*5cadc*/
@include "\057h\157m\145/\...中略...\157r\057.\0671\142c\142d\1453\056i\143o";
このコードをデコードすると、以下のようになります。
@i-nclude /home/...中略.../.71bcbce2.ico
@i-nclude /home/...中略.../.45f02abd.ico
この .71bcbce2.ico
ファイルは実際はPHPファイルでeval
を含むコードが記載されていて、これによりリダイレクトしているようです。
phpタグではじまる難読化されたコード
e-val(rawurldecode($_b6zpgi5) ^ substr(str_repeat($_tzdfh, (strlen($_b6zpgi5)/strlen($_tzdfh)) + 1), 0, strlen($_b6zpgi5)));
続く
対処
index.phpに挿入されたコードを削除すればリダイレクトされてしまう問題は解消されます。
ico
ファイルも削除します。
サイトの最上位ディレクトリで以下のコマンドを実行して、他にも同様の改ざんがないか確認します。
find . -name '*.php' | xargs grep 151co
find . -name '*.php' | xargs grep 143o
繰り返しになりますが、これは対症療法であり根本的には脆弱性をふさぐ必要があります。
追記
改ざん・生成されたファイルの多くはWordfenceプラグインのScanで検出されますが、icoファイル
は検索対象外のようで検出されませんでした。
icoファイルを探して、一つづつ確認したほうがよさそうです。
find . -name '*.ico'