Обзор сканера skipfish

от автора

С развитием веб-технологий появлялись и продолжают появляться новые уязвимости. Однако существует большой спектр программ, которые помогают обнаруживать уязвимости в веб-сайтах и веб-приложениях. Среди таких программ можно выделить skipfish – инструмент с открытым исходным кодом, предназначенный для поиска уязвимостей в веб-приложениях путем использования атаки типа перебор по словарю.

Метод перебор по словарю основывается на последовательном пересмотре всех слов (значений) определённого вида и длины из файла с целью последующего поиска правильных значений, например, это могут быть логины и пароли.

skipfish был создан в 2009 году компанией Google. Впоследствии данный инструмент вошел в список программ, которые поставляются вместе с операционной системой Kali Linux.

Среди достоинств можно выделить следующие:

  • бесплатный инструмент с открытым исходным кодом (open source);

  • высокая производительность. skipfish написан на языке программирования “C”, благодаря чему снижается нагрузка на процессор и оперативную память. Позволяет выполнять 2 000 запросов в секунду;

  • обширный функционал, включающий в себя такие функции, как перебор по словарю, проверка на наличие SQL-инъекций, XML инъекций и т.д.;

  • распознавание всех основных веб-уязвимостей, среди которых SQL и PHP инъекции, межсайтовый скриптинг (XSS), Path Traversal и т.д. С полным списком поддерживаемых уязвимостей можно ознакомиться на официальном сайте в разделе “Most curious! What specific tests are implemented”;

  • поддержка автоматического сканирования с целью определения”, насколько уязвимым является веб-сайт;

  • генерация отчетов в формате HTML, где подробно отображаются результаты сканирования.

Установка

skipfish уже предустановлен в операционной системе Kali Linux при условии, что на этапе установке ОС был выбран пункт default recommended tools или large default selection plus additional tools в разделе Software selection. В противном случае его необходимо установить вручную выполнив команду:

sudo apt -y install skipfish

Для проверки корректной установки в терминале необходимо ввести:

skipfish

Если в выводе команды отобразилась строка “skipfish web application scanner — version 2.10b”, значит, установка произведена корректно.

Установить skipfish в последних версиях таких дистрибутивов как Ubuntu, Debian, Red Hat Enterprise Linux, CentOS/Fedora, не получится в связи с тем, что пакет отсутствует в репозиториях и устарел для данных ОС (последняя версия skipfish была выпущена в 2012 году). Собрать пакет из исходного кода также не получится из-за всевозможных ошибок возникающих при компиляции. В качестве альтернативы можно использовать такие сканеры, как Nikto, arachni, owasp-zap.

Использование

Как было упомянуто ранее, skipfish использует словари для сканирования и поиска уязвимостей. По умолчанию утилита использует свои собственные словари, которые расположены в /usr/share/skipfish/dictionaries.

Запускать программу необходимо от пользователя root или при помощи sudo. Минимальный синтаксис для запуска сканирования выглядит следующим образом: skipfish -o имя директории, куда будет сохранен отчет сканирования URL сайта или его IP-адрес.

Например:

skipfish -o test http://testphp.vulnweb.com/

В качестве тестового сайта будет использоваться testphp.vulnweb.com, так как на данном сайте уже присутствуют некоторые уязвимости, благодаря чему будет наглядно показан процесс сканирования. 

После запуска команды отобразится приветственное описание, в котором, в частности, говорится о том, что сканирование можно прервать в любое время путем нажатия на комбинацию клавиш Ctrl + С, а также о том, что если количество запросов будет отображаться в диапазоне 100-200, то процесс сканирования займет много времени:

После того, как будет нажата любая клавиша, или по истечению 60 секунд начнется процедура сканирования:

Показать статус сканирования можно путем нажатия на клавишу Пробел. Отобразится раздел In-flight request, который в режиме реального времени показывает сканируемые URL:

Среди полезных параметров можно выделить следующие:

