Обзор лучших сканеров уязвимостей

Zund

Новичок
Пользователь
Регистрация
5 Авг 2020
Сообщения
10
Реакции
0
Лучшие сканеры уязвимостей

Содержание

1 Лучшие сканеры уязвимостей
1.1 Sn1per
1.2 Wapiti3
1.3 Nikto
1.4 OWASP ZAP
1.5 Sqlmap
1.6 Acunetix WVS
1.7 Vega
1.8 Nessus
1.9 Kube-hunter
1.10 Trivy
1.11 PVS-Studio
1.12 Gitleaks
1.13 QARK
1.14 Burp Suite
1.15 MobSF
2 Сводная таблица
3 Выводы
Для поиска уязвимостей вручную требуются особые знания, богатый опыт и редкое чутье. Но как быть новичкам? Как набраться опыта, если не знаешь, с чего начинать? На помощь приходят автоматические сканеры уязвимостей. В статье мы посмотрим, какие они бывают и как ими пользоваться.

Еще по теме: Самые опасные уязвимости Android



Айтишники, как известно, стремятся все автоматизировать, и хакеры в этом не отстают. Существуют автоматические сканеры уязвимостей — чтобы можно было запустить, откинуться на спинку кресла и потягивать кофе (или пивко), пока они сделают целую гору работы. Поиск уязвимостей с их использованием сводится к тому, чтобы отдать сканеру адрес цели и нажать большую кнопку Start, ну или Enter, если вы любитель терминала.

При этом понятно, что сканер найдет только типовые уязвимости и, чтобы пойти дальше, нужно уметь не только нажимать на кнопку. Но почему бы не сэкономить немного сил? Во многих случаях это вполне оправданно.

Лучшие сканеры уязвимостей
Универсальных инструментов не существует, и сканеры уязвимостей не стали исключением из этого правила. Они обычно нацелены на уязвимости какого-то определенного рода. Сегодня мы рассмотрим следующие виды сканеров.

WVS (Web Vulnerability Scanner) — сканеры веб-уязвимостей. У меня это самая многочисленная категория. Сюда входят как общеизвестные OWASP ZAP и sqlmap, так и менее известные, но не менее полезные, вроде Vega.
Анализаторы мобильных приложений. Тут очень мало достойных продуктов, и мы остановимся на самых ярких из них.
Полууниверсальные сканеры для локальной сети предприятия или дома. Это уже не просто сканеры, а целые комбайны для анализа и учета оборудования в сети. Многие из них заодно ищут уязвимости.
Всякие узкоспециализированные сканеры типа анализа исходного кода, Git/SVN-репозиториев и других сложных для ручной обработки массивов данных.
Сканеры бывают со свободной лицензией и коммерческие. Если с опенсорсом все понятно, то для использования коммерческих придется выложить весьма приличную сумму. К сожалению, ни редакция сайта, ни автор не настолько богаты, чтобы покупать их для обзора. Поэтому для всех коммерческих сканеров была использована официальная пробная версия, если не оговорено иное.

Вся информация в этой статье предоставлена исключительно в ознакомительных целях. Ни редакция сайта spy-soft.net, ни автор не несут ответственности за любой возможный вред, причиненный материалами данной статьи. Имейте в виду, что доступ к данным без предварительного письменного соглашения с их владельцем преследуется по закону.
Само тестирование тоже бывает разным: Black Box либо White Box. При первом типе пентестер или его инструмент должны работать с сервисом через те же интерфейсы, через которые с ним взаимодействуют пользователи. Например, если для тестирования методом Black Box вам дан сайт, то вы можете проверять его только как посетитель, без какого-либо специального доступа к исходному коду или привилегированным аккаунтам. Если это приложение, то подразумевается, что у вас нет доступа к исходникам: ковыряйте сам, если сможете. В общем, Black Box значит, что у вас нет ничего, чего бы не было у всех.

При тестировании методом White Box пентестер (или хакер) имеет доступ ко всем потрохам целевого объекта. Если это сайт — у вас есть его код. Если это сервер — у вас есть доступ к его внутренностям вроде версии ОС и установленного софта или к некоторым файлам. В этом случае возможности куда шире и вы можете найти проблему, которую способен эксплуатировать только продвинутый злоумышленник.

В сегодняшней подборке лучших сканеров уязвимостей представлены инструменты обеих категорий, так что эту статью можно считать универсальной отмычкой почти к любому замку. И конечно, если я что-то забыл, не стеснятесь использовать комментарии.

