Гайд Сканирование уязвимостей WordPress

  • 14
  • 7
WordPress Security Scanner

Это очень мощный сканер WordPress. Главные его достоинства:
  • показывает полный список плагинов и среди них выделяет уязвимые;
  • может проводить сканирование на наличие уязвимых тем;
  • актуальная база;
  • анализирует файл robots.txt;
  • показывает информацию о версии WordPress, о текущей теме, об ответах сервера и пр.
Прежде всего, обновим базы. Это делается так (наберите в консоли):

Код:
wpscan --update

Опишу ключи (они все интересные), а затем перейдём к конкретным примерам.


Ключи WordPress Security Scanner

--update : обновляет базы.
--url или -u <целевой url> : URL адрес/домен сайта на WordPress для сканирования.
--force или -f : принуждает WPScan не проверять, работает ли удалённый сайт на WordPress (проще говоря, даже если целевой сайт не на WordPress, сканирование всё равно продолжается).
--enumerate или -e [опция(опции)] : Перечень (после этого ключа можно использовать следующие опции).

опции :

u : имена пользователей id от 1 до 10
u[10-20] : имена пользователей id от 10 до 20 (вы должны вписать в [] целые цифры)
p : плагины
vp : сканирование только на плагины, про которые известно, что они уязвимые
ap : все плагины (может занять много времени)
tt : timthumbs
t : темы
vt : сканирование только на темы, про которые известно, что они уязвимые
at : все темы (может занять много времени).

Можно использовать по несколько ключей, например «-e p,vt» осуществит сканирование плагинов и уязвимых тем. Если ключи не заданы, то по умолчанию используется следующий набор "vt,tt,u,vp".

Это неполный список ключей, там ещё много интересных, но редко применяемых ключей. Своё знакомство вы можете продолжить набрав команду:

Код:
wpscan -h

Пример запуска сканирования:

Код:
wpscan -u brokencore.club -e p,vt


Т.е. сначала набираем слово wpscan, затем через пробел ключ -u и через пробел адрес веб-сайта. Затем через пробел ключ -e и вписываем через запятую нужные опции (уже без тире).

Я в качестве примера вызова сканирования привёл свой сайт, но покажу результаты сканирования для других сайтов (там намного интереснее).

Например здесь, не только найдена старая версия WordPress, но и целый зоопарк старых плагинов, среди которых есть и уязвимые:

1600772359109.png


На другом сайте и WordPress и все плагины оказались свежими. Но интересные вещи были найдены и там:
  • каталог /proxy/admin.php, в котором оказался Glype;
  • и во всех каталогах с плагинами папки оказались открыты для листинга, т. е. например, wp-content/plugins/wordpress-backup-to-dropbox/. Конечно, в самих каталогах я ничего интересного не нашёл, но сам факт этой ошибки говорит о том, что сервер настроен не совсем правильно и можно продолжить копать в сторону других ошибок в конфигурации сервера. Это обусловлено тем, что тот сайт расположен на VPS (как правило, там самому нужно всё устанавливать и настраивать).

Plecost

Вторая программа также сканирует WordPress на наличие уязвимых плагинов. Главная её проблема в том, что её базы устарели (в феврале будет два года, как базы не обновлялись). Хотя между предпоследним и последним обновлениями тоже прошло больше года, поэтому даже не знаю, считать ли программу заброшенной. Как следствие, у этой программы появились проблемы с определением версий и т. д. Тем не менее, она работает и можно проверить сайт ещё и по ней.
Внимание: произошло обновление, подробности в статье «Новая версия Plecost 1.0.1 — программы для поиска уязвимостей WordPress».
Первый запуск этой программы меня озадачил — требовалось обязательное указание ключа -i, после которого обязательно должен быть указан файл с плагинами. Никакой информации о том, где этот файл находится нет. Поэтому я нашёл его в файловой системе Kali Linux по адресу //usr/share/plecost/wp_plugin_list.txt (позже я его нашёл ещё на официальном сайте). В общем каждый запуск этой программы должен начинаться строчкой plecost -i //usr/share/plecost/wp_plugin_list.txt, после которой через пробел пишется адрес сайта. Например:

Код:
plecost -i //usr/share/plecost/wp_plugin_list.txt brokencore.club


Вывод для одного из просканированных сайтов:

1600772433999.png


После того, как найдены уязвимые плагины, можно перейти к Metasploit Framework и searchsploit, либо на The Exploit Database - сайт по поиску эксплойтов. Ещё сайты с самыми свежими эксплойтами: WPScan Vulnerability Database (свежая база эксплойтов для WordPress) и Packet Storm (самые разные свежие эксплойты).


Выводы (рекомендации по защите WordPress)
  1. Обязательно обновляйте и WordPress и каждый плагин (благо это очень просто делается из веб-интерфейс).
  2. Настоящим прозрением для меня стал тот факт, что плагины, которые деактивированы в админке WordPress, прекрасно видны для сканеров (ведь сканеры напрямую обращаются к файлам-маркерам) и, весьма вероятно, уязвимы для экспуатации. Т.е. если вы не используете какие-либо плагины, то не просто деактивируйте их, а удалите.
  3. Идентичная ситуация с темами для WordPress: в зависимости от функционала и подверженности к уязвимостям, некоторые темы позволяют скачивать с сервера и закачивать на сервер произвольные файлы. Это не просто теория. В одном из ближайших уроков я продемонстрирую примеры уязвимостей в темах WordPress. Причём, эти уязвимости, как правило, на уровне "детских" взломов. Поэтому: а) всегда обновляйте темы, когда выходят обновления; б) удаляйте неизпользуемые темы.
  4. На одном из сканируемых сайтов сканирование продолжалось очень долго (более 30 минут, хотя на других сканер управлялся за несколько минут). Я связываю это с какими-то настройками по максимальной частоте обращения к сайту (или серверу). Это хорошая идея, если она не мешает работе сайтов и не доставляет неудобства пользователям.
  5. Сканируйте свои сайты! Kali Linux создаётся не для хакеров! Точнее, не только и не столько для них. Все программы, которые присутствуют в Kali Linux, можно установить на любой Linux. Более того, некоторые из них являются кроссплатформенными. Если авторы того или иного плагина или темы забросили своё детище, а в нём были найдены уязвимости, то для вас нет другого способа узнать, что на вашем сервере размещён уязвимый скрипт. Т.е. вы можете столкнуться уже с результатом - взломом сайта - и уже тогда понять, что где-то есть уязвимый скрипт, но, думаю, вас это не очень устраивает. И ещё рекомендация, если вы пользуетесь плагином (или темой) в ранних версиях которых присутствовали уязвимости, то мой совет поискать альтернативу от других авторов. По моим наблюдениям, одни и те же плагины, в разных своих версиях подвержены новым уязвимостям, или одна версия подвержена мульти уязвимостям. Т.е., говоря простым языком, если у автора плагина руки растут не из того места (ну или он просто не задумывается о безопасности своих программ), то вероятность "пересадки" рук в нужное место, обычно, невелика.
 
Сверху Снизу