
wpscan v4.1.0
Сканер безопасности WordPress, который выявляет уязвимости, перечисляет плагины/темы/пользователей и проверяет пароли на слабость. Интегрируется с WPScan API для получения данных об уязвимостях в реальном времени.
WPScan
Сканер безопасности WordPress
База данных уязвимостей WordPress от WPScan - Плагин безопасности WordPress
УСТАНОВКА
Предварительные требования
- (Необязательно, но настоятельно рекомендуется: rbenv)
- Ruby >= 3.3 — Рекомендуется: последняя стабильная версия
- Curl >= 7.72 — Рекомендуется: последняя стабильная версия
- Версия 7.29 вызывает segfault
- Версии < 7.72 в некоторых случаях могут приводить к ошибке
Stream error in the HTTP/2 framing layer
- RubyGems — Рекомендуется: последняя стабильная версия
- Nokogiri может потребовать установки пакетов через ваш пакетный менеджер в зависимости от ОС, см. https://nokogiri.org/tutorials/installing_nokogiri.html
В дистрибутиве для пентеста
При использовании дистрибутива для пентеста (например, Kali Linux) рекомендуется устанавливать/обновлять wpscan через пакетный менеджер, если он доступен.
В macOSX через Homebrew
brew install wpscanteam/tap/wpscan
Из RubyGems
WPScan зависит от гемов с нативными расширениями (например, yajl-ruby, nokogiri, ffi), поэтому перед gem install wpscan должны быть установлены рабочий C-тулчейн и заголовочные файлы для разработки на Ruby. Без них установка завершится ошибками вида Failed to build gem native extension или make: x86_64-linux-gnu-gcc: No such file or directory (см. #1844).
- Debian / Ubuntu:
sudo apt install build-essential ruby-dev - Fedora / RHEL / CentOS:
sudo dnf install @development-tools ruby-devel - Arch Linux:
sudo pacman -S base-devel ruby - Alpine:
sudo apk add build-base ruby-dev - macOS: установите Xcode Command Line Tools (
xcode-select --install).
Затем установите гем:
gem install wpscan
В MacOSX, если возникает Gem::FilePermissionError из-за System Integrity Protection (SIP) от Apple, либо установите RVM и переустановите wpscan, либо выполните sudo gem install -n /usr/local/bin wpscan (см. #1286)
Обновление
Вы можете обновить локальную базу данных с помощью wpscan --update
Обновление самого WPScan выполняется либо через gem update wpscan, либо через пакетный менеджер (это особенно важно для таких дистрибутивов, как Kali Linux: apt-get update && apt-get upgrade), в зависимости от того, как WPScan был (пред)установлен
Docker
Скачайте образ с помощью docker pull wpscanteam/wpscan
Перебор имён пользователей
docker run -it --rm -v wpscan-db:/wpscan/.cache/wpscan/db wpscanteam/wpscan --url https://target.tld/ --enumerate u
Перебор диапазона имён пользователей
docker run -it --rm -v wpscan-db:/wpscan/.cache/wpscan/db wpscanteam/wpscan --url https://target.tld/ --enumerate u1-100
** замените u1-100 на диапазон по вашему выбору.
Сохранение локальной базы данных
Образ содержит копию локальной базы данных, встроенную на этапе сборки. Поскольку в примерах команд выше используется --rm, любые обновления базы данных, выполненные во время запуска, отбрасываются при выходе из контейнера, поэтому следующий запуск снова начнётся с (возможно устаревшей) встроенной копии.
Монтирование именованного тома в /wpscan/.cache/wpscan/db (каталог кэша пользователя wpscan внутри контейнера) сохраняет базу данных между запусками, поэтому wpscan --update повторно загружает только те файлы, контрольные суммы которых действительно изменились, а предупреждение об устаревании данных через 5 дней ведёт себя так же, как и при локальной установке:
docker run -it --rm -v wpscan-db:/wpscan/.cache/wpscan/db wpscanteam/wpscan --update
Именованный том создаётся автоматически при первом использовании, если он ещё не существует.
Использование
Полная документация пользователя доступна здесь: https://github.com/wpscanteam/wpscan/wiki/WPScan-User-Documentation
wpscan --url blog.tld Эта команда выполнит сканирование блога с параметрами по умолчанию, обеспечивающими хороший баланс между скоростью и точностью. Она выполняет определение версии, темы и поиск интересных находок. Для перебора плагинов, тем, пользователей, резервных папок и т. д. используйте опцию -e (например, -e ap для всех плагинов, -e vp для уязвимых плагинов, -e bf для резервных папок).
Если требуется более скрытный подход, можно использовать wpscan --stealthy --url blog.tld.
Поэтому при использовании опции --enumerate не забудьте соответствующим образом задать --plugins-detection, поскольку по умолчанию она имеет значение 'passive'.
За дополнительными параметрами откройте терминал и введите wpscan --help (если вы собрали wpscan из исходников, вводите команду вне git-репозитория)
Расположение базы данных
Расположение базы данных соответствует спецификации XDG Base Directory:
- Новые установки:
~/.cache/wpscan/db(или$XDG_CACHE_HOME/wpscan/db, если задано) - Существующие установки:
~/.wpscan/db(устаревший путь, сохранён для обратной совместимости)
Файлы времени выполнения, такие как HTTP-кэш по умолчанию и cookie jar, сохраняются в $TMPDIR/wpscan, если задан $TMPDIR. В противном случае используется тот же пользовательский каталог кэша XDG, например ~/.cache/wpscan/cache и ~/.cache/wpscan/cookie_jar.txt. Эти значения по умолчанию можно переопределить с помощью --cache-dir и --cookie-jar.
Чтобы перенести существующую установку на путь XDG:
mv ~/.wpscan ~/.cache/wpscan
Необязательно: API базы данных уязвимостей WordPress
CLI-инструмент WPScan использует API базы данных уязвимостей WordPress для получения данных об уязвимостях WordPress в реальном времени. Чтобы WPScan мог получать данные об уязвимостях, необходимо указать API-токен через опцию --api-token или через файл конфигурации, как описано ниже. API-токен можно получить, зарегистрировав аккаунт на WPScan.com.
Бесплатно предоставляется до 25 API-запросов в день — этого должно быть достаточно для сканирования большинства сайтов на WordPress как минимум раз в день. Когда дневной лимит в 25 API-запросов исчерпан, WPScan продолжит работать в обычном режиме, но без данных об уязвимостях.
Сколько API-запросов вам нужно?
- Наш сканер WordPress выполняет один API-запрос для версии WordPress, по одному запросу на каждый установленный плагин и по одному запросу на каждую установленную тему.
- В среднем на сайте WordPress установлено 22 плагина.