Sn1per
Цена: Community edition — бесплатно, Professional edition — от 150 долларов
Sn1per — мощный фреймворк для автоматического анализа безопасности цели. Разработан небезызвестным 1N3, основателем компании XeroSecurity. Из других его известных инструментов — Findsploit (для быстрого поиска эксплоитов к уязвимости) и PrivEsc — для поиска локальных багов EoP.

Сканер уязвимостей sn1per

Sn1per поставляется в двух вариантах. Есть версия Community «для всех и даром» и Sn1per Professional, лицензия на который стоит от 150 зеленых американских рублей.

В бесплатном варианте сканер умеет собирать базовую информацию (IP цели, ping, whois, DNS); запускает Nmap для поиска открытых портов и определения сервисов, в том числе и с помощью NSE; ищет часто встречающиеся уязвимости и автоматически эксплуатирует их; пробует получить доступ ко всем файловым шарам (FTP, NFS, Samba); запускает Nikto, WPScan и Arachni для всех найденных веб-приложений и многое другое. Поддерживает интеграцию с Hunter.io, OpenVAS, Burp Suite, Shodan, Censys и Metasploit.

Установка довольно проста и поддерживает Docker, что сводит ее к двум командам:

docker pull xerosecurity/sn1per
docker run -it xerosecurity/sn1per /bin/bash
Для сканирования выполните команду

sniper -t [TARGET]
Чтобы задействовать все возможности Sn1per, понадобятся дополнительные ключи:

-o — использует движок OSINT;
-re — разведка;
-fp — полностью проработать все порты;
-m stealth — старательно скрывает сканер, чтобы цель не поняла, что ее сканируют;
-m webscan — Sn1per будет работать как обычный сканер WVS;
-b — использовать брутфорс при необходимости;
-f [FILE] — сканировать сразу несколько целей, которые перечислены в файле [FILE];
-m nuke — «ядерный» режим сканирования. Включает в себя брутфорс, обработку всех портов, OSINT, разведку и сохранение всех находок (loot);
-m massvulnscan — очень мощная функция в сочетании с -f. Массово сканирует на многие известные уязвимости все заданные цели. Если в тестируемой компании много хостов, эта опция будет весьма полезна;
-m discover — опция поиска всех хостов в заданной подсети и запуск сканирования на каждый из найденных. Если вы даже не знаете всех возможных целей, это будет очень полезно.
Пример репорта после сканирования очень большой, но он есть в репозитории автора.

Wapiti3
Цена: бесплатно
Wapiti — подвид американских оленей полностью бесплатный сканер веб-уязвимостей. На момент написания статьи последняя версия была 3.0.3, выпущенная 20 февраля этого года, то есть проект живой. Несмотря на скромные размеры сканера (всего 2,3 Мбайт в распакованном виде), набор функций у него довольно обширный. По официальному заявлению, сканер умеет обнаруживать следующие баги:

раскрытие содержимого файла (local file inclusion), в том числе бэкапов и исходного кода сайта;
SQL-инъекции и внедрение кода PHP/ASP/JSP;
отраженные и хранимые XSS;
инъекции команд ОС;
XXE Injection;
неудачные конфигурации .htaccess;
Open Redirect.
Wapiti3 поддерживает прокси, аутентификацию на целевом сайте, умеет не кричать на самопальные сертификаты SSL и может вставлять в запросы любые заголовки (в том числе кастомный User-Agent).

Использование инструмента весьма тривиально. После установки выполните в терминале (да, это консольное приложение) эту команду:

wapiti -u Wapiti просканирует весь сайт и вы...жения (UNKNOWN, LOW, MEDIUM, HIGH, CRITICAL).
 
В теме всё не уместилось ,так что продолжу здесь .

PVS-Studio
Цена: ~5250 евро с возможностью получить бесплатно (и легально)
Бывает, что в рамках bug bounty для исследования предлагают исходный код продукта. Однако хороших инструментов для автоматизации такой работы очень мало. Вручную же искать баги среди миллионов строк кода — занятие весьма неблагодарное, тем более что кодовая база в активном проекте регулярно обновляется.

Исследователь устает, да и в принципе не способен выследить большинство косяков сам. Другое дело — софт! И тут нам помогли наши соотечественники, создав PVS-Studio. Это весьма годный коммерческий статический анализатор.

PVS-Studio — хороший сканер уязвимостей
PVS-Studio — хороший сканер уязвимостей
PVS-Studio умеет находить ошибки в коде на C, C++, C# и Java. Для использования его нужно скачать с сайта разработчика и установить. Есть версии для Windows (в виде расширения для Visual Studio), Linux (пакеты deb и rpm) и macOS.

Сканер уязвимостей требует регистрации — ввести ключ, полученный от разработчика. И тут я встретил самую быструю и дружелюбную реакцию среди всех производителей коммерческих сканеров.

