webには疎い私の戯言として参考程度に読んでほしい感じです。
ここ最近サイトが閲覧できないという報告がありました。WordPressの管理画面はかろうじて入れてもダッシュボードから先に行かない。どうやら403エラーを吐いている様子。
403を吐く場合はパーミッションの設定ミス、プラグインが対応していない、.htaccessの記述がおかしいのどれかですが、さっそく調べたところ前2つが原因ではない感じ。
念のためWordPressをクリーンインストールするも効果はなし。※サブディレクトリにインストールしてある
やはり.htaccessの記述ミスで上手くルートできていないのでは?と考え、開いたソースに見慣れない部分が…。
しかもリライトルールまで書き換わってるよ…。
さらに消しても書き直しても一定時間で元に戻ってしまうという有様。
結論を言ってしまうとハッキングされマルウェアを仕込まれ.htaccessが勝手に改ざんされるというオチでした。改ざんどころか下位のフォルダというフォルダに.htaccessが作られまくるという状況。そのせいで正しくphpを読み込めない状態だったようです。サイトの更新をさぼり、脆弱性を晒していた私が悪いのですがまさかこんなことに。
◆対策
詳しくはネット検索をすると同様の被害が多数報告されているのでそちらを参考にという感じです。→HTACCESSが改ざんされ管理画面へのアクセスが不可能になる
まずindex.phpが改ざんされており、文頭によくわからないコードに追加されていました。なのでindex.phpも削除。新しいindex.phpをアップしました。さらに作成した覚えのない怪しいphpファイルやフォルダも恐らくファイル名を偽装したマルウェアなのですべて削除。※ソースを開くと怪しい文字列で埋め尽くされてるので一目でわかります。
たぶん、これをしないと.htaccessどんなに直しても勝手に改ざんされてしまいます。※.htaccessのみ修正したところ、一時的にWordPressが無事機能するようになったのですが、しばらくすると再び403エラー。修正したはずの.htaccessがまた置き換わってました(;´Д`)
<FilesMatch “.(py|exe|php)$”>
Order allow,deny
Deny from all
</FilesMatch>
<FilesMatch “^(about.php|radio.php|index.php|content.php|lock360.php|admin.php|wp-login.php)$”>
Order allow,deny
Allow from all
</FilesMatch>
つぎに.htaccessファイルの上記の記述を削除。特定の拡張子を拒否&特定のファイル名だけ許可、みたいな記述。さらに本来あるはずのない場所に作成されている.htaccessをすべて削除。不正な.htaccessはありとあらゆる全てのフォルダの深いところまで侵食しているので、マルウェア除去プラグインを入れるか、いっその事一旦サーバーをクリーンにしてWordPressを入れ直したほうがいいかも(バックアップは忘れずに)。
最後にWordPressもプラグインも最新版に更新。パスワードも変更。
今のところ.htaccessが勝手に置き換えられる現象が止まりました。なんとかサイトも正常に機能するようになり一応は復旧できました。ただ、バックドア仕込まれてる可能性もあるのでしばらく様子見。
画像などはいったんバックアップに退避して消してしまったので、暇を見て再アップロードします。しばしお待ちください。