Сканер безопасности WordPress: уязвимые плагины, темы, пользователи и конфигурации. Использует базу WPVulnDB (~30 000 уязвимостей). Поддерживает брутфорс паролей и перечисление пользователей. Входит в Kali Linux.
# Kali Linux: sudo gem install wpscan # Docker: docker pull wpscanteam/wpscan docker run -it --rm wpscanteam/wpscan --url https://target.com wpscan --url https://target.com wpscan --url https://target.com --enumerate u # пользователи wpscan --url https://target.com --enumerate vp # уязвимые плагины wpscan --url https://target.com -P wordlist.txt -U admin
Сканер безопасности WordPress
База данных уязвимостей WPScan WordPress - Плагин безопасности для 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).
shell
sudo apt install build-essential ruby-devshell
sudo dnf install @development-tools ruby-develshell
sudo pacman -S base-devel rubyshell
sudo apk add build-base ruby-devxcode-select --install).Затем установите гем:
gem install wpscan
На MacOSX, если из-за System Integrity Protection (SIP) от Apple возникает ошибка Gem::FilePermissionError, установите 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-кэш по умолчанию и хранилище куки, хранятся в $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.
Коммерческое использование — это использование, направленное на получение коммерческой выгоды или денежного вознаграждения.
Примеры случаев коммерциализации:
Примеры случаев, которые не требуют коммерческой лицензии и, таким образом, подпадают под условия, изложенные ниже (включая, но не ограничиваясь):
Если вам нужно приобрести коммерческую лицензию или вы не уверены, нужно ли вам приобретать коммерческую лицензию, свяжитесь с нами - contact@wpscan.com.
Условия использования на бесплатной основе;
Перераспределение разрешено при следующих условиях:
Копирование разрешено при условии, что оно не противоречит положению о перераспределении.
Модификация разрешена при условии, что она не противоречит положению о перераспределении.
Любой вклад предполагает, что Контрибьютор предоставляет Команде WPScan неограниченное, неисключительное право повторно использовать, модифицировать и переиздавать контент Контрибьютора.
WPScan предоставляется на условиях «как есть» и без какой-либо поддержки, обновлений или технического обслуживания. Поддержка, обновления и техническое обслуживание могут предоставляться по единоличному решению Команды WPScan.
WPScan предоставляется в рамках данной Лицензии на условиях «как есть», без каких-либо гарантий, как явных, так и подразумеваемых, или установленных законом, включая, но не ограничиваясь, гарантии того, что WPScan свободен от дефектов, пригоден для коммерческой реализации, подходит для конкретной цели или не нарушает прав третьих лиц.
В той мере, в какой это допускается Законом, WPScan предоставляется на условиях «как есть». Команда WPScan никогда и без каких-либо ограничений не несет ответственности за любой ущерб, затраты, расходы или любые другие выплаты, возникающие в результате действий, бездействия, ошибок и/или любых других взаимодействий между WPScan и конечным оборудованием, компьютерами, другим программным обеспечением или любыми третьими лицами, конечным оборудованием, компьютером или услугами.
Запуск WPScan против веб-сайтов без предварительного взаимного согласия может быть незаконным в вашей стране. Команда WPScan не несет ответственности и не несет ответственности за любое неправомерное использование или ущерб, причиненный WPScan.
Термин "wpscan" является зарегистрированной торговой маркой. Данная Лицензия не предоставляет права использования торговой марки "wpscan" или логотипа WPScan.