Пользоваться PVS-Studio можно разработчикам открытых проектов, публичным специалистам в ИБ и обладателям статуса Microsoft MVP. Если вы тоже занимаетесь ИБ — попробуйте получить такую лицензию.

Если вы используеыр плагин для Visual Studio, то все найденные ошибки будут выведены в лог при компиляции или принудительной проверке.

PVS-Studio нашел ошибку
PVS-Studio нашел ошибку
Ниже — пример использования. Я решил проверить код из своей прошлой статьи, и обнаружилась ошибка.

Ошибка в моем проекте
Ошибка в моем проекте
В общем, сканер действительно хороший и быстрый, а пользоваться им при определенных обстоятельствах можно и бесплатно. Жаль, для остальных случаев цена кусается.

Gitleaks
Цена: бесплатно
Как известно, чем крупнее продукт, тем больше для его разработки привлекается подрядчиков и тем больше рядовых сотрудников взаимодействуют с его кодом. И пока все действия выполняются на виртуальных машинах, не подключенных к сети, а всех входящих и выходящих проверяют на рентгеновском сканере, все выглядит хорошо. Но когда для разработки и тестирования приглашают подрядчиков, которые работают из дома, начинаются проблемы.

Часто в коде тестов QA-специалистов попадаются привилегированные ключи для доступа к инфраструктуре, а Security-инженеры забывают приватную информацию в своих публичных репозиториях для бэкапов. Если найти такой ключик, то взлом может закончиться, даже не начавшись, так что нельзя забывать про этот вектор атаки. Подобные данные можно найти по запросам вида company.com pass и company.com private на GitHub, а можно и с помощью автоматических скриптов.

Один из таких инструментов — это Gitleaks, который быстро и качественно найдет почти что угодно в любом открытом репозитории. Он умеет следующее:

проверять локальные изменения до коммита, чтобы избежать утечек данных еще на стадии разработки;
проверять любые репозитории GitHub/GitLab, в том числе приватные репозитории, если есть ключ доступа;
проверять все репозитории заданного пользователя или организации;
выдавать отчет в JSON, что удобно для последующего автоматического анализа;
интегрироваться с Git, чтобы предотвратить непреднамеренную утечку.
Установить его можно с помощью Docker.

docker pull zricethezav/gitleaks
docker run --rm --name=gitleaks zricethezav/gitleaks -v -r [REPO_URL]
Использование инструмента и все его ключи запуска описаны в справке к программе, но некоторые из них я продублирую здесь.

-v — детальный вывод сообщений;
—repo=[REPO] — ссылка на репозиторий для проверки;
—disk — клонировать репозиторий локально, чтобы не исчерпать всю память сразу;
—usename=[USER] и —password=[PASS] — указывает логин и пароль для доступа к приватному репозиторию;
—access-token=[TOKEN] — альтернатива авторизации по логину и паролю;
—commit=[COMMIT] — SHA коммита для анализа, если хочется проверить репозиторий в какой-то момент. По умолчанию проверяется текущее состояние;
—repo-path=[PATH] — анализировать локальный репозиторий по заданному пути;
—branch=[BRANCH] — анализировать только конкретный branch;
—depth=[NUM] — анализировать только [NUM] последних коммитов. Альтернатива — —commit-from=[COMMIT] и —commit-to=[COMMIT], проверяющие коммиты между заданными включительно;
—threads=[NUM] — сканировать в несколько потоков.
Чтобы выпотрошить все репозитории конкретной организации или пользователя, используйте следующие параметры:

—org=[ORG] — искать и анализировать все репозитории организации [ORG];
—user=[USER] — то же, но для пользователя;
—exclude-forks — исключить из анализа форки репозиториев. В них редко можно найти что-либо полезное, а вот сканирование эта опция ускорит значительно.
Для использования этой функции надо указать утилите, какой сервис мы хотим задействовать. Пока поддерживаются GitHub и GitLab. Задать сервис можно опцией —host=[SERVICE], где [SERVICE] — GitHub или GitLab.

В целом инструмент очень хороший и часто незаменимый. Рекомендую для использования в bug bounty и при пентестах.

QARK
Цена: бесплатно
Бывает, что нужно протестировать приложения для Android и iOS. И если с проверкой на секретные значения в коде все понятно, да и с анализом данных, сохраняемых в небезопасных местах, тоже, то некоторые баги выявить ой как непросто. Сюда попадает плохо реализованное шифрование (с помощью XOR, к примеру), некорректная обработка внешних ссылок, открытые activity, которые раскрывают приватную информацию, флаг android:d***ggable=true и так далее.

QARK (Quick App Review Kit) — бесплатный инструмент, созданный в компании LinkedIn, для быстрого анализа APK на некоторые уязвимости. Их список, как говорит разработчик, следующий:

некорректно экспортируемые элементы или неправильные права доступа к экспортируемым объектам;
уязвимые интенты;
неправильная работа с сертификатами X.509;
создание файлов, которые доступны другим приложениям, и работа с такими файлами;
дырявые activity;
использование захардкоженных приватных ключей;
слабые шифры;
tapjacking;
приложение разрешает бэкап своей приватной папки или имеет флаг android:d***ggable=true.
Утилита написана на Python и способна работать как на Linux, так и в Windows. Установить можно через pip или путем сборки исходников самостоятельно. Первый способ:

pip install --user qark
Второй способ:

git clone https://github.com/linkedin/qark
cd qark
pip install -r requirements.txt
pip install . --user
После установки можно выполнить qark —help, чтобы прочитать справку. А можно и не выполнять, сейчас я кратко перескажу главное.

Для анализа целого APK используется аргумент —apk FILE.APK:

qark --apk ./my_app.apk
Если вы решили тестировать с помощью этого инструмента свой (или декомпилированный чем-то другим) код, то используй аргумент —java:

qark --java ./my_app_src
Можно прогнать через сканер только какой-то отдельный файл:

qark --java ./my_app_src/Main.java
Особенность сканера в том, что к некоторым багам он умеет сразу сделать эксплоит, но эта функция слегка нестабильна и работает далеко не для всех багов, так что особенно надеяться на нее не стоит.

Burp Suite
Цена: бесплатно / 400 долларов
Было бы странно, если бы я не упомянул этот швейцарский нож из мира сканеров. Это целый комбайн, который умеет работать как прокси, сканер уязвимостей, паук-краулер, репитер запросов или платформа для множества плагинов.

Про полезные плагины для Burp читайте в статье «Лучшие расширения для Burp Suite».
Сканер разработала компания PortSwigger и выпустила в двух редакциях: Community (бесплатно) и Professional (400 долларов). Последняя отличается наличием в комплекте большого количества плагинов для Burp Intruder, наличием автоматического сканера и отсутствием ограничений в App Store.

Имеется неплохой GUI с удобными вкладками, автоматические модули для подбора паролей, идентификаторов, фаззинга, кодировщики и раскодировщики данных в разных форматах.

MobSF
Цена: бесплатно
Последний в этой статье, но не последний по ценности и наворотам сканер, который будет отлично смотреться в арсенале пентестера. Это еще один статический анализатор мобильных приложений, тоже написанный на Python, но работающий только в Windows.

MobSF запускается даже на «безголовом» сервере и открывает наружу порт 8000. Если зайти туда браузером, видим типичное веб-приложение.

Главная страница MobSF
Главная страница MobSF
Загружаем туда APK или IPA (да, приложения для iOS тоже поддерживаются) и ждем окончания анализа. После этого видим весьма обширный отчет о найденных багах с указанием возможности эксплуатации. Цветовая индикация серьезности тоже присутствует, и в целом интерфейс весьма дружественный, не хватает только поддержки русского.

Сканер умеет анализировать код, сертификат, которым подписано приложение, его манифест (AndroidManifest.xml) и позволяет выгрузить декомпилированный код для последующего анализа в других программах. Анализ выполняется как статически (декомпиляция и анализ полученного кода), так и динамически (запуск в виртуальном окружении).

Работа динамического анализатора сканера
Работа динамического анализатора сканера
Можно скачать инструмент на GitHub или установить по инструкции ниже.

Для начала нам нужен Python с pip. Далее установи rsa следующей командой:

python -m pip install rsa
Скачайте скрипт установки и выполните. Отвечайте на вопросы (установщик интерактивный) — и пользуйтесь на здоровье.

Можно также основную часть инструмента запустить на одной машине (это может быть Linux), а сервер для статического анализа — на другой (тут нужна Windows). Чтобы выключить эту возможность, поправьте MobSF/settings.py, указав в WINDOWS_VM_IP адрес вашей виртуальной машины с RPC-сервером.

В целом инструмент очень хороший и удобный. Правда, лично у меня установка вызвала некоторые проблемы — из-за битых зависимостей.

Сводная таблица
Лучший сканер уязвимостей

Выводы
Как видите, вовсе не обязательно ковырять сложные веб-приложения с тысячами страниц и прочий софт вручную. Вместо этого можно пойти по своим делам, сделать что-нибудь по дому. Огромная часть работы багхантера уже автоматизирована, так что, пока все сидят дома, не упустите свой шанс заработать денежку на маски и антисептики. Или хотя бы на платную лицензию к сканеру!
 
Назад
Сверху