Лучшие инструменты пен-тестера: исследование веб-приложений
У каждого из команды ][ - свои предпочтения по части софта и утилит для пентеста. Посовещавшись, выяснилось, что выбор так разниться, что можно составить настоящий джентльменский набор из проверенных программ. На том и решили. Чтобы не делать сборную солянку, весь список мы разбили на темы. Поиск уязвимостей - это определенно одна из интереснейших тем.
Подставив кавычку в нужном месте - и нашел возможность для инжекции? Проснись! Давно прошли времена, когда пионерские способы помогали найти ошибки даже в серьезных проектах. Поиск уязвимых мест стал намного более изощренным, как и техники для успешной эксплуатации уязвимостей. Если раньше худо-бедно можно было все реализовать вручную, то теперь без вспомогательных инструментов не обойтись. Последние не только выполнят муторную работу за тебя, но и подскажут, как можно воспользоваться багой, а в некоторых случаях - даже автоматизируют процесс эксплуатации. Итак, приступим? Nikto
Назвав свой сканнер "никто" разработчики сильно слукавили. На деле - это известный сканнер веб-уязвимостей, способный сканировать удаленные хосты и проводить сложные тесты безопасности. В базе программы имеется информация об более чем 3500 уязвимимых сценариев. Информация об уязвимостях обновляется в виде специальных баз, подключаемых к программе как плагины. Увы, последний апдейт приложения был еще в далеком 2007 году, но базы с уязвимостями (http://www.cirt.net/nikto/UPDATES/2.03) по-прежнему обновляются. Программа даже поддерживает автоматическое обновление баз, но лучше б этот плюс компенсировался более частыми и серьезными апдейтами.
Прога написана на Perl'е, поэтому вся работа осуществляется из командной строки. Помимо поиска уязвимых сценариев, Nikto попробуем определить версию веб-демона, отыскать файлы с открытыми паролями, а также выполнить десяток других проверок. Полноценная поддержка прокси (с возможностью авторизации), а также SSL-соединения при правильном подходе гарантируют твою безопасность. Правда, о незаметном сканированию придется забыть. С самого начала разработчики сделали упор на скорость скана, не заморачиваясь по поводу stealth-методов. С другой стороны, Nikto поддерживает ряд методик для обмана IDS, реализованных в библиотеке LibWhisker, но, увы, и они по большей части устарели.
Маститый коммерческий продукт который изначально разрабатывался авторитетной компанией Watchfire, а потом был куплен IBM. Это уже не любительская поделка вроде Nikto. Rational Appscan предназначен для аудита WEB-приложений и содержит не один десяток эвристических методов для корректного изучения каждого узла. Многие организации готовы выложить за него немалые деньги потому, что он действительно здорово облегчает работу. Поиск уязвимостей осуществляется автоматически, главное - правильно задать все параметры сканирования с помощью специального мастера. На выходе ты получишь отчет о проделанной работе паука, с помощью которой воссоздается, структура сайта, а также возможных уязвимостях. Appscan конкретно указывает уязвимые сценарии, распределяя уязвимые места в соответствии с категорией уязвимостей. SQL Injection, Cross-Site Cripting, Posion Null Byte Files Retrieval, HTTP response splitting, parameter tampering, hidden field manipulation, backdoors/debug options, buffer overflows - это все лишь малая часть списка. Список возможных брешей впечатляет: если взять SQL Injection, то в отчете ты легко найдешь разделы с возможными слепыми инъекциями, инъекциями с помощью кукисов, инъекции на странице авторизации и т.д. Причем сам сканнер покажет, какой именно параметр можно эксплуатировать. Одна из немаловажных особенностей это сканирование сложных приложений, содержащих обилие Java Script / AJAX - кода, Adobe Flash вставки. Специалистам по информационной безопасности Appscan полезен еще и тем, что содержит 40 готовых отчетов о соответствии требованиям, включая требования стандартов безопасности данных PCI, ISO 17799, ISO 27001, Basel II, SB 1386 и PABP (Payment Application Best Practices), что не может не радовать.
Этот сканнер, который теперь принадлежит компании HP, также ранее разрабатывался командой security-специалистов - SPI Dynamics. И это один из самых удачный сканнеров безопасности. Почему? Ну, во-первых, весь процесс сопровождается интерактивным отчётом, что позволит быстро войти в курс дела. Во-вторых, разработчики позаботились о том, чтобы максимально заточить его для выполнения тестов на проникновение. Объектом исследования могут быть всевозможные скрипты, динамически обновляемые сервлеты и фреймворки. WebInspect позволяет выявлять большинство существующих уязвимостей, которые наиболее часто встречаются на сайтах. В то время как многие простецкие сканнеры курят в сторонке, WebInspect отлично справляется с анализом сложных Web 2.0 сайтов, построенных на современных JS-фреймворках и повсеместным применением Ajax. Также как и Appscan, продукт умеет дикомпилировать SWF-файлы, т.е. элементы сайта на Flash'е и анализировать ActionScript код. Причем помимо непосредственно сканнера, в продукт входит дюжина вспомогательных утилит: для создания дампа базы данных, используя SQL-инъекцию, фаззер для проверки передаваемых значений, брутфорс форм, редактор и снифер HTTP запросов и т.д.
Еще один коммерческий сканнер, который вместе с AppScan и WebInspect, входит в тройку самых-самых. Продукт серьезно раскрученный, но ему ни за что ни удалось бы добиться такой популярности, если бы не убойный функционал. Acunetix Web Security Scanner представляет собой полностью автоматизированный сканнер уязвимостей. Сначала программа исследует и формирует структуру сайта, обрабатывая все найденные ссылки и собирая информация обо всех обнаруженных файлах. Затем приступает к тестированию всех веб-приложения, моделируя ввод даных с использованием фаззера, использованием подстановок различныъ параметров и сниппетов, которые могут помочь задетектить брешь в защите. Среди доступных для обнаружения уязвимостей все виды SQL injection, Cross site scripting, CRLF injection и т.д. Важно, что сканнер производит анализ с умом, учитывает специфику удаленной системы - но для этого для сканирования необходимо выбрать правитльный профиль.
Есть у Acunetix Web Security Scanner фишка, которая заслуживает особенное внимание - это технология AcuSensor. Стандартные методы сканирования основываются на анализе ответов, которые возвращает веб-приложение на различные запросы. AcuSensor позволяет провести намного более глубокое тестирование при условии, что у тебя на руках есть исходники приложения. (форум, чат, CMS, онлайн магазин - любой публично доступный скрипт). В этом случае можно комбинировать стандартные механизмы сканирования с глубоким анализом кода, имею четкое представление о ходе выполнения программы изнутри! Что в результате? В итоге ты получаешь не просто информацию о возможной уязвимости, но и конкретный кусок кода, где она найдена, включая номер строки, трейс стека и содержанием SQL-запроса, который при этом отправляется серверу база данных. И более того - ты получаешь возможность искать баги, которые при стандартном сканировании найти практически невозможно. Это касается инъекций в INSERT запросах: отыскать и эксплуатировать их крайне непросто из-за того, что они не возвращают результата. На текущий момент технология AcuSensor доступна для PHP и .NET приложений. Супер фича!
По сути, это не одна утилита - а целый комплекс тулз для пентестера. Самая главная часть программы является Burp Proxy, который устанавливается в качестве локального веб-сервера и перехватывает весь HTTP/HTTPS трафик. Другие утилиты, а именно Spider, Intruder, Scanner, Repeater, Sequencer, Decoder и Comparer связаны как с этой самой прокси, так и между собой. Например, часть перехваченных Burp Proxy параметров можно протестировать на предмет проверки со стороны сервера. Для этого достаточно отправить его на растерзание Intruder'у. Последний заслуживает особенное внимание, потому как именно с его помощью можно отыскать и SQL-инжекции, и XSS уязвимости - и много чего еще. На вход утилите ты передаешь объект проверки, определяешь параметры, которые будут изменяться (на основе специально сформированных шаблонов) и выбираем тип атаки. Большая часть пакета предназначены не для автоматического взлома, а для помощи пентестеру. Зато утилита Scanner, доступная в Pro-редакции, представляют собой полностью автоматизированный сканнер, способный самостоятельно обнаруживать уязвимости в веб-приложениях. Любопытным представляется режим "Live scanning", который проверяет на вшивость те сайты, который ты в данный момент просматриваешь.
Для того чтобы найти уязвимость нужно, как минимум, иметь перед собой картину того, что передается между сервером и клиентом по протоколу HTTP/HTPPS: запросы, кукисы, поля форм. Вдвойне здорово, когда такой HTTP-снифер изначально рассчитан на поиск уязвимостей. Paros Proxy ты не просто можешь на лету изменить сходящие HTTP/HTTPS запросы, логировать собственный траф, но и использовать встроенные сканнеры, с помощью которых тут же проверять сценарии на наличие уязвимостей SQL Injection и XSS. Сам Paros Proxy работате в виде прокси-сервера, собирая всевозможную информацию во время твоего серфинга. Различные виды сканирования осуществляются за счет плагинов, которые в принципе можно писать саму. Увы, разработчики не развивают дальше проект, полностью переключившись на свое коммерческое детище MileSCAN Web Security Auditor (www.milescan.com/hk).
Консольная утилита для аудита веб-приложений. В основе - знакомый под другим сканнерам принцип черного ящика (blackbox), когда анализируются не исходники приложения, а ответы сервера на хитрые запросы с измененными параметрами. Для этого прога сначала анализирует структуру сайта, ищет доступные сценарии, анализирует параметры, а затем включает на всю катушку свой фаззер. Продолжая смаковать до тех пор, пока все уязвимые скрипты не будут найдены. Сейчас в арсенале методики для определения инъекций в базы данных (включая HP/JSP/ASP SQL и XPath инъекции), XSS, LDAP инъекции, CRLF баги (HTTP Response Splitting), ошибки в обработке файлы (локальный и удаленный include, fopen, readfile и т.д.), возможность выполнения команд (eval(), system(), passtru()). В отличие от Nikto, который использует базу дырявых сценариев (а я напомню, что обновляется она не часто), Wapiti настроен на поиск неизвестных уязвимостей.
Активная веб-прокси для поиск уязвимостей в веб-сценариях, с которыми в данный момент ты имеешь дело. Это особенно актуально для сложных приложений, построенный на базе JS и Ajax: ведь никакой скрипт не может полностью сымитировать работу пользователя и проследить за всеми этапами выполнения приложения. На данный момент разработчиками реализованы модули для поиска Sql инъекций, XSS и локальных инклудов. Сам процесс использования утилиты выглядит очень просто. ProxyStrike работает в виде обычной прокси, которая висит по умолчанию на 8008 порту, но помимо стандартных для прокси действий, она в фоном режиме выполняет фаззинг параметров, который ты передаешь на сервер. В результате твоя работы с веб-приложением ничем не выделяется, хотя на самом деле в этот же самый момент происходят активные действия.
Архитектура приложения изначально серьезно расширяема, и ты можешь сам реализовать нужный функционал, написав соответствующий плагин.
Первые строчки кода сканера XSpider были написаны 2 декабря 1998 года, - за прошедшие с тех пор 11 лет XSpider стал известен каждому российскому специалисту по информационной безопасности. Тулза с самого начала разрабатывалась как решение для анализа самых разных системы и обнаружения широкого круг уязвимостей. И хотя это тема для отдельного обзора, нельзя не отметить его модуль за анализ веб-приложений, благодаря которому программа и попала в сегодняшний обзор. Автоматический сканнер быстро анализирует скрипты на заданном HTTP-сервере и выдает о найденных уязвимостях, в том числе инъекций, инъекций кода, запуска произвольных программ, получения файлов, межсайтовый скриптинг (XSS), HTTP Response Splitting. Более того осуществляется поиск и анализ директорий доступных для просмотра и записи, давая возможность находить слабые места в конфигурации. А база сканнера, по заявлением разработчика, ежедневно обновляется новыми уязвимостями и проверками.
sqlmap - это уже более узкоспециализированная утилита, предназначенная специально для автоматизации SQL инжекций. Написанная на Python'е тулза может обнаружить на сайте и эксплуатировать любые SQL инжекции в веб-приложениях. Причем поддерживаются самые разные методики, включая самые сложные слепые инъекции. Если sqlmap обнаружил sql-инжекцию, будь уверен - что-то да ты накопаешь. Впрочем, ничего не стоит использовать ее в связке с более универсальными сканнерами. Если Appscan или, скажем, продукт от Acunetix нашел SQL-уязвимость, ничего не стоит натравить на уязвимый сценарий sqlmap.
Найти более мощного инструмента в паблике достаточно сложно. Во время поиска багов и экспулатация уязвимостей скрипт учитывает специфицику MySQL, Oracle, PostgreSQL, Microsoft SQL Server. Помимо этого частично поддерживаются Microsoft Access, DB2, Informix, Sybase и Interbase. Для того, чтобы понять с какой СУБД, мы имеем дело, sqlmap использует сложные методики fingerprint'а, основанные на анализе баннеров сервисов, сообщений об ошибках, форматировании вывода. Конечно, никакой автоматический скрипт не сможет расковырять столько, сколько ты можешь сделать вручную вместе с полуавтоматическими средствами. Но sqlmap - это отличный помощник, эксплуатирующий как самые простые инжекции, так и последовательность запросов, а также самые сложные слепыее (blind) инжекции. В общем, если возможно что-то вытащить из базы, он не заставить себя ждать. Возможно, системный баннер, имена текущего пользователя и базы, а также проверить, является ли юзер администратором. А быть может повезет и с помощью найденного бага sqlmap тут же вытащит список пользователя с хешами паролей, баз данных, таблиц, колонок - или вообще сделать дамп всех записей в таблицах, или выполнить произвольный SQL-запрос. Мало этого, сканнер известно и о багах, позволяющих читать произвольные текстовые и бинарные файлы на серверах, где используются MySQL, PostgreSQL и Microsoft SQL Server. Если на сервер используется magic_quotes_gpc в настройках PHP, Rational Appscan само собой будет кодировать строку запроса с помощью CHAR() или другой подходящей опции. Да всех опций и наворотов, которые есть в арсенале не перечислишь - это не просто утилита, это настоящий musthave!
Специальная утилита для реализации инъекций в базы данных MySQL. С помощью sqlsus ты намного проще сможешь эксплуатировать найденный баг, получив структуру базы, внедрив SQL запрос, скачав с сервера нужные файл, закачав бэкдор и т.д. и т.п. Примечательно, что в качестве инструмента для хранения полученных дампов используется база SQLite, что чрезвычайно удобно. Можно например сделать копию базы, таблицы или колонки с уязвимого сервера себе в локальную SQLite базы и полноценно работать с ней. Помимо этого, в sqlsus реализована несколько других полезных фич. Если ты не можешь обратиться к базе information_schema, или если ее не существует, тулза поможет пробрутфорсить название таблиц и колонок. В арсенале sqlsus и инструменты для реализации Blind-инъекций. Впрочем, для реализации этого вида атак лучше заюзать следующую утилиту.
Эта тулза специально разработана для эксплуатирования слепый SQL инъекций. Причем изначально поддерживалась только MySQL, но в обновленной версии реализованы методики для 3 трух других СУБД: MS SQL, PostrgeSQL, Oracle. bsqlbf написана на Perl и принимает SQL запросы через командную строку и способна реализовать инъекцию в целочисленные и строковые поля. Всего поддерживается 6 видов слепых инъекций, тип атаки обозначается с помощью ключа для запуска "-type":
В данном примере эксплуатируется уязвимость ORACLE dbms_export_extension exploit, позволяющая с помощью слепой инъекции выполнить произвольную команду. На чем потренироваться во взломе?
Попробовать свои силы в проникновении на удаленную систему проще всего на специальном дистрибутиве Damn Vulnerable Linux (www.damnvulnerablelinux.org). Среди дырявых сервисов, для которых легко пишется эксплоит, простых паролей для системных пользователей и прочих бед горе-администора есть и уязвимые веб-сценарии, на которых ты можешь попрактиковаться. Система легко запускается под виртуальной машиной VMware или VirtualBox. Другая менее известная сборка с уязвимыми приложениями, распространяющаяся в виде образа для WMware носит название Moth (www.bonsai-sec.com/en/research/moth.php).
Важная часть любого пентеста - сбор данных об удаленной системе. Более того, именно с разведки и начинается атака на удаленный хост. Чем больше известно о виртуальном противнике, тем проще отыскать
XSpider 7 разрабатывался как мощный и надежный инструмент, способный эффективно обеспечить процесс мониторинга сетевой безопасности в компьютерной сети любого масштаба. Возможности XSpider 7
Комментарии
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.