Сравнение инструментов сканирования локальной сети
Когда я работал в нескольких государственных организациях кавычкодавом, овощем пентестером, суровые бородатые дяди в свитерах учили меня использовать только Nmap для сканирования сети. Сменив место работы, Добби стал свободен от предрассудков и решил выбрать сканер самостоятельно на основании псевдо-объективных данных сравнения реального функционала популярных сканеров, которые смог найти в сети самостоятельно, или, спросив у коллег, какой их любимый сканер. Собственно, о результатах внутреннего холливара сравнения сетевых сканеров и решил написать статью. Объективность не гарантирую, но постарался сделать колличественный анализ. Кому интересно, что из этого вышло, добро пожаловать под кат.
Старый и опытный волк безопасник предложил свой любимый и привычный консольный Nmap. Ещё один наш выходец из «госухи», combonik, говорил, что разницы нету, опенсорсный или вендорский, главное — веб-интерфейс для работы. Ещё наш погонщик менеджер сказал, что вендорские сканеры — самые лучшие, аргументируя свои слова тем, что такие сканеры имеют постоянную поддержку, удобный интерфейс для работы и постоянные обновления.
Дабы сгладить наши противоречия, было решено провести блиц-тестирование сетевых сканеров уязвимостей. Холивар среди пентестеров Hacken привел нас к новой задаче — проведению сравнительной характеристики по результатам сканирования. Для проведения сравнения эффективности сканирования было выбрано четыре сканера: Rapid7 Nexpose, Tenable Nessus, OpenVAS 9 и Nmap. Их выбрали на основании аналитики интернет-публикаций и личного опыта. Лично я делал ставку на Nessus, но увы, не угадал.
Rapid7 Nexpose – это сканер уязвимостей, который выполняет активное сканирование IT-инфраструктуры на наличие ошибочных конфигураций, дыр, вредоносных кодов, и предоставляет рекомендации по их устранению. Под анализ попадают все компоненты инфраструктуры, включая сети, операционные системы, базы данных и web-приложения. По результатам проверки Rapid7 Nexpose в режиме приоритетов классифицирует обнаруженные угрозы и генерирует отчеты по их устранению. [2]
Tenable Nessus Scanner – это сканер, предназначенный для оценки текущего состояния защищённости традиционной ИТ-инфраструктуры, мобильных и облачных сред, контейнеров и т.д. По результатам сканирования выдаёт отчёт о найденных уязвимостях. Рекомендуется использовать, как составную часть Nessus Security Center. [3]
OpenVAS — это сканер уязвимостей с открытым исходным кодом. OpenVAS предназначен для активного мониторинга узлов вычислительной сети на предмет наличия проблем, связанных с безопасностью, оценки серьезности этих проблем и для контроля их устранения. Активный мониторинг означает, что OpenVAS выполняет какие-то действия с узлом сети: сканирует открытые порты, посылает специальным образом сформированные пакеты для имитации атаки или даже авторизуется на узле, получает доступ к консоли управления, и выполняет на нем команды. Затем OpenVAS анализирует собранные данные и делает выводы о наличии каких-либо проблем с безопасностью. Эти проблемы, в большинстве случаев касаются установленного на узле необновленного ПО, в котором имеются известные и описанные уязвимости, или же небезопасно настроенного ПО. [1,6]
Nmap — свободная утилита, предназначенная для разнообразного настраиваемого сканирования IP-сетей с любым количеством объектов, определения состояния объектов сканируемой сети (портов и соответствующих им служб). Изначально программа была реализована для систем UNIX, но сейчас доступны версии для множества операционных систем.[4,5]
Тестовая среда
Для проведения тестирования я собрал тестовую сеть на VMware Workstation 12 Pro в схему, которая представлена на рис. 1.
Рис. 1. Схема сети
- Windows 7 со всеми установленными обновлениями, запущенным приложением XAMPP, развёрнутыми сервисами MySQL и Apache. Также развёрнута тестовая система DVWA.
- Metasploitable 2 – операционная система с предустановленными уязвимыми сервисами и приложениями, которая используется для тестирования.
- Ubuntu 16.04 c установленным IDS Suricata [10] и сконфигурированным iptables [9].
- Kali Linux — дистрибутив Linux, который используется для тестирования на проникновения.
- Перечень уязвимых сервисов в Metasploitable 2 приведены в таблице 1.
Таблица 1
Service | Port | Status |
Vsftpd 2..four | 21 | Open |
OpenSSH four.7p1 Debian 8ubuntu 1 (protocol 2.zero) | 22 | Open |
Linux telnetd service | 23 | Open |
Postfix smtpd | 25 | Open |
ISC BIND 9.four.2 | 53 | Open |
Apache httpd 2.2.eight Ubuntu DAV/2 | 80 | Open |
A RPCbind service | 111 | Open |
Samba smbd .X | 139, 445 | Open |
r companies | 512, 513, 514 | Open |
GNU Classpath grmiregistry | 1099 | Open |
Metasploitable root shell | 1524 | Open |
A NFS service | 2048 | Open |
ProFTPD 1..1 | 2121 | Open |
MySQL 5.zero.51a-3ubuntu5 | 3306 | Open |
PostgreSQL DB eight..zero — eight..7 | 5432 | Open |
VNC protocol v1. | 5900 | Open |
X11 service | 6000 | Open |
Unreal ircd | 6667 | Open |
Apache Jserv protocol 1. | 8009 | Open |
Apache Tomcat/Coyote JSP engine 1.1 | 8180 | Open |
На практике, когда проводится сканирование внутренних сетей на межсетевом экране и IPS, создаются правила, исключающие блокировку сканирования. Поэтому Suricata использовалась в режиме детектирования, и были написаны разрешающие правила на межсетевом экране.
Nessus Scanner запускался в режиме «Basic Network Scanning». [3]
Rapid 7 Nexpose запускался в режиме «Full audit without Web Spider». [2]
OpenVAS 9 запускался в режиме «default». [1,6]
Nmap запускался двумя командами: [4,5]
- nmap -sV -T4 -O -F —version-light 192.168.234.130-131
- nmap -Pn —script vuln 192.168.234.130-131
Результаты тестирования
Nexpose обнаружил 527 уязвимости (см. Диаграмма 1), из них:
Репорт
167 – получили статус “critical” — уязвимости необходимо закрывать в первую очередь.
349 – получили статус “severe” — уязвимости сложны в эксплуатации, но могут привести к тяжёлым последствиям.
46 – получили статус “moderate” — найденные уязвимости могут предоставить атакующему информацию о системе, которую он может применить при проведении атаки.
Найдены уязвимости не только тестированных систем, но и потенциальные уязвимости в системе виртуализации.
Tenable Nessus обнаружил 168 уязвимостей (см. Диаграмма 2), из них:
Репорт
3 – получили статус “critical”
9 – получили статус “high”
33 – получили статус “medium”
5 – получили статус “low”
118 получили статус “info”
Уязвимости уровня “critical” и “high” необходимо закрывать в первую очередь.
Уязвимости уровня “medium” — сложны в эксплуатации, но при должной проработке могут нанести ущерб.
Уязвимости уровня “low” и “info” — могут предоставить атакующему информацию о системе, которую он может применить при проведении атаки через другие векторы.
OpenVAS 9 обнаружил 53 уязвимости (см. Диаграмма 3), из них:
Репорт
Результаты срабатывания IDS
16 – получили статус “high”
33 – получили статус “medium”
4 – получили статус “low”
Уязвимости уровня “high” необходимо закрывать в первую очередь.
Уязвимости уровня “medium” — сложны в эксплуатации, но при должной проработке могут нанести ущерб.
Уязвимости уровня “low” могут предоставить атакующему информацию о системе, которую он может применить при проведении атаки через другие векторы.
Отдельно следует отметить полученные результаты с помощью сканера Nmap. Сканирование проводилось двумя командами, которые описывались выше. Результатом выполнения стал вывод информации об операционной системе, открытых сервисах и найденные возможные уязвимые сервисы и ссылки.
Использование скрипта “vuln” определило следующие типы уязвимостей:
Выводы
Для формирования выводов я применил количественный метод оценки по суммарному количеству найденных уязвимостей. В результате выяснилось, что наибольшую глубину сканирования проводит Nexpose. Довольно слабо отработал Nessus, так как в режиме сканирования сети выдал много служебных данных о системах и сервисах, которые только дают информацию для аналитики. С очень слабой стороны показал себя сканнер OpenVAS 9 с последними обновлениями. Отдельного слова требует Nmap – очень хороший инструмент для проведения аналитического тестирования с возможностью расширения с помощью NSE-скриптов.
Во время тестирования IDS Suricata обнаружила сканнеры NMap и OpenVAS.
Данное тестирование не является каноничным, как например, тесты Gartner или NSS Labs. Но не смотря на это, думаю, статья будет актуальна для специалистов в сфере администрирования систем и технического аудита.
P.S. А для чего это всё делалось?
Необходимо было принять на вооружение выбрать сканер для компании Hacken. Кроме того, проведение сканирования внутренней сети регламентировано стандартами управления информационной безопасности в коммерчиских организациях, банковской, энергетической и прочих сферах деятельности. Сканирование сети необходимо проводить не только для получения сертификации для организации, но и для управления уязвимостями в информационно-телекоммуникационной системе, контроля обновления операционных систем и другие не менее важные задачи по управлению информационной безопасностью. [8, 11]
Источник
Обзор бесплатных инструментов для пентеста web-ресурсов и не только v2
Как-то давно я уже писал об этом, но немного скудно и сумбурно. После я решил расширить список инструментов в обзоре, добавить статье структуры, учесть критику (большое спасибо Lefty за советы) и отправил ее на конкурс на СекЛаб (и опубликовал ссылку, но по всем понятным причинам ее никто не увидел). Конкурс закончен, результаты объявили и я с чистой совестью могу ее (статью) опубликовать на Хабре.
Бесплатные инструменты пентестера веб-приложений
В данной статье я расскажу о наиболее популярных инструментах для пентестинга (тестов на проникновение) веб-приложений по стратегии «черного ящика».
Для этого мы рассмотрим утилиты, которые помогут в данном виде тестирования. Рассмотрим следующие категории продуктов:
- Сетевые сканеры
- Сканеры брешей в веб-скриптах
- Эксплойтинг
- Автомазация инъекций
- Дебаггеры (снифферы, локальные прокси и т.п.)
Некоторые продукты имеют универсальный «характер», поэтому буду относить их к той категории, в которой они имеют больший результат (субъективное мнение).
Сетевые сканеры.
Основная задача — раскрыть доступные сетевые сервисы, установить их версии, определить ОС и т. д.
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
40 часов, хотя последний раз у меня работал 96 часов) обходит весь сайт и находит всевозможные бреши в безопасности. Так же генерирует очень много трафика (по несколько гб входящего/исходящего). Но все средства хороши, тем более, если есть время и ресурсы.
Типичное использование:
./skipfish -o /home/reports www.example.com
В папке «reports» будет отчет в html, пример.
w3af — Web Application Attack and Audit Framework, open-source сканер веб-уязвимостей. Имеет GUI, но можно работать из под консоли. Точнее, это фреймворк, с кучей плагинов.
Рассказывать про его преимущества можно долго, лучше испробовать его :]
Типичная работа с ним сводится к выбору профиля, указания цели и, собственно, запуска.
Mantra Security Framework
Mantra is a dream that came true. Коллекция свободных и открытых инструментов по ИБ, встраиваемых в веб-браузер.
Очень полезны при тестировании веб-приложений на всех этапах.
Использование сводится к установке и запуску браузера.
На самом деле очень много утилит в данной категории и довольно сложно выделить из них конкретный список. Чаще всего каждый пентестер сам определяет набор нужных ему инструментов.
Эксплойтинг
Для автоматизированного и более удобного использования уязвимостей в программном обеспечении и скриптах пишут эксплойты, которым нужно только передать параметры, чтобы использовать брешь в безопасности. А есть продукты, которые избавляют от ручного поиска эксплоитов, да и еще и применяют их «на лету». Об этой категории сейчас и пойдет речь.
Metasploit Framework
А можно просто автоматизировать работу нужного нам эксплойта. К примеру:
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®
Tenable Nessus® vulnerability scanner — очень много чего умеет, но нам от него нужна одна из возможностей — определение, для каких сервисов есть эксплойты. Бесплатная версия продукта «home only»
Использование:
- Скачали (под свою систему), установили, зарегистрировали (ключик приходит на почту).
- Запустили сервер, добавили юзера в Nessus Server Manager (кнопка Manage users)
- Заходим по адресу и получаем флэш-клиент в браузере
- 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 и другие, выбор за пользователем.
Заключение
Естественно, каждый пентестер имеет свой арсенал и свой набор утилит, так как их просто множество. Я постарался привести одни из наиболее удобных и популярных. Но чтобы любой желающий мог ознакомится и с другими утилитами в этом направлении, я приведу ссылки ниже.
Источник