web-dev-qa-db-ja.com

マルウェアが突然私のウェブサイトにアップロードされました!

これはStack ExchangeのITセキュリティセクションに関する最初の質問です。質問に問題がある場合は、お詫び申し上げます。

基本

  • 突然Googleは私のウェブサイトがマルウェアを含んでいると言います!

  • ウェブサイトにアクセスすると、アンチウイルスプログラムがトロイの木馬がブロックされて削除されたことを通知します。このトロイの木馬は、アンチウイルスプログラムによって(Trojan:JS/Quidvetis.A)に分類されており、見ればトロイの木馬は現在無害で効果がないと言われています。

Googleが言ったように、はい、私のウェブサイトには、マルウェアである可能性のあるいくつかの新しい奇妙なファイルが含まれています!

46ZqQVmc.phpというファイルを見つけ、次のパスROOT/css/46ZqQVmc.phpで見つけましたファイルがどのようにそこに到着したのか、私にはまったくわかりません!

また、index.phpの中にこのコードを見つけました!

編集:gowenfawrによって、次のコードのために一部のブラウザーがサイトをブロックしていることがわかり、gowenfawrが言ったようにコードの画像に変更しました。

Code Before画像をフルスクリーンで表示するには、ここをクリックしてください

PHPファイルが処理されると、その正確なコードが次のようになります!

Code After画像をフルスクリーンで表示するには、ここをクリックしてください

繰り返しますが、index.phpファイルがどのように編集されたかはわかりません!

情報

  • ホスト:One.com-ホストに連絡しましたが、私のWebサイトにはマルウェアが含まれていないという返答がありました!
  • FTPクライアント:Filezilla-Filezillaがプレーンテキストとしてパスワードなどを偽装していることを知っています!
  • アクセス:すべてのパスワードとウェブサイト自体へのアクセス権を持っているのは私だけです!
  • 現在、ファイルのアップロードやコメントのセクションなど、ウェブサイト自体にはありません。

質問

基本的に私の質問は、マルウェアはどのように私のウェブサイトにアップロードされるのですか?私はこれが本当に簡単な質問であることを知っていますが、マルウェアが私のWebサイトにどのようにアップロードまたは作成されたかについて、誰かが何らかの考えを持っているかどうか尋ねていますまた、私のindex.phpファイルがどのように編集されたか!

もちろん、誰かが自分のウェブサイトにパスワードなどを取得して、入力してファイルを編集したり、ファイルをアップロードしたりできるようになっていると思います。

結論として、私の質問ですが、そのファイルがどのように私のウェブサイトにアップロードされたのか、またどのように私のindex.phpファイルを編集できます!

追加

いろいろなことについて必要な情報があれば、コメントで質問してください。情報を追加できます。

編集する

  • 私はWordpressを使用していません。すべて自分でカスタムコーディングしています。
  • 私はブログやその他のコンテンツなどにSQLを使用しています! (ただし、SQLをまったく使用しないNotesのファイルブラウザのように機能する別のWebサイトがありますが、そのWebサイトはまったく同じものに感染しています同じように)
  • MySQLiではまだPrepared Statementsを使用していません! (どういうわけか問題になるかもしれませんが、これから使います)
  • 私のプログラミング経験は7年で、私は独学です。私の主なプログラミング言語はC++ですJava&C、PHPでの私の経験は1つだけです-2年。
1
vallentin

