「social.png」の罠

佐野

佐野 2014年9月3日

WordPressのテーマの中に、マルウェアが仕込まれているという話もありますが、
その中で、ひとつ気になったのが「social.png」というファイルです。

拡張子を見る限り、画像ファイルのようですが、じつはこれ実体はPHPファイルです。
私自身も実際に入手する事に成功したので、ファイルを解析してみました。

ちなみに、このファイルは実体はPHPなので、
PHPをインストールしたウェブサーバーで開かない限りは、
PC上から普通に開いても問題はありません。
ただし、xamppを使用してウェブブラウザで開くのは、やめておいたほうがいいと思います。

ただし、このファイルはミニファイ化(改行などを除去して圧縮)されているので、
そのまま読むのは困難です。
というわけで、テキストエディタで「;」「{」「}」の後に改行を付けるように置換を行い、
少し読みやすく整形しました。

その中で気になったのが、以下の部分。

private function KZdGlovqEtKYUSCqSVnK(){
 $oXyaqmHoChvHQFCvTluqmAC = array();
 $oXyaqmHoChvHQFCvTluqmAC['host'] = $_SERVER['HTTP_HOST'];
 $oXyaqmHoChvHQFCvTluqmAC['page'] = $_SERVER['REQUEST_URI'];
 $oXyaqmHoChvHQFCvTluqmAC['ip'] = $_SERVER['SERVER_ADDR'];
 $oXyaqmHoChvHQFCvTluqmAC['eval'] = $this->YrCTrfUzBfsVJKvqiYUeFbc();
 $oXyaqmHoChvHQFCvTluqmAC['exec'] = $this->KNstTqErzZQBDQOODaJdLv();
 $oXyaqmHoChvHQFCvTluqmAC['serverKey'] = $this->BkISKDyWWRXScnLPbTlyI();
 $oXyaqmHoChvHQFCvTluqmAC['run'] = 0;
 $oXyaqmHoChvHQFCvTluqmAC['ver'] = 0.2;
 $oXyaqmHoChvHQFCvTluqmAC['started'] = date('Ymd');
 $oXyaqmHoChvHQFCvTluqmAC['last_connect'] = date('Ymd');
 $this->WbKPQMoSbMZkXUeYKXRIk = $oXyaqmHoChvHQFCvTluqmAC;
 return $oXyaqmHoChvHQFCvTluqmAC;
 }

変数名や関数名はランダム文字に置き換えられているようですが、
注目するべきは、連想配列のプロパティ。
URLやサーバーのIPアドレスなどといった情報も含まれているようですが、
中でも「serverKey」という部分が異様に気になるところです。

このファイルですが、どこにあるかと言いますと、
テーマの「images」フォルダの中に、「social.png」として画像に紛れています。
そして、それを呼び出している部分が、「テーマのための関数(functions.php)」の
ファイルのどこかにinclude('images/social.png');という部分があるはずです。
もしあれば、削除する事を推奨します。

もし削除せずに動作していれば、
<script src="//genericstts.com/init.min.js"/></script>
というコードが、ソースコードにまぎれているはずです。
このリンク先に置かれた「init.min.js」には、
この呼び出しコードを消去するためのコードが1行書かれてあるだけですが、
JavaScriptでは、大本のソースコードまでは消去できないので、
ページ上で右クリックし、「ページのソースを表示」等でソースを開き、
Ctrl + F検索をかけてみるといいでしょう。