Wapiti — сканер веб-уязвимостей
Wapiti — это веб-сканер уязвимостей, написанный на Python.
http://wapiti-scanner.github.io/
Требования
Для корректной работы Wapiti требуется Python 3.10 или 3.11.
Все зависимости модулей Python будут установлены автоматически, если вы используете скрипт setup.py или pip install wapiti3.
См. INSTALL.md для получения более подробной информации об установке.
Запуск Wapiti в Windows можно выполнить с помощью WSL.
Как это работает
Wapiti работает как сканер уязвимостей «черного ящика», то есть он не будет изучать исходный код веб-приложений, а будет работать как фаззер, сканируя страницы развернутого веб-приложения, извлекая ссылки и формы и атакуя скрипты. отправка полезных данных и поиск сообщений об ошибках, специальных строк или ненормального поведения.
Общие характеристики
- Формирует отчеты об уязвимостях в различных форматах (HTML, XML, JSON, TXT, CSV).
- Может приостанавливать и возобновлять сканирование или атаку (механизм сеанса с использованием баз данных sqlite3).
- Может дать вам цвета в терминале, чтобы выделить уязвимости.
- Разный уровень многословия.
- Быстрый и простой способ активировать/деактивировать модули атаки.
- Добавить полезную нагрузку можно так же просто, как добавить строку в текстовый файл.
- Настраиваемое количество одновременных задач для выполнения HTTP-запросов.
Возможности просмотра
- Поддержка прокси-серверов HTTP, HTTPS и SOCKS5.
- HTTP-аутентификация на цели (базовая, дайджест, NTLM)
- Аутентификация путем заполнения форм входа.
- Возможность ограничить область сканирования (домен, папка, страница, URL).
- Автоматическое удаление одного или нескольких параметров в URL-адресах.
- Множественные меры защиты от бесконечных циклов сканирования (например, ограничение значений параметра).
- Возможность установить первые URL-адреса для изучения (даже если они находятся вне области действия).
- Можно исключить некоторые URL-адреса из сканирования и атак (например, URL-адрес выхода из системы).
- Импортируйте файлы cookie из браузера Chrome или Firefox или с помощью инструмента wapiti-getcookie.
- Можно активировать/деактивировать проверку SSL-сертификатов.
- Извлекайте URL-адреса из файлов Flash SWF.
- Попробуйте извлечь URL-адреса из javascript (очень простой интерпретатор JS).
- Поддержка HTML5 (понимание последних HTML-тегов).
- Несколько опций для управления поведением сканера и ограничениями.
- Пропуск некоторых имен параметров во время атаки.
- Установка максимального времени процесса сканирования.
- Добавление некоторых пользовательских заголовков HTTP или настройка пользовательского агента пользователя.
- Использование безголового браузера Firefox для сканирования
- Загрузка собственного кода Python для сложных случаев аутентификации (см. параметр --form-script)
- Добавление пользовательского URL-адреса или PATH для обновления базы данных Wappalyzer.
- Сканирование API REST с использованием файла OpenAPI (swagger).
Поддерживаемые атаки
- SQL-инъекции (на основе ошибок, логических значений, времени) и XPath-инъекции
- LDAP-инъекции (на основе ошибок и логических значений)
- Межсайтовый скриптинг (XSS) отражен и постоянен.
- Обнаружение раскрытия файлов (локальное и удаленное включение, требование, fopen, readfile...)
- Обнаружение выполнения команд (eval(), system(), passtru()...)
- XXE (Xml eXternal Entity) внедрение
- CRLF-инъекция
- Поиск потенциально опасных файлов на сервере (спасибо базе данных Nikto)
- Обход слабых конфигураций htaccess
- Поиск копий (резервных копий) скриптов на сервере
- Контузия
- Перечисление папок и файлов (например, DirBuster)
- Подделка запросов на стороне сервера (с использованием внешнего веб-сайта Wapiti)
- Открытые перенаправления
- Обнаружение необычных методов HTTP (например, PUT)
- Базовый оценщик CSP
- Форма входа в систему Brute Force (с использованием списка словарей)
- Проверка заголовков безопасности HTTP
- Проверка флагов безопасности файлов cookie (флаги Secure и httponly)
- Базовое обнаружение подделки межсайтовых запросов (CSRF)
- Отпечатки веб-приложений с использованием базы данных Wappalyzer предоставляют соответствующую информацию CVE.
- Перечень модулей CMS для Wordpress, Drupal, Joomla, SPIP и т.д.
- Обнаружение поглощений поддоменов
- Обнаружение Log4Shell (CVE-2021-44228)
- Обнаружение Spring4Shell (CVE-2020-5398)
- Проверьте https-перенаправления
- Проверьте наличие уязвимостей при загрузке файлов
- Обнаружение сетевых устройств
- Внедряйте полезные данные и внутри тела JSON.
Wapiti поддерживает методы HTTP GET и POST для атак. Он также поддерживает multipart и может вставлять полезные данные в имена файлов (загрузка). Отображать предупреждение при обнаружении аномалии (например, 500 ошибок и тайм-аутов). Определяет разницу между постоянными и отраженными XSS-уязвимостями.
Имена модулей
Вышеупомянутые атаки привязаны к следующим именам модулей:
- резервное копирование (Поиск копий скриптов и архивов на веб-сервере)
- brute_login_form (форма входа в систему брутфорса с использованием списка словарей)
- buster (модуль типа DirBuster)
- cms (сканирование для обнаружения CMS и их версий)
- cookieflags (проверяет флаги Secure и HttpOnly)
- crlf (внедрение CR-LF в HTTP-заголовки)
- csp (обнаружение отсутствия CSP или слабой конфигурации CSP)
- csrf (обнаруживает формы, не защищенные от CSRF или использующие слабые токены защиты от CSRF)
- exec (выполнение кода или внедрение команды)
- файл (обход пути, включение файла и т. д.)
- htaccess (неправильно настроены ограничения htaccess)
- htp (определить веб-технологии, использующие базу данных HashThePlanet)
- http_header (проверка заголовков безопасности HTTP)
- https_redirect (проверить перенаправления https)
- ldap (обнаружение внедрения LDAP на основе ошибок и логических значений)
- log4shell (обнаруживает веб-сайты, уязвимые для CVE-2021-44228)
- методы (ищите необычные доступные методы HTTP, такие как PUT)
- network_device (ищите общие файлы для обнаружения сетевых устройств)
- nikto (ищите известные уязвимости, проверяя существование URL-адресов и проверяя ответы)
- Permanentxss (повторное сканирование всей цели после выполнения модуля xss в поисках ранее испорченных полезных данных)
- перенаправление (открытые перенаправления)
- Shellshock (Тестовая атака Shellshock, см. Википедию)
- Spring4shell (обнаруживает веб-сайты, уязвимые для CVE-2020-5398)
- sql (обнаружение SQL-инъекций на основе ошибок и логических значений)
- ssl (оцените безопасность конфигурации сертификата SSL/TLS, требуется sslscan)
- ssrf (подделка запроса на стороне сервера)
- поглощение (захват поддомена)
- timesql (уязвимости SQL-инъекций, обнаруженные с помощью методологии, основанной на времени)
- загрузить (уязвимости при загрузке файлов)
- wapp (не модуль атаки, извлекает веб-технологии с версиями и категориями, используемыми на цели, находит соответствующие CVE)
- wp_enum (перечислить плагины и темы на веб-сайте Wordpress)
- xss (модуль внедрения XSS)
- xxe (атака на внешний объект XML)
Имена модулей могут быть заданы в виде списка, разделенного запятыми, с использованием опции «-m» или «--module».
Как добиться наилучших результатов
Чтобы найти больше уязвимостей (поскольку некоторые атаки основаны на ошибках), вы можете изменить конфигурации своего веб-сервера.
Например, вы можете установить следующие значения в конфигурации PHP:
безопасный_режим = Выкл.
display_errors = Вкл. (рекомендуется)
Magic_quotes_gpc = Выкл.
allow_url_fopen = Вкл.
mysql.trace_mode = Вкл.
Где получить помощь
В командной строке просто введите следующую команду, чтобы получить базовое использование:
вапити -ч
Вы также можете просмотреть справочную страницу (wapiti.1 или wapiti.1.html) для получения более подробной информации о каждом параметре.
У нас также есть официальная вики, которая более полна: https://github.com/wapiti-scanner/wapiti/wiki.
Если у вас есть другой вопрос, сначала проверьте FAQ
Если вы обнаружили ошибку, опишите проблему: https://github.com/wapiti-scanner/wapiti/issues.
Как помочь проекту Вапити
Ты можешь :
- Поддержите проект, сделав пожертвование ( http://sf.net/donate/index.php?group_id=168625 )
- Создавайте или улучшайте модули атаки
- Создавайте или улучшайте генераторы и шаблоны отчетов.
- Присылайте исправления, патчи...
- Напишите несколько графических интерфейсов
- Создайте инструмент для преобразования файлов PCAP в файлы сеансов Wapiti sqlite3.
- Расскажите о Вапити вокруг себя
Лицензирование
Wapiti выпускается под лицензией GNU General Public License версии 2 (GPL). Исходный код доступен на Github.
Создано Николя СУРРИБАС.
Спонсоры
Кибервотч https://cyberwatch.fr/
Безопасность для всех https://securityforeveryone.com/
Отказ от ответственности
Wapiti — программное обеспечение для кибербезопасности. Он выполняет оценку безопасности предоставленной цели, что может привести к сбоям и сбоям на цели, а также к потенциальной потере данных.
Использование Wapiti для атаки цели без предварительного согласия его владельца является незаконным. Конечный пользователь несет ответственность за соблюдение всех применимых местных законов.
Разработчики и люди, участвующие в проекте Wapiti, не несут никакой ответственности и не несут ответственности за любое неправильное использование или ущерб, причиненный этой программой.