ワードプレスのマルウェア感染ファイルによくみられる\x2eや\161,\u等の文字についてと、戻して読む方法について解説いたします。

マルウェアに多く含まれるバックスラッシュ\の文字列の難読化解除

マルウェアのコードは多くの場合、難読化という一目で見て何をしているかわからない処理がされています。また、マルウェアが検出されないように難読化処理を駆使する不正なプログラムもございます。

※難読化処理されていると言って必ずしもマルウェアではないことに留意してください。テーマやプラグイン、データ等の秘匿性や、利便性向上を目的とした難読化処理が使われることもございます。

この処理の一つとして文字列を\バックしスラッシュ付きの特殊な文字表記方法で表記する場合があります。
この特殊な表記方法は、UTF8やユニコードの一文字をプログラム的に指定する方法で、PHPプログラム上は一般的な文字列として認識処理されますが、人間には読みにくい物となります。

例えば下記のようなプログラムがマルウェアに含まれているとします。

function_exists("\x661457\x6754\x5f\x637\x6e4\x656\x74\x73")

この\xの文字列コードをオンラインでPHP実行できるサイトで、echo (出力)してみると下記のような結果になりました。

つまりこの文字列はfile_get_contentsを難読化処理したものであることが分かります。
このようにechoで難読化解除することもできますが、下記のような難読化解除のためのオンラインサービスもございます。

https://malwaredecoder.com/

http://php-decoder.site/

eval関数がマルウェアファイルに最後についている場合

evalは文字列をプログラムコードとして解釈して実行する関数で、上記のような難読化処理された文字列を実行するマルウェアで極めてよく使われる関数です。

eval("\x661.............")

のようにユニコード文字列を実行したり、下記のように別の難読化関数base64_decodeを使用される例もよくございます

eval(base64_decode("YRJD.........")

このような場合もevalをechoに書き換えると難読化解除されて、マルウェアがどのようなプログラムを実行しているか調べることができる場合があります。
(入れ子上にさらに難読化されたコードが何段階も出てくる場合もあります。)

echo("\x661.............")

難読化処理されたマルウェアファイルがワードプレスサイトにある場合は?

この場合、ワードプレスの階層の深い所や、サーバー上の別サイトのフォルダに複数のマルウェアが設置されてい可能性もありますので、一度網羅的なマルウェア検査を行われることをお勧めいたします。

【無料】ワードプレス:マルウェアスキャン&セキュリティープラグイン [マルウェア・ウィルス検出と駆除]

またマルウェアが検出された場合は、最初にハッカーの侵入を許した脆弱性がサイトにあるという事になりますので、脆弱性対策も必要となってまいります。
マルウェア駆除や脆弱性検査、セキュリティー対策の一連の作業は専門家にご依頼いただくことも可能です。
お気軽にご相談お送りください。

WordPress 年間数百件のサイトのマルウェア対策を代行。WPドクターまでおきがるにご依頼・ご相談お送りください