Описание WPScan
WPScan — это сканер уязвимостей WordPress, работающий по принципу «чёрного ящика», т. е. без доступа к исходному коду. Он может быть использован для сканирования удалённых сайтов WordPress в поисках проблем безопасности.
Домашняя страница: http://wpscan.org/
Автор: The WPScan Team
Лицензия: Другая
Справка по WPScan
Некоторые значения можно изменить в конфигурационном файле, смотрите example.conf.json
Использование:
wpscan [опции]
Опции:
--url URL URL блога для сканирования
Разрешены протоколы: http, https
Если не один не указан, то протокол по умолчанию: http
Эта опция обязательна, если не указаны опции update или help
-h, --help Показать справку и выйти
--version Показать версию и выйти
--ignore-main-redirect Игнорировать главный редирект (если есть) и сканировать целевой url
-v, --verbose Вербальный режим
--[no-]banner Показывать или нет баннер
По умолчанию: true
-o, --output ФАЙЛ Вывод в ФАЙЛ
-f, --format ФОРМАТ Вывод результатов в указанном формате
Доступные варианты: cli-no-colour, cli-no-color, json, cli
--detection-mode РЕЖИМ По умолчанию: mixed
Доступны на выбор: mixed, passive, aggressive
--scope ДОМЕНЫ Разделённые запятой (суб-)домены для рассмотрения в рамках.
Подстановочный символ(ы) разрешены в trd валидных доменов, например: *.target.tld
Разделитель, используемый между величинами: ','
--user-agent, --ua ЗНАЧЕНИЕ
--headers HEADERS Дополнительные заголовки для добавления к запросам
Разделитель, используемый между заголовками: '; '
Пример: 'X-Forwarded-For: 127.0.0.1', 'X-Forwarded-For: 127.0.0.1; Another: aaa'
--vhost ЗНАЧЕНИЕ Виртуальный хост (Заголовок хоста) для использования в запросе
--random-user-agent, --rua Использовать произвольный user-agent для каждого сканирования
--user-agents-list ПУТЬ_ДО_ФАЙЛА Список агентов для использования с --random-user-agent
--http-auth login:password
-t, --max-threads ЗНАЧЕНИЕ Максимальное использование потоков
По умолчанию: 5
--throttle МиллиСекунды Миллисекунды для ожидания перед совершением другого веб-запроса. Если используется, максимальное число потоков будет установлено на 1.
--request-timeout СЕКУНДЫ Таймаут запроса в секундах
По умолчанию: 60
--connect-timeout СЕКУНДЫ Таймаут соединения в секундах
По умолчанию: 30
--disable-tls-checks Отключить верификацию SSL/TLS сертификата
--proxy protocol://IP:порт Поддерживаемые протоколы зависят от установленной cURL
--proxy-auth логин:пароль
--cookie-string КУКИ Строка куки для использования в запросах, формат: куки1=значение1[; куки2=значение2]
--cookie-jar ПУТЬ_ДО_ФАЙЛА Файл для чтения и записи куки
По умолчанию: /tmp/wpscan/cookie_jar.txt
--cache-ttl TIME_TO_LIVE Время жизни кэша в секундах
По умолчанию: 600
--clear-cache Очищать кэш перед сканированием
--cache-dir ПУТЬ По умолчанию: /tmp/wpscan/cache
--server СЕРВЕР Принудительная загрузка указанных модулей сервера
Доступные выборы: apache, iis, nginx
--force Не проверять, работает ли цель на WordPress
--[no-]update Обновлять или нет базу данных
Эта опция обязательна, если не указаны help или version
--wp-content-dir ПАПКА
--wp-plugins-dir ПАПКА
--interesting-findings-detection РЕЖИМ Использовать указанный режим для выявления интересных находок.
Доступные выборы: mixed, passive, aggressive
--wp-version-all Проверить все версии расположения
--wp-version-detection РЕЖИМ Использовать указанный режим для определения версии WordPress, вместо глобального режим (--detection-mode).
Доступные выбборы: mixed, passive, aggressive
--main-theme-detection РЕЖИМ Использовать указанный режим для определения главной темы, вместо глобального режима (--detection-mode).
Доступны на выбор: mixed, passive, aggressive
-e, --enumerate [OPTS] Процесс перечисления
Выбор доступен из:
vp Уязвимые плагины
ap Все плагины
p Плагины
vt Уязвимые темы
at Все темы
t Темы
tt Timthumbs
cb Резервные копии конфигурационных файлов
dbe Db экспорты
u Диапазон ID пользователей. Например: u1-5
Используемый разделитель диапазонов: '-'
Значение если аргумент не указан: 1-10
m Диапазон ID медиа. Например m1-15
Используемый разделитель диапазонов: '-'
Значение если аргумент не указан: 1-100
Разделитель, используемый между этими значениями: ','
По умолчанию: Все плагины, Резервные копии конфигурационных файлов
Значение, если аргумент не указан: vp,vt,tt,cb,dbe,u,m
Несовместимые выборы (может использоваться только один из каждоый группы):
- vp, ap, p
- vt, at, t
--exclude-content-based РЕГУЛЯРНОЕ ВЫРАЖЕНИЕ ИЛИ СТРОКА Исключить все ответы, содержащие регулярное выражение (не чувствительно к регистру) на стадии перечисления.
Проверяются и заголовки, и тело. Разделители регулярных выражений не требуются.
--plugins-list СПИСОК Список плагинов для перечисления
Примеры: 'a1', 'a1,a2,a3', '/tmp/a.txt'
--plugins-detection РЕЖИМ Использовать указанный режим для перечисления Плагинов вместо глобального режима (--detection-mode).
По умолчанию: passive
Доступные для выбора: mixed, passive, aggressive
--plugins-version-all Проверять все версии расположения плагинов в соответствии с выбранным режимом (--detection-mode, --plugins-detection и --plugins-version-detection)
--plugins-version-detection РЕЖИМ Использовать указанный режим для проверки версий плагинов вместо режимов --detection-mode или --plugins-detection.
По умолчанию: mixed
Доступны для выбора: mixed, passive, aggressive
--themes-list СПИСОК Список тем для перечисления
Примеры: 'a1', 'a1,a2,a3', '/tmp/a.txt'
--themes-detection РЕЖИМ Использовать указанный режим для перечисления Тем, вместо глобального режима (--detection-mode).
Варианты: mixed, passive, aggressive
--themes-version-all Проверить все варианты расположения тем в соответствии с выбранным режимом (--detection-mode, --themes-detection и --themes-version-detection)
--themes-version-detection РЕЖИМ Использовать указанный режим для проверки версий тем вместо режимов --detection-mode или --themes-detection.
Варианты: mixed, passive, aggressive
--timthumbs-list ПУТЬ_ДО_ФАЙЛА Список расположений timthumbs
По умолчанию: ~/.wpscan/db/timthumbs-v3.txt
--timthumbs-detection РЕЖИМ Использовать указанный режим для перечисления Timthumbs, вместо глобального режима (--detection-mode).
Доступные варианты: mixed, passive, aggressive
--config-backups-list ПУТЬ_ДО_ФАЙЛА Список резервных копий конфигурационных файлов
По умолчанию: ~/.wpscan/db/config_backups.txt
--config-backups-detection РЕЖИМ Использовать указанный режим для перечисления резервных копий конфигурационных файлов вместо глобального режима (--detection-mode).
Доступны для выбора: mixed, passive, aggressive
--db-exports-list ПУТЬ_ДО_ФАЙЛА Список для использования путей экспорта БД
По умолчанию: ~/.wpscan/db/db_exports.txt
--db-exports-detection РЕЖИМ Использовать указанный режим для перечисления экспорта БД вместо глобального режима (--detection-mode).
Доступны для выбора: mixed, passive, aggressive
--medias-detection РЕЖИМ Использовать указанный режим для перечисления медиа файлов вместо глобального режима (--detection-mode).
Доступны для выбора: mixed, passive, aggressive
--users-list СПИСОК Список пользователей для проверки во время стадии перечисления пользователей из сообщений об ошибках входа
Примеры: 'a1', 'a1,a2,a3', '/tmp/a.txt'
--users-detection РЕЖИМ Использовать указанный режим для перечисления Пользователей вместо глобального режима (--detection-mode).
Варианты выбора: mixed, passive, aggressive
-P, --passwords ПУТЬ_ДО_ФАЙЛА Список паролей для использования во время атаки на пароли.
Если опция --username/s не указана, то перечисление пользователей не будет запущено.
-U, --usernames СПИСОК Список имён пользователей для использования во время атаки на пароль.
Примеры: 'a1', 'a1,a2,a3', '/tmp/a.txt'
--multicall-max-passwords MAX_PWD Максимальное число паролей для отправки за запрос с XMLRPC multicall
По умолчанию: 500
--password-attack АТАКА Принудительное использование указанной атаки вместо автоматически определённой.
Доступны для выбора: wp-login, xmlrpc, xmlrpc-multicall
--stealthy Псевдоним для --random-user-agent --detection-mode passive --plugins-version-detection passive
Руководство по WPScan
Страница man отсутствует.
Примеры запуска WPScan
Справка по программе
ruby ./wpscan.rb --help
Сделать «ненавязчивую» проверку
ruby ./wpscan.rb --url www.example.com
Выполнить брутфорс пароля по перечисленным пользователям с использованием 50 потоков
ruby ./wpscan.rb --url www.example.com --wordlist darkc0de.lst --threads 50
Выполнить фрутфорс паролей только по имени 'admin'
ruby ./wpscan.rb --url www.example.com --wordlist darkc0de.lst --username admin
Перечислить установленные плагины
ruby ./wpscan.rb --url www.example.com --enumerate p
Перечислить установленный темы
ruby ./wpscan.rb --url www.example.com --enumerate t
Перечислить пользователей
ruby ./wpscan.rb --url www.example.com --enumerate u
Перечислить установленные timthumb
ruby ./wpscan.rb --url www.example.com --enumerate tt
Использовать HTTP прокси
ruby ./wpscan.rb --url www.example.com --proxy 127.0.0.1:8118
Использовать SOCKS5 прокси ... (нужна cURL >= v7.21.7)
ruby ./wpscan.rb --url www.example.com --proxy socks5://127.0.0.1:9000
Использовать заданную директорию контента
ruby ./wpscan.rb -u www.example.com --wp-content-dir директория-контента
Использовать заданную директорию плагинов
ruby ./wpscan.rb -u www.example.com --wp-plugins-dir wp-content/custom-plugins
Обновить БД
ruby ./wpscan.rb --update
Режим отладки
ruby ./wpscan.rb --url www.example.com --debug-output 2>debug.log
Смотрите README для дальнейшей информации.
Установка WPScan
WPScan предустановлена на следующие дистрибутивы Linux:
- BackBox Linux
- Kali Linux
- Pentoo
- SamuraiWTF
- BlackArch
Требования:
- Ruby >= 2.1.9 - Рекомендуется: 2.2.3
- Curl >= 7.21 - Рекомендуется: последний FYI, 7.29 имеет ошибку сегментации
- RubyGems - Рекомендуется: последний
- Git
Windows не поддерживается. Если программа установлена из Github обновите код с git pull. База данных обновляется так wpscan.rb --update.
Установка на Ubuntu:
sudo apt-get install libcurl4-openssl-dev libxml2 libxml2-dev libxslt1-dev ruby-dev build-essential libgmp-dev zlib1g-dev git
git clone https://github.com/wpscanteam/wpscan.git
cd wpscan
sudo gem install bundler && sudo bundle install --without test
./wpscan.rb --help
Установка на Debian:
sudo apt-get install gcc git ruby ruby-dev libcurl4-openssl-dev make zlib1g-dev
git clone https://github.com/wpscanteam/wpscan.git
cd wpscan
sudo gem install bundler
sudo bundle install --without test --path vendor/bundle
./wpscan.rb --help
Установка на Fedora:
sudo dnf install gcc ruby-devel libxml2 libxml2-devel libxslt libxslt-devel libcurl-devel patch rpm-build
git clone https://github.com/wpscanteam/wpscan.git
cd wpscan
sudo gem install bundler && sudo bundle install --without test
./wpscan.rb --help
Установка на Arch Linux:
pacman -Syu ruby
pacman -Syu libyaml
git clone https://github.com/wpscanteam/wpscan.git
cd wpscan
sudo gem install bundler && sudo bundle install --without test
gem install typhoeus
gem install nokogiri
./wpscan.rb --help
Установка на Mac OSX:
Нужны Apple Xcode, Command Line Tools и (чтобы появилась возможность установить FFI gem), Смотрите http://stackoverflow.com/questions/17775115/cant-setup-ruby-environment-installing-fii-gem-error
git clone https://github.com/wpscanteam/wpscan.git
cd wpscan
sudo gem install bundler && sudo bundle install --without test
./wpscan.rb --help
Установка с RVM:
# Установите все зависимости для вашей ОС (смотрите выше)
cd ~
curl -sSL https://rvm.io/mpapis.asc | gpg --import -
curl -sSL https://get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm
echo "source ~/.rvm/scripts/rvm" >> ~/.bashrc
rvm install 2.3.3
rvm use 2.3.3 --default
echo "gem: --no-ri --no-rdoc" > ~/.gemrc
gem install bundler
git clone https://github.com/wpscanteam/wpscan.git
cd wpscan
gem install bundler
bundle install --without test
Скриншоты WPScan
Инструкции по WPScan
- Поиск уязвимостей в сайтах на WordPress
- Анонимные сканирования с Nmap, sqlmap и WPScan через Tor
- Бесплатный онлайн сервис для сканирования WordPress с помощью WPScan: https://suip.biz/ru/?act=wpscan&color=on
- Безопасность сайтов на WordPress
- Как установить и запустить WPScan в Windows
Известные проблемы
Ошибка сегментации Typhoeus
Обновите cURL до версии => 7.21 (возможно, придётся устанавливать из исходников).
Прокси не работает
Обновите cURL до версии => 7.21.7 (возможно, придётся устанавливать из исходников).
Установка cURL из исходников:
Загрузите исходники отсюда http://curl.haxx.se/download.html
Распакуйте архив
Откройте директорию с распакованными файлами
./configure
make
sudo make install
sudo ldconfig
не может загрузить такой файл -- readline:
sudo aptitude install libreadline5-dev libncurses5-dev
Затем откройте директорию readline gem (вам самим нужно найти её)
cd ~/.rvm/src/ruby-1.9.2-p180/ext/readline
ruby extconf.rb
make
make install
Смотрите http://vvv.tobiassjosten.net/ruby-on-rails/fixing-readline-for-the-ruby-on-rails-console/ для дополнительных подробностей
нет такого файла для загрузки -- rubygems
update-alternatives --config ruby
И выберите версию ruby