ショートバージョン:

  1. しかし、それはそこにありました。最初のステップは、ダメージを抑えることです。これを理解している間、一時的な「サイトメンテナンス」ページを設定し、すぐにそれを提供するようにサイトを設定することをお勧めします。さもなければ、物事がそこに留まるので、あなたはより多くのブラックリストに載せられるでしょう。
  2. おめでとうございます。Security.StackExchangeにマルウェアを配置しました。 U R HAKR!さらに深刻なことに、あなたが投稿した量は、私のWebゲートウェイのアンチウイルス(EXP/JS.Expack.GQと呼ばれます)をトリガーするのに十分であるため、私やおそらく他の人もあなたの質問を読むことはできません。 (私は好奇心が強いので、私はこれを別のシステムを通して投稿しています)他の人にあなたの質問を見てもらいたい場合は、コードブロックをコードの画像(.gif/.pngなど)に置き換えることをお勧めします。
  3. 元の質問では、攻撃者はおそらくシステムのphpスクリプトを悪用してコマンドプロセッサをアップロードし、そのコマンドプロセッサを使用して、見つけた難読化されたコードを挿入しました。おそらくindex.phpだけでなく、他にもたくさんの場所があるでしょう。 Googleのブラックリストに登録されないようにするには、バックアップに戻すか、サイトを復旧する必要があります。

長いバージョン(または、水飲み場にいるときのインシデントの回復):

このタイプのコードは、いわゆる「水飲み場」攻撃と一致しています。攻撃者は、無害なシステムによってホストされているWebページに攻撃コードを配置します。 Webユーザーは無実に無害なシステムを参照し、攻撃者がサイトに配置した隠しiframeからマルウェアをダウンロードすることになります。

ホストを侵害する任意の方法を使用してウォータリングホール攻撃を開始できますが、(IMHO)最も一般的なのは、脆弱なWebサーバースクリプトです。 Wordpressは特に蹴飛ばされがちです;私が働いたサイトは Tim Thumb fiasco に少し気づきました。スクリプトをサイト自体に送信し、攻撃者はアップロードしたスクリプトを実行して、サイト全体に変更を加えます。

これらの攻撃には、ファイルとログのタイムラインフォレンジックを組み合わせて対応する必要があります。疑わしいと思われるファイル46ZqQVmc.phpがあります-そのファイルのタイムスタンプは何ですか?更新されたindex.phpのタイムスタンプとどのように比較しますか? Webルートの他のファイルのうち、変更時間はこれらの2つのファイルに類似しているファイルがいくつありますか?その相関関係を使用して、同じ方法で侵害された他の多くのファイルを見つけることができます。

これらのタイムスタンプを使用して、ログを確認します。 46ZqQVmc.phpファイルが表示されたときに、誰がWebサイトにアクセスしましたか?どのURIがヒットしましたか?これにより、ファイルをアップロードするために悪用されたスクリプトがわかる場合があります。私の経験が何らかの指標である場合は、アップロードされたPHPファイルへのヒットを見つけることができます。これは、index.phpおよびその他のハッキングされたファイルのファイル変更と時間的に相関します。

ファイルの時間とWebログを関連付けたら、攻撃者のIPアドレスもわかります。ログを調べて、ログが行ったすべてのことを探します。他のファイルやURIへの参照があるかもしれません。

これらすべての最終目標は、システムにアクセスするために悪用されたファイルを特定することです。私の場合、彼らはPHPが含まれている画像ファイルをアップロードし、WebブラウザーからそれをヒットしたときにPHPプログラムをHTTPリクエストとそれを実行します。サーバー上ですでに「thumb.php」と呼ばれるスクリプトを利用してこれを実行しました。削除または更新できるように、利用したスクリプトを見つける必要があります。セキュリティホールを取り除くため。

クリーンアップは、最低でも、彼らが侵入するために使用した穴を塞ぎ、彼らがすべてのファイル(index.phpなど)に挿入したコードを削除することで構成されます。すべて完了したら、メンテナンスページを削除し、 Sucuri を使用して自分自身をスキャンし、スキャンするようGoogleに通知します。