-A имя пользователя:пароль – если на сканируемом сайте используется аутентификация при помощи логина/пароля, следует задать их при помощи ключа -A;

-r r_limit – задает максимальное количество запросов, которое сможет отправлять skipfish. В качестве значения можно указать число от 1 до 100000000;

-W wordlist – задает путь до файла со словарем, т.е. можно использовать собственные файлы словарей, а не только стандартные;

-I string – будут сканироваться только те URL, которыезаданы в параметре —I

Процесс сканирования может занять довольно много времени – от 30 минут до нескольких часов. Длительность сканирования зависит от структуры веб-сайта, скорости интернет соединения, а также от типа используемого словаря. Например, использование словаря complete занимает больше времени, чем при использование minimal. В любой момент сканирование можно остановить путем нажатия на сочетание клавиш Ctrl + С. После этого в терминале отобразится надпись Scan aborted by user, bailing out!, которая проинформирует, что сканирование завершено пользователем. После этого утилита сгенерирует отчет с именем index.html, который будет сохранен в ранее указанную директорию:

Файл отчета имеет следующую структуру.

Блок Document type overview:

В данном разделе все файлы сайта разбиваются на типы – html, css, plain text, xml и т.д. При раскрытии категории отображаются все найденные URL определённого типа: 

При нажатии на show trace + отобразится трассировка запроса, которая включает в себя отправленный запрос (REQUEST) и полученный ответ (RESPONSE):

В блоке Issue type overview отображаются найденные уязвимости. Справа от названия уязвимости находится число, которое сообщает о количестве найденных уязвимостей данного типа:

skipfish использует 4 уровня критичности для группировки уязвимостей:

High risk – высокий уровень критичности. Данный тип уязвимостей существенно влияет на безопасность сайта. Выделяется красным цветом. К таким уязвимостям относят SQL/PHP инъекции, OS command injection (инъекция команд операционной системы), атаки типа Format String, уязвимости HTTP PUT.

Medium risk – средний уровень критичности. На данный тип уязвимостей необходимо обратить внимание. Выделяется оранжевым цветом. К таким уязвимостям относят XSS атаки, Directory Browsing, CSS инъекции.

Low risk – низкий уровень критичности. Данный тип уязвимостей оказывает минимальное воздействие на безопасность сайта. Выделяется синим цветом. К таким уязвимостям относят SSL Common Name Mismatch Error (несоответствие значение Common Name SSL сертификата к домену), XSRF (cross-site request forgery – «межсайтовая подделка запроса»), использование само подписных сертификатов.

informational – информационный уровень. Содержит информацию о найденных версиях компонентов сайта, которые отображаются на веб-страницах, а также отображает битые ссылки, страницы с 404 ошибкой, отладочную информацию сервера. Обозначается зеленым цветом.

Для просмотра найденной уязвимости можно перейти по URL: 

Или открыть файл с трассировкой:

Как видно выше, сканер обнаружил URL сайта, на которых возможно произвести SQL инъекцию.

Рассмотрим пример с обнаруженной XSS атакой. skipfish нашел 12 URL, на которых присутствует уязвимость XSS:

Перейдем по одной из предложенных ссылок и в поле, где пользователи сайта могут оставлять комментарии, введем следующий код:

<script>alert("Hello from skipfish!")</script>

Далее необходимо нажать на кнопку add message или клавишу Enter, и можно увидеть воспроизведённую уязвимость XSS:

Также skipfish ищет отладочную информацию и ошибки, связанные с подключением, например, к базам данных, как на скриншоте ниже: 

А также такие уязвимости, как Directory listing:

Подводя итоги, можно сказать, что несмотря на простоту использования skipfish обладает обширной базой уязвимостей. Отчет, который утилита генерирует по завершению сканирования, имеет удобную структуру, а также позволяет сразу перейти к работе с найденными уязвимостями.


НЛО прилетело и оставило здесь промокод для читателей нашего блога:

— 15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.


ссылка на оригинал статьи https://habr.com/ru/company/first/blog/720902/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *