
Сканер безопасности WordPress, который выявляет уязвимости, перечисляет плагины/темы/пользователей и проверяет пароли на слабость. Интегрируется с WPScan API для получения данных об уязвимостях в реальном времени.
Сканер безопасности WordPress
База данных уязвимостей WordPress от WPScan - Плагин безопасности WordPress
Stream error in the HTTP/2 framing layerПри использовании дистрибутива для пентеста (например, Kali Linux) рекомендуется устанавливать/обновлять wpscan через пакетный менеджер, если он доступен.
brew install wpscanteam/tap/wpscan
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).
sudo apt install build-essential ruby-dev
sudo dnf install @development-tools ruby-devel
sudo pacman -S base-devel ruby
sudo apk add build-base ruby-dev
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 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
CLI-инструмент WPScan использует API базы данных уязвимостей WordPress для получения данных об уязвимостях WordPress в реальном времени. Чтобы WPScan мог получать данные об уязвимостях, необходимо указать API-токен через опцию --api-token или через файл конфигурации, как описано ниже. API-токен можно получить, зарегистрировав аккаунт на WPScan.com.
Бесплатно предоставляется до 25 API-запросов в день — этого должно быть достаточно для сканирования большинства сайтов на WordPress как минимум раз в день. Когда дневной лимит в 25 API-запросов исчерпан, WPScan продолжит работать в обычном режиме, но без данных об уязвимостях.
WPScan может загружать все параметры (включая --url) из файлов конфигурации. Проверяются следующие расположения (по порядку, от первого к последнему):
$XDG_CONFIG_HOME/wpscan/scan.json (если задан XDG_CONFIG_HOME)$XDG_CONFIG_HOME/wpscan/scan.yml (если задан XDG_CONFIG_HOME)~/.config/wpscan/scan.json (если XDG_CONFIG_HOME не задан)~/.config/wpscan/scan.yml (если XDG_CONFIG_HOME не задан)~/.wpscan/scan.json~/.wpscan/scan.ymlpwd/.wpscan/scan.jsonpwd/.wpscan/scan.ymlЕсли эти файлы существуют, параметры из ключа cli_options будут загружены, а при повторном обнаружении — переопределены.
Например:
~/.config/wpscan/scan.yml:
cli_options:
proxy: 'http://127.0.0.1:8080'
verbose: true
pwd/.wpscan/scan.yml:
cli_options:
proxy: 'socks5://127.0.0.1:9090'
url: 'http://target.tld'
Запуск wpscan в текущем каталоге (pwd) эквивалентен выполнению wpscan -v --proxy socks5://127.0.0.1:9090 --url http://target.tld
Другие параметры командной строки можно добавлять, используя соглашение snake_case. Например:
cli_options:
user_agent: "Testing UA"
max_threads: 1
headers: "Custom-Header: aaaa; Another Header: bbb"
Описанная выше возможность полезна для хранения API-токена в файле конфигурации, чтобы не приходилось указывать его через CLI каждый раз. Для этого создайте файл ~/.config/wpscan/scan.yml со следующим содержимым:
cli_options:
api_token: 'YOUR_API_TOKEN'
API-токен будет автоматически загружен из переменной окружения WPSCAN_API_TOKEN, если она присутствует. Если также указана опция CLI --api-token, будет использовано значение, переданное через CLI.
Если у вас возникают проблемы с подключением к API WPScan, вы можете проверить статус сервиса на https://status.wpscan.com/. При возникновении ошибок подключения к API WPScan включит в сообщение об ошибке ссылку на страницу статуса.
wpscan --url https://target.tld/ --enumerate u
Перебор диапазона имён пользователей
wpscan --url https://target.tld/ --enumerate u1-100
** замените u1-100 на диапазон по вашему выбору.
wpscan --url https://target.tld/ --enumerate bf
Эта команда проверит наличие резервных папок, созданных популярными плагинами резервного копирования WordPress. В таких папках могут содержаться конфиденциальные данные, такие как дампы базы данных, файлы конфигурации или полные резервные копии сайта.
Программное обеспечение WPScan (далее именуемое просто «WPScan») распространяется по двойной лицензии — Copyright 2011-2019 WPScan Team.
Случаи, включающие коммерциализацию WPScan, требуют коммерческой, несвободной лицензии. В остальных случаях WPScan можно использовать бесплатно на условиях, изложенных ниже.
1.1 «Лицензия» означает настоящий документ.
1.2 «Контрибьютор» означает любое физическое или юридическое лицо, которое создаёт WPScan, вносит вклад в его создание или владеет им.
1.3 «Команда WPScan» означает основных разработчиков WPScan.
Коммерческое использование — это использование, направленное на получение коммерческой выгоды или денежного вознаграждения.
Примеры случаев коммерциализации:
Примеры случаев, не требующих коммерческой лицензии и, следовательно, подпадающих под условия, изложенные ниже, включают (но не ограничиваются ими):
Если вам необходимо приобрести коммерческую лицензию или вы не уверены, нужна ли она вам, свяжитесь с нами — [email protected].
Условия бесплатного использования;
Распространение разрешено при соблюдении следующих условий:
Копирование разрешено при условии, что это не противоречит пункту о распространении.
Модификация разрешена при условии, что это не противоречит пункту о распространении.
Любой вклад предполагает, что контрибьютор предоставляет команде WPScan неограниченное неисключительное право повторно использовать, изменять и перелицензировать содержимое контрибьютора.
WPScan предоставляется на условиях «как есть» (AS-IS) и без какой-либо поддержки, обновлений или сопровождения. Поддержка, обновления и сопровождение могут предоставляться исключительно по усмотрению команды WPScan.
WPScan предоставляется по настоящей лицензии на условиях «как есть», без каких-либо гарантий, явных, подразумеваемых или установленных законом, включая, без ограничений, гарантии того, что WPScan свободен от дефектов, пригоден для коммерческого использования, пригоден для конкретной цели или не нарушает права третьих лиц.
В пределах, допустимых законодательством, WPScan предоставляется на условиях «как есть». Команда WPScan ни при каких обстоятельствах и без каких-либо ограничений не несёт ответственности за любой ущерб, расходы, издержки или любые иные платежи, возникшие в результате действий WPScan, сбоев, ошибок и/или любого иного взаимодействия между WPScan и конечным оборудованием, компьютерами, другим программным обеспечением или любыми третьими сторонами, конечным оборудованием, компьютером или сервисами.
Запуск WPScan против веб-сайтов без предварительного взаимного согласия может быть незаконным в вашей стране. Команда WPScan не принимает на себя никакой ответственности и не отвечает за любое неправомерное использование или ущерб, причинённый WPScan.
Термин «wpscan» является зарегистрированным товарным знаком. Настоящая лицензия не предоставляет права на использование товарного знака «wpscan» или логотипа WPScan.