В данной статье рассказывается о наиболее популярных бесплатных инструментах при пентестинге (тесты на проникновение) веб-приложений в режиме «черного ящика».
Автор: Сергей Белов
В данной статье я расскажу о наиболее популярных бесплатных инструментах при пентестинге (тесты на проникновение) веб-приложений в режиме «черного ящика».
Для этого мы рассмотрим утилиты, которые помогут в данном виде тестирования. В обзор включены следующие категории продуктов:
Сетевые сканеры
Сканеры брешей в веб-скриптах
Эксплойтинг
Автомазация инъекций
Дебаггеры (снифферы, локальные прокси и т.п.)
Некоторые продукты имеют универсальный «характер», поэтому буду относить их к той категории, в которой они представляют большую ценность (субъективное мнение).
Сетевые сканеры
Основная задача — раскрыть доступные сетевые сервисы, установить их версии, определить ОС и т. д.
Nmap
Nmap («Network Mapper») это бесплатная утилита с открытым исходным кодом для анализа сети и аудита безопасности систем. Яростные противники консоли могут использовать Zenmap, это GUI к Nmap'у.
Это не просто «умный» сканер, это серьезный расширяемый инструмент (из «необычных фишек» — наличие скрипта для проверки узла на наличие червя "Stuxnet" (упоминалось тут).
Типовой пример использования:
nmap -A -T4 localhost
-A для определения версии ОС, сканирования с использованием скриптов и трассировки
-T4 настройка управления временем (больше — быстрее, от 0 до 5)
localhost — целевой хост
Что-нибудь по жестче?
nmap -sS -sU -T4 -A -v -PE -PP -PS21,22,23,25,80,113,31339 -PA80,113,443,10042 -PO --script all localhost
Это набор опций из профиля «slow comprehensive scan» в Zenmap. Выполняется довольно долго, но и дает в итоге более детальную информацию, которую можно узнать о целевой системе. Справочное руководство на русском языке, если решили углубиться, а так же советую перевод статьи Beginner's Guide to Nmap.
Nmap получил статус “Security Product of the Year” такими журналами и сообществами как Linux Journal, Info World, LinuxQuestions.Org и Codetalker Digest.
Интересный момент, Nmap можно увидеть в фильмах «Матрица: Перезагрузка», «Крепкий орешек 4», «Ультиматум Борна», «Хоттабыч» и других.
IP-Tools
IP-Tools — эдакий набор из разных сетевых утилит, поставляется с GUI, «посвящен» windows юзерам.
Сканер портов, общих ресурсов (расшаренные принтеры/папки), WhoIs/Finger/Lookup, telnet клиент и многое другое. Просто удобный, быстрый, функциональный инструмент.
Нет особого смысла рассматривать остальные продукты, так как очень много утилит в данной области и все они имеют схожий принцип работы и функционал. Все же самым часто используемым остается nmap.
Сканеры брешей в веб-скриптах
Пытаются найти популярные уязвимости (SQL inj, XSS, LFI/RFI и т.д.) или ошибки (не удаленные временные файлы, индексация директорий и т.п.)
Acunetix Web Vulnerability Scanner
Acunetix Web Vulnerability Scanner — по ссылке заметно что это xss сканер, но это не совсем так. Бесплатная версия, доступная по ссылке дает довольно большой функционал. Обычно человека, запустившего этот сканер первый раз и впервые получив отчет по своему ресурсу охватывает небольшой шок, и вы поймете почему, сделав это. Это очень мощный продукт для анализа просто всевозможных уязвимостей на сайте и работает не только с привычными нам сайтами на php, но и на других языках (хоть отличие в языке не показатель). Инструкцию описывать особо смысла нет, так как сканер просто «подхватывает» действия пользователя. Что-то похожее на «далее, далее, далее, готово» в типичной установке какого-либо ПО.
Nikto
Nikto это Open Source (GPL) веб-сканер. Избавляет от рутинной ручной работы. Ищет на целевом сайте неудаленные скрипты (какие-нибудь test.php, index_.php и т.п.), инструменты администрирования бд (/phpmyadmin/, /pma и подобные) и т.д., то есть проверяет ресурс на самые частые ошибки, возникшие обычно из-за человеческого фактора.
Плюс, если находит какой-нибудь популярный скрипт, то проверяет его на вышедшие эксплоиты (которые есть в базе).
Сообщает о доступных «нежелательных» методах, типа PUT и TRACE
Ну и так далее. Очень удобно, если ты работаешь пентестером и каждый день проводишь анализ сайтов.
Из минусов хотел бы отметить высокий процент ложных срабатываний. К примеру если ваш сайт вместо 404 ошибки (когда она должна возникнуть) отдает все время главную, то сканер скажет, что на вашем сайте все скрипты и все уязвимости из его базы. На практике такое не так часто встречается, но как факт, многое зависит от структуры вашего сайта.
Классическое использование:
./nikto.pl -host localhost
Если нужно быть авторизованным на сайте, можно выставить cookie в файле nikto.conf, переменная STATIC-COOKIE.
Wikto
Wikto — Nikto под Windows, но с некоторыми дополнениями, как применение фаззинга при проверке, использование GHDB, получение ссылок и директорий ресурса, реал-таймовым мониторингом HTTP запросов/ответов. Wikto написан на C# и требует .NET framework.
skipfish
skipfish — сканер веб-уязвимостей от Michal Zalewski (известного под ником lcamtuf). Написан на С, кроссплатформинен (для Win нужен Cygwin). Рекурсивно (и очень долго, порядка 20~40 часов, хотя последний раз у меня работал 96 часов) обходит весь сайт и находит всевозможные бреши в безопасности. Так же генерирует очень много трафика (по несколько гб входящего/исходящего). Но все средства хороши, тем более, если есть время и ресурсы.
w3af — Web Application Attack and Audit Framework, open-source сканер веб-уязвимостей. Имеет GUI, но можно работать из под консоли. Точнее, это фреймворк, с кучей плагинов.
Рассказывать про его преимущества можно долго, лучше испробовать его :]
Типичная работа с ним сводится к выбору профиля, указания цели и, собственно, запуска.
Mantra Security Framework
Mantrais a dream that came true. Коллекция свободных и открытых инструментов по ИБ, встраиваемых в веб-браузер.
Очень полезны при тестировании веб-приложений на всех этапах.
Использование сводится к установке и запуску браузера.
На самом деле очень много утилит в данной категории и довольно сложно выделить из них конкретный список. Чаще всего каждый пентестер сам определяет набор нужных ему инструментов.
Эксплойтинг
Для автоматизированного и более удобного использования уязвимостей в программном обеспечении и скриптах пишут эксплойты, которым нужно только передать параметры, чтобы использовать брешь в безопасности. А есть продукты, которые избавляют от ручного поиска эксплоитов, да и еще и применяют их «на лету». Об этой категории сейчас и пойдет речь.
Metasploit Framework
The Metasploit® Framework — эдакий монстр в нашем деле. Он столько умеет, что инструкция выйдет на несколько статей. Мы рассмотрим автоматический эксплоитнг (nmap + metasploit). Суть такова, Nmap проанализирует нужный нам порт, установит сервис, а metasploit попробует применить к нему эксплоиты, исходя из класса сервиса (ftp, ssh и т.п.). Вместо текстовой инструкции я вставлю видео, довольно популярное на тему autopwn
А можно просто автоматизировать работу нужного нам эксплойта. К примеру:
msf > use auxiliary/admin/cisco/vpn_3000_ftp_bypass
msf auxiliary(vpn_3000_ftp_bypass) > set RHOST [TARGET IP]
msf auxiliary(vpn_3000_ftp_bypass) > run
На самом деле возможности данного framework очень обширны, поэтому, если решили углубиться, переходим по ссылке.
Armitage
Armitage — OVA жанра киберпанкGUI для Metasploit. Визуализирует цель, рекомендует эксплоиты и предоставляет расширенные возможности данного фреймворка. В общем для тех, кто любит, чтобы все красиво и эффектно выглядело.
Скринкаст:
Tenable Nessus®
Tenable Nessus® vulnerability scanner — очень много чего умеет, но нам от него нужна одна из возможностей — определение, для каких сервисов есть эксплойты. Бесплатная версия продукта «home only»
Использование:
Скачали (под свою систему), установили, зарегистрировали (ключик приходит на почту).
Запустили сервер, добавили юзера в Nessus Server Manager (кнопка Manage users)
Заходим по адресу
https://localhost:8834/
и получаем флэш-клиент в браузере
Scans -> Add -> заполняем поля (выбрав подходящий нам профиль сканирования) и жмем Scan
Через некоторое время отчет о сканировании появится во вкладке Reports
Для проверки практической уязвимости сервисов к эксплоитам можно использовать выше описанный Metasploit Framework или попробовать найти эксплоит (к примеру на Explot-db, packet storm, explot search и др.) и использовать его вручную против своей системы
ИМХО: слишком громоздкий. Привел его как одного из лидеров в данном направлении софтверной индустрии.
Автоматизация инъекций
Поиск инъекций производят многие из web app sec сканеров, но они все же просто общие сканеры. А есть утилиты, которые конкретно занимаются поиском и эксплуатацией инъекций. О них сейчас и пойдет речь.
sqlmap
sqlmap — open-source утилита для поиска и эксплуатации SQL инъекций. Поддерживает такие сервера БД, как: MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, SQLite, Firebird, Sybase, SAP MaxDB.
-blind u — параметр для инъекции (по умолчанию забирается последний из адресной строки)
-sql «select table_name from imformation_schema.tables limit 1 offset 0» — наш произвольный запрос в базу
-database 1 — сервер БД: MSSQL
-type 1 — тип атаки, «слепая» инъекция, основанная на True и Error (к примеру синтаксические ошибки) ответах
Дебаггеры
Эти инструменты в основном используют разработчики, при проблемах с результатами выполнения своего кода. Но это направление полезно и при пентестинге, когда можно подменять нужные нам данные «на лету», анализировать, что приходит в ответ на наши входные параметры (к примеру при фаззинге) и т.д.
Burp Suite
Burp Suite — набор утилит, которые помогают при тестах на проникновение. В Сети лежит хороший обзор на русском языке от Raz0r (правда за 2008 год).
В бесплатную версию входит:
Burp Proxy — локальный прокси, позволяет изменять уже сформированные запросы от браузера
Burp Spider — паук, ищет существующие файлы и директории
Burp Repeater — ручная отправка HTTP-запросов
Burp Sequencer — анализ случайных значений в формах
Burp Decoder — стандартный кодер-декодер (html, base64, hex и т.п.), коих тысячи, которые можно быстро написать на каком-нибудь языке
Burp Comparer — компонент сопоставления строк
В принципе этот пакет решает практически все задачи, связанные с этим направлением.
Fiddler
Fiddler — Fiddler это отладочный прокси, логирующий весь HTTP(S) трафик. Позволяет исследовать этот траффик, устанавливать breakpoint'ы и «играться» с входящими или исходящими данными.
Есть еще и Firesheep, монстр Wireshark и другие, выбор за пользователем.
Заключение
Естественно, каждый пентестер имеет свой арсенал и свой набор утилит, так как их просто множество. Я постарался привести одни из наиболее удобных и популярных. Но чтобы любой желающий мог ознакомится и с другими утилитами в этом направлении, я приведу ссылки ниже.