Site icon 8HOST.COM

Использование WPScan для обнаружения уязвимых плагинов и тем WordPress

Вступление

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

Загрузка и установка WPScan

Прежде чем начать установку, обратите внимание: WPScan не работает на системах Windows, потому для его использования понадобятся Linux или OS X. При наличии только системы Windows загрузите Virtualbox и установите любой дистрибутив Linux в качестве виртуальной машины.

WPScan размещен в репозитории Github. Для начала установите пакеты git:

sudo apt-get install git

Установив git, приступайте к установке зависимостей WPScan:

sudo apt-get install libcurl4-gnutls-dev libopenssl-ruby libxml2 libxml2-dev libxslt1-dev ruby-dev ruby1.9.3

Теперь нужно клонировать пакеты WPScan из Github.

git clone https://github.com/wpscanteam/wpscan.git

После этого можно перейти в только что созданный каталог wpscan и установить необходимые ruby gem-ы с помощью менеджера управления gem-ами bundler.

cd wpscan
sudo gem install bundler && bundle install --without test development

Теперь WPScan установлен. Далее нужно ознакомиться с использованием данного инструмента для поиска потенциально уязвимых файлов WordPress. Наиболее важным аспектом WPScan является его способность перечислять не только плагины и темы, но и уязвимых  пользователей и файлов timthumb. Кроме того, WPScan может выполнять атаки методом “грубой силы” (brute force attack) на WordPress, но это выходит за рамки данной статьи.

Обнаружение уязвимых плагинов

Чтобы WPScan перечислил плагины, нужно запустить WPScan с аргументом –enumerate p:

ruby wpscan.rb --url http(s)://www.yoursiteurl.com --enumerate p

Для обнаружения уязвимых плагинов используется аргумент –enumerate vp:

ruby wpscan.rb --url http(s)://www.yoursiteurl.com --enumerate vp

Пример вывода:

| Name: akismet
| Location: http://********.com/wp-content/plugins/akismet/
| Name: audio-player
| Location: http://********.com/wp-content/plugins/audio-player/
|
| * Title: Audio Player - player.swf playerID Parameter XSS
| * Reference: http://seclists.org/bugtraq/2013/Feb/35
| * Reference: http://secunia.com/advisories/52083
| * Reference: http://osvdb.org/89963
| * Fixed in: 2.0.4.6
| Name: bbpress - v2.3.2
| Location: http://********.com/wp-content/plugins/bbpress/
| Readme: http://********.com/wp-content/plugins/bbpress/readme.txt
|
| * Title: BBPress - Multiple Script Malformed Input Path Disclosure
| * Reference: http://xforce.iss.net/xforce/xfdb/78244
| * Reference: http://packetstormsecurity.com/files/116123/
| * Reference: http://osvdb.org/86399
| * Reference: http://www.exploit-db.com/exploits/22396/
|
| * Title: BBPress - forum.php page Parameter SQL Injection
| * Reference: http://xforce.iss.net/xforce/xfdb/78244
| * Reference: http://packetstormsecurity.com/files/116123/
| * Reference: http://osvdb.org/86400
| * Reference: http://www.exploit-db.com/exploits/22396/
| Name: contact
| Location: http://********.com/wp-content/plugins/contact/

Этот результат показывает, что плагин audio-player уязвим к XSS-атаке из-за параметра playerID. Также можно видеть, что установка bbpress уязвима к раскрытию пути и SQL-инъекции.

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

Обнаружение уязвимых тем

Для перечисления тем используется аргумент –enumerate t.

ruby wpscan.rb --url http(s)://www.yoursiteurl.com --enumerate t

Для обнаружения уязвимых тем используйте аргумент –enumerate vt:

ruby wpscan.rb --url http(s)://www.yoursiteurl.com --enumerate vt

Вывод выглядит примерно так:

| Name: path
| Location: http://********.com/wp-content/themes/path/
| Style URL: http://********.com/wp-content/themes/path/style.css
| Description:
| Name: pub
| Location: http://********.com/wp-content/themes/pub/
| Style URL: http://********.com/wp-content/themes/pub/style.css
| Description:
| Name: rockstar
| Location: http://********.com/wp-content/themes/rockstar/
| Style URL: http://********.com/wp-content/themes/rockstar/style.css
| Description:
|
| * Title: WooThemes WooFramework Remote Unauthenticated Shortcode Execution
| * Reference: https://gist.github.com/2523147
| Name: twentyten
| Location: http://********.com/wp-content/themes/twentyten/
| Style URL: http://********.com/wp-content/themes/twentyten/style.css
| Description:

Итак, результат сообщает, что тема rockstar уязвима к удаленному неавторизованному выполнению шорткода; это означает, что любой желающий может выполнить шорткод на сайте без необходимости авторизации.

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

ruby wpscan.rb --url http(s)://www.yoursiteurl.com --enumerate u

Последняя функция WPScan, охваченная данным руководством, – это способность перечислять файлы timthumb. В последнее время timthumb стал очень распространенным объектом атак; причиной этого являются многочисленные уязвимости, обнаруженные и опубликованные в интернет-форумах, списках сообщений и других консультативных материалах. WPScan может найти уязвимые файлы timthumb с помощью следующей команды.

ruby wpscan.rb --url http(s)://www.yoursiteurl.com --enumerate tt

Чтобы обновить WPScan, используйте:

ruby wpscan.rb --update