Сервер потенциально скомпрометирован — c99madshell

Сервер потенциально скомпрометирован — c99madshell

Итак, вот оно что: на старом сайте, который мы размещали для клиента, была версия FCKEditor, которая позволяла кому-то загрузить на наш веб-хостинг ужасный эксплойт c99madshell.

Я не большой фанат безопасности -- честно говоря, я просто разработчик, который в настоящее время отвечает за обязанности S/A из-за потери персонала. Соответственно, я был бы рад любой помощи, которую вы, server-faulters, могли бы оказать в оценке ущерба от эксплойта.

Чтобы дать вам немного информации:

Файл был загружен в каталог в корневом каталоге веб-сайта, "/_img/fck_uploads/File/". Пользователь и группа Apache ограничены таким образом, что они не могут войти в систему и не имеют разрешений за пределами каталога, из которого мы обслуживаем сайты.

Все файлы имели права доступа 770 (пользователь rwx, группа rwx, другие нет) — я хотел это исправить, но мне сказали подождать, так как это не было «высоким приоритетом» (надеюсь, это изменит ситуацию). Так что, похоже, хакеры могли легко выполнить скрипт.

Теперь я не смог найти сам c99madshell.php -- только кучу других HTML-файлов, содержащих русский текст, и несколько .xl и .html-файлов со встроенным PHP, которые были интерпретациями хака madshell. Однако после небольшого исследования выяснилось, что хак, похоже, уничтожает себя после выполнения -- здорово.

В любом случае, моя первоначальная оценка будет такой:

  • Нет необходимости перестраивать весь хост, так как, учитывая изоляцию пользователя/группы Apache, они не должны были иметь возможности получить пароли системного уровня.

  • Необходимо устранить эту уязвимость, ограничив загрузки, чтобы они не имели разрешения на выполнение, обновив версию FCKEditor для исправления исходной цели эксплойта и добавив конфигурацию на уровне сервера, которая запрещает выполнение PHP-скрипта в каталоге загрузок.

  • Мне следует изменить пароли БД для приложения — учитывая, что файл конфигурации для подключения к базе данных находится в корневом каталоге веб-сайта, хакер, скорее всего, мог украсть его, а вместе с ним и пароль к БД.

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

Я действительно ценю вашу помощь, ребята. Также не стесняйтесь спрашивать больше информации (я был бы рад запустить команды / поработать с вами, ребята, чтобы оценить ущерб). Чертовы хакеры :(.

решение1

Очевидно, как уже говорили другие, официальным «безопасным» ответом было бы восстановление машины.

Реальность ситуации может помешать этому. Вы можете запустить несколько вещей, чтобы проверить компромиссы:

  • Chkrootkit- тесты на общие признаки взлома сервера
  • Если система rpm, 'rpm -Va|grep 5' проверит все установленные двоичные файлы rpm и выдаст "5", если сумма MD5 изменилась. Необходимо пересобрать, если вы обнаружили какие-либо несоответствия, не объясненные в настроенном двоичном файле.
  • Проверьте /tmp на наличие подозрительных объектов.
  • Проверьте 'ps fax' на наличие аномальных процессов. Если 'ps' скомпрометирован или с помощью других методов, у вас все еще могут быть запущены скрытые процессы.
  • Если в ходе поиска вы обнаружили КАКИЕ-ЛИБО файлы, владельцем которых является не Apache, ваши системные учетные записи определенно были скомпрометированы, и вам необходимо выполнить пересборку.

Исправления, которые необходимо внести в конфигурацию вашей системы:

  • Если возможно, отключите загрузку через FCKeditor
  • Убедитесь, что ваши временные каталоги имеют статус NOEXEC, чтобы предотвратить запуск программ из них.
  • Все PHP-скрипты должны быть обновлены.
  • Если вы хотите получить что-то поинтереснее, установите mod_security, чтобы следить за эксплойтами во время выполнения PHP-скриптов.

Я упускаю кучу всего, но это были бы первые шаги, которые я бы предпринял. В зависимости от того, что вы запускаете на сервере и насколько важна его безопасность (вы обрабатываете транзакции CC?), может потребоваться пересборка, но если это сервер с «низким уровнем безопасности», вам может подойти проверка вышеизложенного.

решение2

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

Если вы подверглись взлому, у вас не останется другого выбора, кроме как перестроить систему с «голого железа».

решение3

Короче говоря - я бы перестроил сервер.

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

Какой дистрибутив вы используете? Если он основан на rpm, вы можете проверить подписи файлов. Загрузите установочный CD и запустите rpm -V on, чтобы проверить пакеты.

решение4

Я понимаю, что это не то, что вам хотелось бы услышать, но я бы настоятельно рекомендовал сделать резервную копию данных, переустановить сервер и повторно импортировать все данные.

Также обязательно проверьте другие сайты, чтобы убедиться, что этот не единственный, затронутый взломом. Если все скрипты вашего сервера запущены как один пользователь Apache ( nodoby/ www_data/what-ever-your-distro-uses), все, что может писать на один сайт, почти наверняка может писать и на остальные.

Помимо смены всех паролей, убедитесь, что все ключи SSH на сервере аннулированы на всех других серверах (т. е. отзовите открытые ключи, где бы они ни хранились, а не просто удалите закрытый ключ), и что все другие системы, для которых вы могли ввести пароль (или сохранить пароль в файле) на этом сервере или через него, изменили пароли.

Связанный контент