К сожалению, нигде не нашел упоминания в постах на Хабре о замечательной утилите — 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, можно обойтись одной ссылкой. Здесь, скорее, просто русскоязычный обзор и опыт использования этого инструмента.
Данная утилита собирает данные о всех известных уязвимостях в WordPress (как в самом движке, так и во всех его плагинах) и на базе этого проверяет блог. Список возможностей:
- Определение версии WordPress;
- Перебор пользователей и их паролей (многопоточно);
- Перебор установленных модулей (список модулей берется с сайта wordpress, более 2220);
- Перебор установленных тем, включая timthumb.
В целом всё. Следует отметить, что к каждому найденному плагину/теме выводится список известных уязвимостей.
Установка
Самый просто способ — поставить, например, Kali Linux (или BackBox Linux, BackTrack Linux, Pentoo, SamuraiWTF), обновить, запустить. А так требования:
- Ruby => 1.9
- RubyGems
- Git
Windows не поддерживается.
git clone github.com/wpscanteam/wpscan.git
cd wpscan
sudo gem install bundler && bundle install --without test development
git clone github.com/wpscanteam/wpscan.git
cd wpscan
sudo gem install bundler && bundle install --without test development
pacman -Syu libyaml
git clone github.com/wpscanteam/wpscan.git
cd wpscan
sudo gem install bundler && bundle install --without test development
gem install typhoeus
gem install nokogiri
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
В целом по WP всё.
Пробегаемся блогу еще DirBuster, возможно, забыли удалить какие-нибудь тестовые, отладочные файлы (а может и не только). Он по словарям (в комплекте) перебирает все подряд в htdocs (это круче, в данном случае, чем nikto). С ним тоже есть немало «историй успеха» :)
Периодически обновляем wpscan (git pull) и проверяем свой scope :) Безопасных вам ресурсов!
Автор: BeLove