- PVSM.RU - https://www.pvsm.ru -

Пентест WordPress своими руками

К сожалению, нигде не нашел упоминания в постах на Хабре о замечательной утилите — WPScan, которая просто безумно помогает с пентестом блогов на WordPress. Этот пост о ней и еще одной утилите, которые помогут даже ничего не знающему в безопасности IT'шнику провести пентест блога на WordPress.

# ./wpscan.rb
_______________________________________________________________
        __          _______   _____
                 / /  __  / ____|
            /  / /| |__) | (___   ___  __ _ _ __
           /  / / |  ___/ ___  / __|/ _` | '_ 
             /  /  | |     ____) | (__| (_| | | | |
            /  /   |_|    |_____/ ___|__,_|_| |_|

        WordPress Security Scanner by the WPScan Team
                    Version v2.1r1c1a6d2
     Sponsored by the RandomStorm Open Source Initiative
 @_WPScan_, @ethicalhack3r, @erwan_lr, @gbrindisi, @_FireFart_
_______________________________________________________________

Обзор

Вообще, все довольно подробно изложено на официальном сайте — wpscan.org [1], можно обойтись одной ссылкой. Здесь, скорее, просто русскоязычный обзор и опыт использования этого инструмента.

Данная утилита собирает данные о всех известных уязвимостях в WordPress (как в самом движке, так и во всех его плагинах) и на базе этого проверяет блог. Список возможностей:

  • Определение версии WordPress;
  • Перебор пользователей и их паролей (многопоточно);
  • Перебор установленных модулей (список модулей берется с сайта wordpress, более 2220);
  • Перебор установленных тем, включая timthumb [2].

В целом всё. Следует отметить, что к каждому найденному плагину/теме выводится список известных уязвимостей.

Установка

Самый просто способ — поставить, например, Kali Linux (или BackBox Linux, BackTrack Linux, Pentoo, SamuraiWTF), обновить, запустить. А так требования:

  • Ruby => 1.9
  • RubyGems
  • Git

Windows не поддерживается.

Debian/Ubuntu

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

git clone github.com/wpscanteam/wpscan.git [3]

cd wpscan

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

Fedora

sudo yum install gcc ruby-devel libxml2 libxml2-devel libxslt libxslt-devel libcurl-devel

git clone github.com/wpscanteam/wpscan.git [3]

cd wpscan

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

Archlinux

pacman -Syu ruby

pacman -Syu libyaml

git clone github.com/wpscanteam/wpscan.git [3]

cd wpscan

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

gem install typhoeus

gem install nokogiri

Mac OSX

git clone github.com/wpscanteam/wpscan.git [3]

cd wpscan

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

Использование

Запуск без параметров расскажет сам за себя:

ruby ./wpscan.rb --help

-Do 'non-intrusive' checks ...
ruby ./wpscan.rb --url www.example.com

-Do wordlist password brute force on enumerated users using 50 threads ...
ruby ./wpscan.rb --url www.example.com --wordlist darkc0de.lst --threads 50

-Do wordlist password brute force on the 'admin' username only ...
ruby ./wpscan.rb --url www.example.com --wordlist darkc0de.lst --username admin

-Enumerate installed plugins ...
ruby ./wpscan.rb --url www.example.com --enumerate p

-Enumerate installed themes ...
ruby ./wpscan.rb --url www.example.com --enumerate t

-Enumerate users ...
ruby ./wpscan.rb --url www.example.com --enumerate u

-Enumerate installed timthumbs ...
ruby ./wpscan.rb --url www.example.com --enumerate tt

-Use a HTTP proxy ...
ruby ./wpscan.rb --url www.example.com --proxy 127.0.0.1:8118

-Use a SOCKS5 proxy ... (cURL >= v7.21.7 needed)
ruby ./wpscan.rb --url www.example.com --proxy socks5://127.0.0.1:9000

-Use custom content directory ...
ruby ./wpscan.rb -u www.example.com --wp-content-dir custom-content

-Use custom plugins directory ...
ruby ./wpscan.rb -u www.example.com --wp-plugins-dir wp-content/custom-plugins

-Update ...
ruby ./wpscan.rb --update

-Debug output ...
ruby ./wpscan.rb --url www.example.com --debug-output 2>debug.log

Обычно, я сначала запускаю просто с параметром -u, потом перебираю плагины/timthumb файлы, потом пользователей и их пароли (запущенных в screen на каждого юзера). Словари для перебора:

Для защиты от перебора ставим различные плагины, которые легко находятся в маркете.

Также проверяем, доступна ли регистрация (возможно, забыли отключить). Имеется ввиду, что на ресурсе не должна быть предусмотрена регистрация (PR блог) — localhost/wp-login.php?action=register [7]

В целом по WP всё.

Пробегаемся блогу еще DirBuster [8], возможно, забыли удалить какие-нибудь тестовые, отладочные файлы (а может и не только). Он по словарям (в комплекте) перебирает все подряд в htdocs (это круче, в данном случае, чем nikto). С ним тоже есть немало «историй успеха» :)
Пентест WordPress своими руками

Периодически обновляем wpscan (git pull) и проверяем свой scope :) Безопасных вам ресурсов!

Автор: BeLove

Источник [9]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/45421

Ссылки в тексте:

[1] wpscan.org: http://wpscan.org

[2] timthumb: http://www.exploit-db.com/wordpress-timthumb-exploitation/

[3] github.com/wpscanteam/wpscan.git: https://github.com/wpscanteam/wpscan.git

[4] ~20 тысяч паролей: https://raw.github.com/danielmiessler/SecLists/master/Passwords/rockyou-75.txt

[5] success story: http://habrahabr.ru/company/dsec/blog/194282/

[6] 2,151,220 паролей; 19,2 мб: http://dazzlepod.com/site_media/txt/passwords.txt

[7] localhost/wp-login.php?action=register: http://localhost/wp-login.php?action=register

[8] DirBuster: https://www.owasp.org/index.php/Category:OWASP_DirBuster_Project

[9] Источник: http://habrahabr.ru/post/196858/