В данной статье рассказывается о наиболее популярных бесплатных инструментах при пентестинге (тесты на проникновение) веб-приложений в режиме «черного ящика».
В данной статье я расскажу о наиболее популярных бесплатных инструментах при пентестинге (тесты на проникновение) веб-приложений в режиме «черного ящика».
Для этого мы рассмотрим утилиты, которые помогут в данном виде тестирования. В обзор включены следующие категории продуктов:
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 — эдакий набор из разных сетевых утилит, поставляется с GUI, «посвящен» windows юзерам.
Сканер портов, общих ресурсов (расшаренные принтеры/папки), WhoIs/Finger/Lookup, telnet клиент и многое другое. Просто удобный, быстрый, функциональный инструмент.
Нет особого смысла рассматривать остальные продукты, так как очень много утилит в данной области и все они имеют схожий принцип работы и функционал. Все же самым часто используемым остается nmap.
Acunetix Web Vulnerability Scanner — по ссылке заметно что это xss сканер, но это не
Nikto это Open Source (GPL) веб-сканер. Избавляет от рутинной ручной работы. Ищет на целевом сайте неудаленные скрипты (какие-нибудь test.php, index_.php и т.п.), инструменты администрирования бд (/phpmyadmin/, /pma и подобные) и т.д., то есть проверяет ресурс на самые частые ошибки, возникшие обычно из-за человеческого фактора.
Плюс, если находит какой-нибудь популярный скрипт, то проверяет его на вышедшие эксплоиты (которые есть в базе).
Сообщает о доступных «нежелательных» методах, типа PUT и TRACE
Ну и так далее. Очень удобно, если ты работаешь пентестером и каждый день проводишь анализ сайтов.
Из минусов хотел бы отметить высокий процент ложных срабатываний. К примеру если ваш сайт вместо 404 ошибки (когда она должна возникнуть) отдает все время главную, то сканер скажет, что на вашем сайте все скрипты и все уязвимости из его базы. На практике такое не так часто встречается, но как факт, многое зависит от структуры вашего сайта.
Классическое использование:
./nikto.pl -host localhost
Если нужно быть авторизованным на сайте, можно выставить cookie в файле nikto.conf, переменная STATIC-COOKIE.
Wikto — Nikto под Windows, но с некоторыми дополнениями, как применение фаззинга при проверке, использование GHDB, получение ссылок и директорий ресурса, реал-таймовым мониторингом HTTP запросов/ответов. Wikto написан на C# и требует .NET framework.
skipfish — сканер веб-уязвимостей от Michal Zalewski (известного под ником lcamtuf). Написан на С, кроссплатформинен (для Win нужен Cygwin). Рекурсивно (и очень долго, порядка 20~40 часов, хотя последний раз у меня работал 96 часов) обходит весь сайт и находит всевозможные бреши в безопасности. Так же генерирует очень много трафика (по несколько гб входящего/исходящего). Но все средства хороши, тем более, если есть время и ресурсы.
Типичное использование:
./skipfish -o /home/reports www.example.com
В папке «reports» будет отчет в html, пример.
w3af — Web Application Attack and Audit Framework, open-source сканер веб-уязвимостей. Имеет GUI, но можно работать из под консоли. Точнее, это фреймворк, с кучей плагинов.
Рассказывать про его преимущества можно долго, лучше испробовать его :]
Типичная работа с ним сводится к выбору профиля, указания цели и, собственно, запуска.
Mantra is a dream that came true. Коллекция свободных и открытых инструментов по ИБ, встраиваемых в веб-браузер.
Очень полезны при тестировании веб-приложений на всех этапах.
Использование сводится к установке и запуску браузера.
На самом деле очень много утилит в данной категории и довольно сложно выделить из них конкретный список. Чаще всего каждый пентестер сам определяет набор нужных ему инструментов.
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 — Скринкаст:
Tenable Nessus® vulnerability scanner — очень много чего умеет, но нам от него нужна одна из возможностей — определение, для каких сервисов есть эксплойты. Бесплатная версия продукта «home only»
Использование:
https://localhost:8834/и получаем флэш-клиент в браузере
Для проверки практической уязвимости сервисов к эксплоитам можно использовать выше описанный Metasploit Framework или попробовать найти эксплоит (к примеру на Explot-db, packet storm, explot search и др.) и использовать его вручную против своей системы
ИМХО: слишком громоздкий. Привел его как одного из лидеров в данном направлении софтверной индустрии.
Поиск инъекций производят многие из web app sec сканеров, но они все же просто общие сканеры. А есть утилиты, которые конкретно занимаются поиском и эксплуатацией инъекций. О них сейчас и пойдет речь.
sqlmap — open-source утилита для поиска и эксплуатации SQL инъекций. Поддерживает такие сервера БД, как: MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, SQLite, Firebird, Sybase, SAP MaxDB.
Типичное использование сводится к строчке:
python sqlmap.py -u "http://example.com/index.php?action=news&id=1"
Хватает мануалов, в том числе и на русском языке. Софтина очень облегчает работу пентестера при работе над данным направлением.
Добавлю официальную видео демонстрацию:
Поддерживает БД:
./bsqlbf-v2-3.pl -url www.somehost.com/blah.php?u=5 -blind u -sql "select table_name from imformation_schema.tables limit 1 offset 0" -database 1 -type 1
-url www.somehost.com/blah.php?u=5 — Ссылка с параметрами
-blind u — параметр для инъекции (по умолчанию забирается последний из адресной строки)
-sql «select table_name from imformation_schema.tables limit 1 offset 0» — наш произвольный запрос в базу
-database 1 — сервер БД: MSSQL
-type 1 — тип атаки, «слепая» инъекция, основанная на True и Error (к примеру синтаксические ошибки) ответах
В бесплатную версию входит:
Fiddler — Fiddler это отладочный прокси, логирующий весь HTTP(S) трафик. Позволяет исследовать этот траффик, устанавливать breakpoint'ы и «играться» с входящими или исходящими данными.
Есть еще и Firesheep, монстр Wireshark и другие, выбор за пользователем.