Как удалить вредоносные скрипты со страниц администратора после взлома?


Сайт, на котором работает Drupal 7, был взломан, и каждая страница администрирования, например

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

Содержит тег скрипта в разделе head с вредоносным атрибутом src, например

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

Эти три точки в атрибуте src были только для примера такими же, как линия из трех точек выше:) В реальном коде есть ссылка на вредоносный веб gymweb.it.

Как я могу удалить этот тег скрипта? Как выглядит головной раздел страниц администратора сконструированный?

 2
Author: kenorb, 2016-05-30

3 answers

Если вы используете Семь в качестве темы администратора (которая по умолчанию является стандартной), то сценарий может быть добавлен в файл шаблона внутри /core/themes/seven

Я думаю, что проще всего было бы притвориться, что вы обновляете Drupal 7, и удалить все файлы и папки, за исключением папки sites.

После того, как вы "обновили" свой Drupal, если проблема все еще сохраняется, это означает, что может быть где-то в вашей папке sites.

Перейдите к /сайты/все/темы/ваша тема/шаблоны и проверьте все файлы шаблонов .tpl.php чтобы узнать, был ли к ним добавлен какой-либо злой код.

Кроме того, проверьте свои /сайты/все/темы/template.php файл чтобы увидеть, был ли добавлен какой-то злой код, вы должны увидеть здесь только функции темы и обычный код Drupal.

Следите за любыми strange.php имена файлов.

Кроме того, вы можете проверить, был ли добавлен или изменен какой-либо модуль, используя Взломанный! модуль.

Если по-прежнему нет разрешения, тогда, скорее всего, скрипт находится в вашей базе данных. Из-за того, что вы разрешили ПОЛНЫЙ HTML или PHP в своих текстовых полях, или ваша база данных была взломана.

 3
Author: No Sssweat, 2016-07-05 09:53:41

Если вы подозреваете, что ваш код был изменен, вам следует отслеживать любой вредоносный код, который может заразить ваш веб-корень.

Если у вас есть доступ к терминалу сервера, попробуйте выполнить следующие рекомендации, в противном случае синхронизируйте файлы на локальном компьютере, чтобы выполнить следующие команды.

Вот несколько общих решений, чтобы избавиться от злоумышленника:

  1. Используйте некоторые инструменты для проверки на наличие вредоносных PHP-файлов (например php-malware-finder, php-malware-scanner, phpscanner).
  2. Ищите в своем веб-корне любые подозрительные файлы, состоящие base64_decode/eval которые чаще всего используются для запутывания, например

    grep -R return.*base64_decode  .
    

    Если вы нашли один, возможно, у вас их несколько. Если это так, пожалуйста, проверьте: Как избавиться от eval-base64_decode, такого как вирусные файлы PHP поток для дальнейших предложений.

  3. Если вы знаете какой-то конкретный шаблон вредоносного ПО, появляющегося в вашем исходном коде (что вы и делаете), попробуйте просканировать свой код основа для этого имени, например

    grep -R gymweb .
    

    И в зависимости от того, где были добавлены эти URL-адреса, удалите дополнительный код или восстановите исходную версию (либо из истории VCS, либо из вашей последней резервной копии до заражения).

Если вышесказанное не поможет, попробуйте следующие предложения, которые больше ориентированы на Drupal:

  • При использовании кода под управлением версиями (например, Git) найдите файлы, которых там не должно быть (git status), и удалите их (git clean -f .).
  • Обновите свой Drupal ядро, чтобы заменить любые измененные файлы (drush up drupal).
  • Обновление модулей contrib с помощью drush (drush upc --no-core).
  • Также просканируйте всю вашу базу данных на наличие этого имени:

    drush sql-dump --ordered-dump | grep gymweb 
    
  • Если это все равно не поможет, сравните базу кода из резервной копии до заражения с текущей (либо с помощью diff -r, используя какой-либо инструмент с графическим интерфейсом diff, либо используйте Git).

Проверьте также:

 5
Author: kenorb, 2019-03-08 12:51:13

Самый быстрый способ - повторно загрузить drupal, извлечь его из каталога drupal и перезаписать все файлы. И очистите весь кэш/перезапустите memcached/varnish, затем проверьте, включен ли скрипт по-прежнему. Если это так, то вам, вероятно, нужно просмотреть перезапись всех ваших модулей contrib и, наконец, проверить ваши пользовательские модули/темы. Скорее всего, это eval(base64_decode()) вызов закодированного фрагмента PHP-кода где-то в вашем друпале. Его будет трудно найти вручную.

 3
Author: Beebee, 2016-05-31 09:06:08