WPScan — это один из самых популярных инструментов для аудита безопасности сайтов на WordPress. Он позволяет быстро проверить сайт на наличие уязвимостей, слабых паролей, устаревших плагинов и тем. В этой статье мы подробно рассмотрим, как использовать WPScan эффективно, а также приведём примеры команд и способы интерпретации результатов.
Что такое WPScan и зачем он нужен
WPScan — это сканер уязвимостей, ориентированный исключительно на WordPress. Он поддерживает базу данных известных проблем с ядром, темами и плагинами WordPress, регулярно обновляемую сообществом. Использование WPScan помогает быстро выявить потенциальные точки входа для злоумышленников и своевременно принять меры по защите.
Главные задачи WPScan:
- Поиск уязвимостей в ядре WordPress, темах и плагинах
- Определение установленных плагинов и их версий
- Проверка слабых паролей пользователей
- Обнаружение скрытых страниц и точек входа
WPScan может использоваться как самостоятельно, так и в составе комплексных аудитов безопасности.
Установка WPScan на разные платформы
WPScan — это консольное приложение, написанное на Ruby. Для его работы необходим установленный Ruby и менеджер пакетов gem.
Установка на Ubuntu/Debian:
sudo apt update
sudo apt install ruby ruby-dev libcurl4-openssl-dev make gcc
sudo gem install wpscanУстановка на Windows: рекомендуется использовать Windows Subsystem for Linux (WSL) и установить через Linux-дистрибутив, либо использовать Docker-образ.
Установка через Docker:
docker pull wpscanteam/wpscanИспользование Docker удобно, если не хочется возиться с Ruby и зависимостями.
Базовые команды WPScan для аудита сайта
Для начала работы с WPScan необходимо знать базовые команды. Предположим, что у вас есть сайт example.com, который нужно проверить.
Простое сканирование сайта:
wpscan --url https://example.comЭта команда просканирует сайт на наличие уязвимостей, определит темы и плагины.
Сканирование с информацией о пользователях:
wpscan --url https://example.com --enumerate uОпция --enumerate u позволяет получить список пользователей WordPress, что может помочь проверить наличие слабых паролей.
Перечисление плагинов и их версий:
wpscan --url https://example.com --enumerate pКоманда показывает все активные плагины и их версии, что помогает выявить устаревшие и уязвимые компоненты.
Пример комплексного сканирования
wpscan --url https://example.com --enumerate ap,u,t --api-token ваш_токенЗдесь ключ --enumerate ap,u,t означает проверку всех плагинов, пользователей и тем. Для работы с последней базой уязвимостей необходимо получить API-токен на официальном сайте WPScan.
Как анализировать результаты сканирования WPScan
После запуска сканирования WPScan выведет подробный отчёт, где будет указано:
- Найденные плагины и темы с версиями
- Обнаруженные уязвимости с описанием и ссылками на CVE
- Информация о пользователях и потенциально слабых паролях
Важно внимательно изучить найденные уязвимости. Некоторые из них могут быть ложными срабатываниями, но большинство — реальная угроза. В отчёте обычно указывается уровень риска и рекомендации по обновлению или удалению уязвимых компонентов.
Пример вывода уязвимости
Title: Plugin xyz <= 1.2.3 - Authenticated Privilege Escalation
Fixed in: 1.2.4
References:
- https://wpscan.com/vulnerability/12345В данном примере плагин xyz имеет уязвимость, исправленную в версии 1.2.4. Необходимо обновить плагин.
Автоматизация аудита безопасности с WPScan
Для регулярного мониторинга безопасности можно автоматизировать запуск WPScan с помощью cron или других планировщиков задач.
Пример скрипта wpscan-audit.sh для автоматического сканирования и отправки отчёта на почту:
#!/bin/bash
URL="https://example.com"
API_TOKEN="ваш_токен"
REPORT="wpscan_report_$(date +%F).txt"
wpscan --url $URL --enumerate ap,u,t --api-token $API_TOKEN > $REPORT
mail -s "WPScan Отчёт за $(date +%F)" youremail@example.com < $REPORT<Добавьте этот скрипт в cron для ежедневного или еженедельного запуска. Это поможет быстро реагировать на новые угрозы.
Дополнительные советы по безопасности WordPress с WPScan
WPScan — мощный инструмент, но его стоит использовать в комплексе с другими методами защиты:
- Используйте плагины для ограничения количества попыток входа, например, Clearfy Pro, чтобы снизить риск brute force атак.
- Настройте Web Application Firewall (WAF), например, WPCommunity предоставляет инструменты для интеграции с WAF.
- Регулярно обновляйте ядро, темы и плагины, выявленные WPScan как уязвимые.
- Используйте двухфакторную аутентификацию для пользователей с высокими правами.
Как расширить функциональность WPScan с помощью кода
WPScan можно интегрировать в собственные скрипты или инструменты безопасности. Например, можно написать PHP-функцию для запуска WPScan из кода и обработки результата.
function wpscan_ru_run_scan($url, $api_token) {
$command = escapeshellcmd("wpscan --url $url --enumerate ap,u,t --api-token $api_token --format json");
$output = shell_exec($command);
if ($output) {
$result = json_decode($output, true);
return $result;
}
return false;
}Эта функция запускает WPScan с параметрами, возвращая результат в формате массива для дальнейшего анализа или интеграции с панелью администратора.