Анализ безопасности сайта на WordPress

После того, как один из сайтов моих знакомых, написанный на WordPress, был несколько раз взломан из-за того, что его совсем не обновляли, я решил что пора бы уже заняться изучением безопасностью сайтов на WordPress вплотную, тем более что мой собственный сайт сделан именно на нём.
После некоторых исследований я остановился на инструменте для анализа безопасности wpscan. Этот инструмент – разработка с открытым исходным кодом, позволяющий проводить проверку сайта на базе WordPress на имеющиеся иязвимости, включая известные уязвимости в темах и плагинах. Официальный сайт: http://wpscan.org/

Далее будет описано как установить wpscan на свою машину с Debian Jessie 8.0

Установка WpScan

1. Подготовим окружение – установим ruby, и ещё пару пакетов:

# apt-get install git ruby ruby-dev libcurl4-openssl-dev make zlib1g-dev

2. Клонируем репозиторий, например, к себе в домашнюю папку:

$ cd ~
$ git clone https://github.com/wpscanteam/wpscan.git

3. Установим ruby-пакеты (gem’ы) с помощью bundler’а, предварительно установив сам bundler:

$ cd ~/wpscan
$ su
# gem install bundler
# bundle install --without test --path vendor/bundle

4. Сделаем файл исполняемым

$ chmod +x ./wpscan.rb

Готово!

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

1. Первым делом обновим базу узявимостей

$ ./wpscan.rb --update

2. Запустим простое сканирование (сайт вставляйте какой вам надо)

$ ./wpscan.rb --url https://wordpress.org

3. Запустим базовое сканирование + поиск установленных на сайте уязвимых плагинов и тем, а также, попробуем получить список пользователей с ID от 1 до 10

$ ./wpscan.rb --url https://wordpress.org -e vp,vt,tt,u

4. Проверить пароли из предоставленного файла брутфорсом в 50 одновременных потоков (пользователи будут определены также как и с ключём -e u из прошлого примера):

$ ./wpscan.rb --url https://wordpress.org --wordlist ./my_passwords.txt --threads 50

5. Проверить пароли из предоставленного файла брутфорсом в 50 одновременных потоков на пользователе admin:

$ ./wpscan.rb --url https://wordpress.org --wordlist ./my_passwords.txt --threads 50 --username admin

So, what do you think ?