4.2. Сканирование и аудит веб-сайта с Nikto и Wapiti

Содержимое статьи:

 

Wapiti и Nikto являются неплохими инструментами для аудита безопасности сайта. Работают в режиме терминала и могут быть использованы в качестве дополнительного инструмента для выявления уязвимостей на сайте.

Обе программы уже установлены на Kali и доступны через меню быстрого доступа (аналог Start в Windows): Applications --> 03-Web Application Analysis --> Web vulnerability Scanners:

Меню запуска программ в Kali

 

Wapiti

Программа содержит много опций, список которых доступен командой wapiti -h. Кроме того, описание всех опций также доступно на официальном сайте.

Сама программа заточена на поиск таких уязвимостей, как XSS, SQLi, XXE и других. Чтобы посмотреть весь список выполните команду wapiti –list-modules:

Отображение списка модулей сканирования в Wapiti

Зная название модуля, вы можете включить или исключить его из теста. В качестве примера выполним тестирование приложения Peruggia на наличие уязвимостей типа Command Injection, XSS и Path Traversal. Результат сканирования сохраним в текстовом файле для дальнейшего анализа:

wapiti -u http://10.0.2.4/peruggia/ -m xss,exec,file -o scan_report -f txt --color, где

-u – указывает на URL,

-m – содержит список модулей сканирования,

-o – название файла или папки, в котором будет сохранен отчет,

-f – формат отчета (xml, html, txt, json),

--color – вывод программы отображается в цвете. К сожалению, данная опция работает только для терминала. Для файлов отчета она не доступна.

Результат сканирования приложения представлен ниже:

Результат сканирования с Wapiti

А вот как выглядит отчет в текстовом файле:

Отображение отчета сканирования с Wapiti

Программа обнаружила некоторые уязвимости, давайте рассмотрим некоторые из них.

В секции Cross Site Scripting несколько GET параметров обозначены, как уязвимые. Здесь также даются URL с эксплойтом:

Уязвимости XSS в отчете Wapiti

Откроем URL в браузере, чтобы убедиться в результате:

Демонстрация работы XSS

Появилось всплывающее окно с набором некоторых букв, что на 100% свидетельствует о наличии уязвимости. На данном этапе мы можем отметить для себя, что на сайте действительно присутствует уязвимость. О том, как ее тестировать и использовать мы будем рассматривать подробно в последующих уроках.

Идем дальше. В секции Path Traversal также имеются некоторые записи:

Уязвимость Path Traversal в отчете Wapiti

Откроем самое первое URL:

Демонстрация Path traversal

В окне приложения отображается содержимое файла /etc/passwd. Этот файл содержит список локальных пользователей системы, их логины и права доступа. Их пароли находятся в файле /etc/shadow в зашифрованном виде.

Перед нами еще одна подтвержденная уязвимость, которая позволяет просматривать содержимое файлов на сервере.

При сканировании также следует учитывать одну особенность. Wapiti сохраняет результаты сканирования, и если вы повторно запустите сканирование, то программа выдаст предыдущий результат. Чтобы обнулить результаты и заставить программу просканировать сайт добавьте к команде опцию --flush-session.

 

Nikto

Для запуска программы достаточно выполнить команду nikto. Сразу же отобразится список поддерживаемых опций. Официальная документация доступна здесь.

Программа разрабатывалась для проведения быстрого сканирования, поэтому генерирует много «шума» и легко может быть обнаружена системами WAF, IPS и в логах самого тестируемого сервера.

Для быстрого запуска сканирования достаточно выполнить команду nikto -host URL_сайта. Однако мы воспользуемся дополнительными опциями для улучшения результата тестирования. Тестировать будем приложение Cyclone, результат сканирования сохраним в файле Cyclone_nikto_scan.html в формате HTML:

nikto -host http://10.0.2.4/cyclone -output Cyclone_nikto_scan.html -Format htm -followredirects, где

-host – указывает на тестируемый объект. Это может быть IP адрес или URL,

-output – после него указывают название файла, в котором требуется сохранить отчет,

-Format – определяет формат отчета. Доступные варианты: TXT, JSON, XML, HTM, CSV, SQL, NBE. Данную опцию можно не использовать, так как программа может автоматически определить формат по расширению указанного файла в опции -output.

-followredirects – указание следовать по ссылкам переадресации.

Так выглядит результат сканирования в терминале:

Результат сканирования с Nikto

А так выглядит отчет в формате HTML:

Отчет сканирования Nikto в формате HTML

К сожалению, отчет выглядит довольно просто, к тому же нет группирования результатов по названию уязвимости. Однако вы можете изменить формат отчета. Для этого достаточно отредактировать файлы шаблона для HTML/XML файлов. Все шаблоны хранятся в каталоге /var/lib/nikto/templates/:

Шаблоны файлов отчета Nikto