Бесплатные инструменты пентестера веб-приложений

Бесплатные инструменты пентестера веб-приложений

В данной статье рассказывается о наиболее популярных бесплатных инструментах при пентестинге (тесты на проникновение) веб-приложений в режиме «черного ящика».


Автор: Сергей Белов

В данной статье я расскажу о наиболее популярных бесплатных инструментах при пентестинге (тесты на проникновение) веб-приложений в режиме «черного ящика».


Для этого мы рассмотрим утилиты, которые помогут в данном виде тестирования. В обзор включены следующие категории продуктов:


  1. Сетевые сканеры
  2. Сканеры брешей в веб-скриптах
  3. Эксплойтинг
  4. Автомазация инъекций
  5. Дебаггеры (снифферы, локальные прокси и т.п.)
Некоторые продукты имеют универсальный «характер», поэтому буду относить их к той категории, в которой они представляют большую ценность (субъективное мнение).

Сетевые сканеры

Основная задача — раскрыть доступные сетевые сервисы, установить их версии, определить ОС и т. д.

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 часов) обходит весь сайт и находит всевозможные бреши в безопасности. Так же генерирует очень много трафика (по несколько гб входящего/исходящего). Но все средства хороши, тем более, если есть время и ресурсы.

Типичное использование:

./skipfish -o /home/reports www.example.com

В папке «reports» будет отчет в html, пример.

w3af

w3af — Web Application Attack and Audit Framework, open-source сканер веб-уязвимостей. Имеет GUI, но можно работать из под консоли. Точнее, это фреймворк, с кучей плагинов.

Рассказывать про его преимущества можно долго, лучше испробовать его :]

Типичная работа с ним сводится к выбору профиля, указания цели и, собственно, запуска.

Mantra Security Framework

Mantra is 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

ArmitageOVA жанра киберпанк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.

Типичное использование сводится к строчке:

python sqlmap.py -u "http://example.com/index.php?action=news&id=1"

Хватает мануалов, в том числе и на русском языке. Софтина очень облегчает работу пентестера при работе над данным направлением.

Добавлю официальную видео демонстрацию:

bsqlbf-v2

bsqlbf-v2 — скрипт на perl, брутфорсер «слепых» Sql инъекций. Работает как и с integer значениями в url, так и со строковыми (string).

Поддерживает БД:

  • MS-SQL
  • MySQL
  • PostgreSQL
  • Oracle
Пример использования:

./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 (к примеру синтаксические ошибки) ответах

Дебаггеры

Эти инструменты в основном используют разработчики, при проблемах с результатами выполнения своего кода. Но это направление полезно и при пентестинге, когда можно подменять нужные нам данные «на лету», анализировать, что приходит в ответ на наши входные параметры (к примеру при фаззинге) и т.д.

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 и другие, выбор за пользователем.

Заключение

Естественно, каждый пентестер имеет свой арсенал и свой набор утилит, так как их просто множество. Я постарался привести одни из наиболее удобных и популярных. Но чтобы любой желающий мог ознакомится и с другими утилитами в этом направлении, я приведу ссылки ниже.

Различные топы/списки сканеров и утилит

Дистрибутивы Linux, в состав которых уже входит куча разных утилит для пентестинга

Ньютон уронил яблоко. Мы роняем челюсти!

Гравитация научных фактов сильнее, чем вы думаете

Подпишитесь и испытайте интеллектуальное падение