web-dev-qa-db-ja.com

ハッキングされた後、管理ページから悪意のあるスクリプトを削除するにはどうすればよいですか?

Drupal 7を実行しているサイトがハッキングされ、すべての管理ページ(例:.

http://www.anysite.com/en/admin/dashboard

悪意のあるsrc属性を持つスクリプトタグがヘッドセクションに含まれています。

<head>
    ...
    <script src="..."></script>
</head>

Src属性のこれらの3つのドットは、たとえば上記の3つのドットの行と同じでした:)実際のコードには、悪意のあるWebへのリンクがありますgymweb.it

このスクリプトタグを削除するにはどうすればよいですか?管理ページのヘッドセクションはどのように構成されていますか?

2
Petr Felzmann

Sevenを管理テーマとして使用している場合(これはデフォルトの設定です)、スクリプトmay/core/themes/seven内のテンプレートファイルに追加されました

Drupal 7にアップグレードしているように見せかけ、sitesフォルダーを除くすべてのファイルとフォルダーを削除するのが簡単なアプローチだと思います。

Drupalを「アップグレード」した後も問題が解決しない場合は、sitesフォルダーのどこかにある可能性があります

/ sites/all/themes/yourtheme/templatesに移動し、すべてのテンプレートファイル。tpl.phpをチェックして、悪意のあるコードが追加されていないか確認します。

また、/ sites/all/themes /template.phpファイルをチェックして、そこに何らかの悪質なコードが追加されていないか確認してください。テーマ関数と通常Drupalここにコード。

Strange.phpファイル名に注意してください。

さらに、 Hacked! モジュールを使用して、モジュールが追加または変更されたかどうかを確認できます。

それでも解決しない場合は、おそらくスクリプトがデータベースにあります。テキストボックスで完全なHTMLまたはPHP=を許可したか、DBがハッキングされたため。

3
No Sssweat

コードが変更された疑いがある場合は、Webrootに感染する可能性のある悪意のあるコードを追跡する必要があります。

サーバーターミナルにアクセスしている場合は、以下の提案を試してください。そうでない場合は、以下のコマンドを実行するためにファイルをローカルマシンに同期してください。

攻撃者を取り除くための一般的な解決策は次のとおりです。

  1. いくつかの tools を使用して、悪意のあるPHPファイルをスキャンします(例 php-malware-Finderphp-malware-scannerphpscanner )。
  2. base64_decode/evalで構成される疑わしいファイルがないか、ウェブルートを探します。これは、難読化に最も一般的に使用されています。

    grep -R return.*base64_decode  .
    

    あなたがそれを見つけた場合、おそらくあなたはそれらの複数を持っています。もしそうなら、チェックしてください: PHP virus files スレッドのようなeval-base64_decodeを取り除く方法は、さらなる提案です。

  3. ソースコードに現れるマルウェアの特定のパターンを知っている場合は(そうすることです)、コードベースをスキャンしてこの名前を探してください。

    grep -R gymweb .
    

    そして、これらのURLが追加された場所に応じて、余分なコードを削除するか、(VCS履歴または感染前の最新のバックアップから)元のバージョンに復元します。

上記の方法で解決しない場合は、Drupal指向の次の提案を試してください。

  • バージョン管理下のコード(Gitなど)を使用する場合は、そこにあるとは思われないファイル(git status)を見つけて削除します(git clean -f .)。
  • Drupalコアをアップグレードして、変更されたファイル(drush up drupal)を置き換えます。
  • Drush(drush upc --no-core)を使用してcontribモジュールをアップグレードします。
  • また、この名前についてデータベース全体をスキャンします。

    drush sql-dump --ordered-dump | grep gymweb 
    
  • それでも解決しない場合は、感染前のバックアップのコードベースを現在のコードベースと比較します(diff -rによって、いくつかのdiff GUIツールを使用するか、Gitを使用します)。

また確認してください:

5
kenorb

最速の方法は、drupalを再ダウンロードし、drupalディレクトリに抽出して、すべてのファイルを上書きします。そして、すべてのキャッシュをクリア/ memcached/varnishを再起動し、スクリプトがまだ含まれているかどうかを確認します。つまり、おそらくすべてのcontribモジュールを上書きして、最後にカスタムモジュール/テーマを確認する必要があります。これは、おそらくPHPのエンコードされたビットに対するeval(base64_decode())呼び出しですdrupal includeのどこかにコードがあります。手動で見つけるのは難しいでしょう。

3
Beebee