- PVSM.RU - https://www.pvsm.ru -
В этой статье я расскажу о том, как оптимизировать и автоматизировать процессы тестирования на проникновение с помощью специализированных утилит и их расширений.
Тестирование на проникновение условно можно разделить на два этапа:
Плюсы:
При автоматизированном тестировании, как правило, значительно экономится время тестирования, можно покрыть большую площадь веб-приложения за меньшее время.
Большое количество проверок. Автоматизированные системы содержат огромное количество паттернов атак, признаков уязвимостей, и, как правило, расширяемы.
Перебор файлов и папок, подбор паролей — тут, я думаю все понятно и так.
Регламентное сканирование и процедуры инвентаризации — для этих целей автоматизированные системы подходят лучше всего.
Минусы:
False positive срабатывания. Очень часто сканеры руководствуясь формальными признаками выявляют уязвимости, которых нет. Классика жанра — при сканировании Single Page Application сканер получает код ответа 200 на все свои запросы и выводит длинный список уязвимостей, которых на самом деле нет.
Они "очень шумные". При сканировании сайта создается очень много событий в журналах веб-сервера, по которым легко определить атаку.
Нагрузка на веб-сервер. Иногда автоматизированное сканирование может дать ощутимую нагрузку на веб-сервер, что может привести к нестабильной работе веб приложения (хотя этот минус относится к конфигурированию веб-сервера).
Блокирование средствами защиты. Как правило, признаки автоматизированных систем хорошо знакомы разработчикам и они учитывают их при проектировании. Как итог — происходит блокировка (по User Agent, маркерам сканера или частоте запросов).
Не учитывают ошибки логики.
Требуют ручной валидации уязвимостей.
Для того, чтобы автоматизированная система была максимально эффективна, она должна обладать следующими возможностями:
Эти факторы позволят построить систему, отвечающую вашим требованиям и целям.
В качестве примера "готовой системы" могу привести описанную мной ранее Sparta [1]. Для того, чтобы тестирование было максимально эффективным, контролируемым, а также для комфортной валидации уязвимостей необходимо учитывать все компоненты системы, архитектуру тестируемого приложения и связность решений.
В качестве оптимальной основы предлагаю остановится на двух кроссплатформенных системах для тестирования веб-приложений (как в ручном, так и в автоматизированном режиме): OWASP ZAP (free версия) и BurpSuite (free + платная версии).
Самое важное отличие этих систем от классических сканнеров — это принцип работы: сканнер "долбит по сайту" напрямую, выявляя те или иные признаки уязвимостей, зачастую пропуская огромные участки веб-приложения. А Zap и Burp работают в качестве проксирующего механизма, позволяющего добавить все области сайта (как встроенным "пауками", так и при ручном серфинге приложения). Также, важной особенностью является возможность "на лету" разбирать каждый запрос.
Огромным плюсом этих приложений является возможность расширения с помощью плагинов/компонентов:
В качестве примера приложения предлагаю рассмотреть уязвимое веб-приложение [2] со следующими характеристиками:
Исходя из этих данных нам необходимо выбрать и использовать следующие компоненты (минимальный набор).
Owasp ZAP:
Установленные:
Необходимо установить:
Здесь необходимо выбрать те инструменты, которые помогут выявлять и эксплуатировать уязвимости, обозначенные в списке выше.
Burp Suite:
Честно признаюсь, Burp мне нравится больше чем Owasp Zap, поэтому остановлюсь на нем подробнее.
Нам необходимо выполнить задачу по идентификации CMS и установленных компонентов, выявить устаревшие версии, попытаться обойти WAF и проэксплуатировать SQL-инъекцию.
В первую очередь необходимо придерживаться методологии тестирования веб-приложения. В этом нам поможет представленный на последнем Def Con HUNT Burp Suite Extension [3]:
Далее нам пригодится плагин (уже добавленный в BApp store плагин от Vulners.com (@isox, avleonov [4] — спасибо за замечательный инструмент).
Также, может быть полезен расширенный набор фаззинга для sql-инъекций (которого нет в бесплатной версии — sql и не только [5].
Далее, ускорить "раскручивание" инъекции нам поможет sql map — для его интеграции необходимо воспользоваться плагином SQLiPy:
Нам известно, что веб-приложение защищено WAF — могут пригодится расширения What the WAF и Waf bypass.
Также рекомендую плагин от Владимира Иванова: burp-xss-sql-plugin [6].
В качестве средства автоматизации можно использовать встроенный сканнер, либо воспользоваться инструментом Burp Automator [7]:
Требования:
Этот инструмент позволит автоматизировать проверки, использую в качестве основы Burp Suite:
$ python burpa.py -h
###################################################
__
/ /_ __ ___________ ____ _
/ __ / / / / ___/ __ / __ `/
/ /_/ / /_/ / / / /_/ / /_/ /
/_.___/__,_/_/ / .___/__,_/
/_/
burpa version 0.1 / by 0x4D31
###################################################
usage: burpa.py [-h] [-a {scan,proxy-config}] [-pP PROXY_PORT] [-aP API_PORT]
[-rT {HTML,XML}] [-r {in-scope,all}]
[--include-scope [INCLUDE_SCOPE [INCLUDE_SCOPE ...]]]
[--exclude-scope [EXCLUDE_SCOPE [EXCLUDE_SCOPE ...]]]
proxy_url
positional arguments:
proxy_url Burp Proxy URL
optional arguments:
-h, --help show this help message and exit
-a {scan,proxy-config}, --action {scan,proxy-config}
-pP PROXY_PORT, --proxy-port PROXY_PORT
-aP API_PORT, --api-port API_PORT
-rT {HTML,XML}, --report-type {HTML,XML}
-r {in-scope,all}, --report {in-scope,all}
--include-scope [INCLUDE_SCOPE [INCLUDE_SCOPE ...]]
--exclude-scope [EXCLUDE_SCOPE [EXCLUDE_SCOPE ...]]
Как результат вы получите отчет о проведенном сканировании:
Я намеренно не рассматривал готовые сканеры типа w3af (или платные аналоги), позволяющие проводить такие работы, где использование сводится к существующему функционалу (и установки чекбоксов у опций), а постарался раскрыть интересные плагины и доработки для проксирующей утилиты Burp Suite — как наиболее популярного и эффективного инструмента.
Для того чтобы максимально эффективно применять инструменты автоматизированного тестирования необходимо иметь базис ручной проверки, для более точной настройки системы.
Автор: LukaSafonov
Источник [8]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/261884
Ссылки в тексте:
[1] Sparta: https://habrahabr.ru/company/pentestit/blog/324560/
[2] уязвимое веб-приложение: https://vulns.pentestit.ru
[3] HUNT Burp Suite Extension: https://github.com/bugcrowd/HUNT
[4] avleonov: https://habrahabr.ru/users/avleonov/
[5] sql и не только: https://github.com/1N3/IntruderPayloads/tree/master/BurpAttacks
[6] burp-xss-sql-plugin: https://github.com/attackercan/burp-xss-sql-plugin
[7] Burp Automator: https://github.com/0x4D31/burpa
[8] Источник: https://habrahabr.ru/post/335140/
Нажмите здесь для печати.