従来の見識では、クリーンなシステムなどはなく、安全であることを確認する唯一の方法は、根本原因を特定し、それを修正して新しいシステムを構築し、既知の適切なバックアップから復元することです。多くの人にとってそれは現実的に不可能です。バックアップはまったくありません。良いニュースは、私が説明した方法で実際に攻撃された場合、攻撃者はおそらく妥協を試みて拡大しようとはしなかったということです。 root権限に昇格したり、システムファイルを変更したり、パスワードハッシュを取得したりすることはなかったでしょう。 (allパスワードを変更する必要がありますとにかくしかし...)このような限定的なスコープ違反では、私が説明した限定的な対策で十分な場合があります。

クリーンアップしたら、追加の制限も考慮する必要があります-AIDE、PHPロックダウンのようなファイル整合性モニターは、不要で危険な機能を無効にするためのロックダウン、WebサーバーがWebルートへの書き込みをブロックするための制限付きファイル許可。それはすべて、実行しているWebアプリに依存します。強化ガイドを探してください。

幸運を。

4
gowenfawr

このトロイの木馬は、アンチウイルスプログラムによって(Trojan:JS/Quidvetis.A)に分類されており、見ればトロイの木馬は現在無害で効果がないと言われています。

えっと…そうでもない。これはブラックホールエクスプロイトキットに関連するファイルであり、決して無害ではありません。これに感染したサイトを閲覧していて、最新のプラグインを備えた最新のブラウザがない場合は、感染することになります。実際に感染するのは、エクスプロイトを操作しているユーザー、インストールトラフィックの送信先、パートナーの相手、出身国、使用しているブラウザー、さらには偶然です。クライアントマシンに完全にパッチが適用されていない場合は、AVが検出できなかったさまざまなトロイの木馬、ルートキットなどがすでにインストールされている可能性があります。 (AVはまったく信頼できません。)

ホストに連絡しましたが、ウェブサイトにマルウェアが含まれていないという返答がありました。

典型的な役に立たない反応;多くの場合、彼らは何を探しているのかわからない、および/または感染がステルスである可能性があります(たとえば、同じIPアドレスからアクセスした場合、非表示にしてページに再び表示されません)。

FTPクライアント:Filezilla-Filezillaがプレーンテキストとしてパスワードなどを偽装していることを知っています!

FTP資格情報の侵害は、現時点でサーバーハッキングの最も一般的な原因であるため、ここから始めます。

複数のAVを使用してサイトにアクセスするために使用されたマシンと他のマシンをスキャンします(AVは信頼できないため)。感染が見つかった場合は、それを軌道から核攻撃する機会を得ます(新しいオペレーティングシステムをインストールする-AVのウイルス除去のため)機能は大規模に信頼できません)。

次に、アカウントのパスワードを変更し、サーバー上のすべてのデータを消去してバックアップから復元します。将来的にはSFTPを使用します。 (FTPは完全に暗号化されていない状態でサーバーにパスワードを渡す古いプロトコルです。これは非常に悪い考えです。今世紀もそれを使用する理由はありません。)また、Filezillaを置き換えることを検討してください。最近それで。

この脆弱性はアプリケーションの脆弱性が原因で発生した可能性がありますが、この種の改ざんではFTPルートがはるかに一般的であるため、ここから始めます。 PHPスクリプト(たとえば、Apachenobodyなど)を実行するOSサービスユーザーが_index.php_ファイルとcssディレクトリ。これが当てはまる場合、アプリケーションの任意コード実行エクスプロイトでさえファイルに書き込むことができなかったため、FTPである必要があります。一方、ディレクトリを777dするか、サービスユーザーが管理ユーザーと同じ場合、その保証はありません。

一般的な背景: 侵害されたサーバーにどのように対処しますか?

2
bobince

あなたのサイトはデータベース接続を使用していますか? SQLクエリの変数として使用されるhttp post/getsを使用していますか?

SQLインジェクションがインジェクションの原因だったのかもしれません。 SQLiは、Webサーバーへのrootアクセスまで行くことができます。

PHPコードでSQLクエリを使用する場合、インジェクション攻撃のowaspトップ10を確認することができます。そこには、有用な無料の情報がたくさんあります!

0
Sebastian B.