Gamblarに感染したサイトから駆除する方法

Gamblarに感染したサイトから駆除する方法Web開発者の備忘録最近私の周辺(Webサイト制作している企業)でGamblarの被害に遭われている方が増えています。。
(プロとしてはあまりにもお粗末な内容なのでここで書こうかどうか正直迷いましたが・・)

で、私のところには「どうやって駆除すればいい?」と聞いてくる(泣きついてくる)わけですね。。

ちなみにいつも回答している内容は次のとおり。
1.FTPアカウントのパスワードを変更
2.バックアップあれば、そこからデータ(HTML、js、php等スクリプト)を戻す
3.バックアップがなければ、タイムスタンプをみて改ざんされたファイルを推測、ファイルを開き変な記述がある部分を削除
4.gifimg.php みたいな怪しげなファイルや、勝手に作成されたディレクトリを削除
5.更新をかけているPCを最新のアンチウィルスソフトで全検索&Windows Update、Adobe製品(Flash,Acrobat)その他諸々思いつくもの全て最新バージョンに更新
6.FFFTP使っているのであれば http://www2.biglobe.ne.jp/~sota/最新版にアップデート。
7.FFFTPやWinSCPなどFTPクライアントに設定しているパスワードを消す

ここでいつも皆さん困ってしまうのが「3.でバックアップが無い場合」。特に仕組みが入っている場合に困ってしまうようですね、特にデザイナー出身の方は。どこをどう判断すればよいかが分からないらしいのです。
基本、チェックするファイルは全て。怪しいと判断する記述は・・正直説明は難しいですが、大体次のような記述です。

<?php eval(base64_decode(‘xxxxxxxxxxxxx数字とアルファベットの羅列’); ?>
document.write(‘<script src=http://xxx見たことも無いサイトのURL ></script>’);
<script src=http://xxx見たことも無いサイトのURL ></script>

ご参考まで。
※但し、中には消しちゃいけないものもある可能性があるので、必ず削除前にバックアップはとっておきましょう。

最後にもうひとつ。数が多すぎて修正しようにも手に負えないという場合。
特にEC-CUBEやMT、Wordpressなど、複雑な仕組みが入っている場合で、プログラムも感染された場合ですね。。
かなりのローテクですが、無いよりマシということで、次のようなスクリプトを作成しました。
(これも公開するレベルのものでは正直ないのですが、実際役に立ったものでもあるのでご参考までに)

下記スクリプトを「cnv.php」等の名前で作成(赤字の箇所は書き換えて下さい)、サイトのトップ(ルートディレクトリ)に保存し、ブラウザからアクセスしてください。
このスクリプト以下にあるファイルを全てチェックして、怪しい記述のある箇所(上でも書きましたが、予め自身で調べて書き直して下さい)を消すというものです。
このスクリプト自身がファイルを書き換えるので、ファイルへの書き込み権限は必ず付与して下さい。
また、実行前に必ずバックアップはとってください。もしこれでコンテンツ類が壊れても、私は一切責任持てませんので。。

<?php
$currdir = dirname(__FILE__);
chdata( $currdir );
function chdata( $dir ) {

echo ‘Directory : ‘.$dir.”\n”;

if ( !chdir( $dir ) ) {
echo “not a directory!.\n”;
return;
}

if ( $handle = opendir( ‘.’ ) ) {
while ( false !== ( $file = readdir( $handle ) ) ) {
$filepath = $dir.’/’.$file;
// if file
if ( is_file( $filepath ) ) {
if ( $file != “.” && $file != “..” && $file != “cnv.php” ) {  // ←自身は書き換えないので除外(スクリプトのファイル名を書いて下さい)
$data_in  = file_get_contents( $filepath );
$data_out = $data_in;
// 以下に消したいテキストを記述します
$data_out = str_replace(‘<?php eval(base64_decode(\’xxxxxx数字とアルファベットの羅列xxxxxxxx\’)); ?>’ , ” , $data_out);
$data_out = str_replace(‘document.write(\'<script src=http://xxx見たことも無いサイトのURL ><\/script>\’);’, ” , $data_out);
$data_out = str_replace(‘<script src=http://xxx見たことも無いサイトのURL ></script>’, ” , $data_out);
if ($data_in != $data_out) {
echo $filepath.” has changed!\n”;
file_put_contents($filepath , $data_out);
}
if ($file == “gifimg.php”) {
unlink($filepath);
echo $filepath.” has deleted!\n”;
}
}
}
// if directory
else {
if ( $file != “.” && $file != “..” ) {
chdata( $filepath );
}
}
}
closedir( $handle );
}
}
?>

あくまでも自己責任で行なって下さいね。駆除できなかった、ファイル壊れた、動かない、などあっても当方は一切責任を負えませんので。

もし有償でも構わないので私の方にてサイトの駆除依頼をされるのであれば、ご一報ください(無いのが一番ですが)。