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

На модерации Отложенный

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

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

<ins class="adsbygoogle" data-ad-client="ca-pub-5859973253765166" data-ad-slot="2910210131" data-ad-format="auto"></ins>

Айтишники, как известно, стремятся все автоматизировать, и хакеры в этом не отстают. Существуют автоматические сканеры уязвимостей — чтобы можно было запустить, откинуться на спинку кресла и потягивать кофе (или пивко), пока они сделают целую гору работы. Поиск уязвимостей с их использованием сводится к тому, чтобы отдать сканеру адрес цели и нажать большую кнопку 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 [URL]

Wapiti просканирует весь сайт и выдаст соответствующий отчет. Чтобы исключить ненужные адреса (например, logout), добавьте параметр -x [URL], а для авторизованного сканирования требуются куки. Для их использования сначала сгенерируйте JSON-файл с помощью специального скрипта. Он лежит в bin/wapiti-getcookie и запускается следующим образом:

wapiti-getcookie -u [LOGIN_URL] -c cookies.json -d "username=[USER]&password=[PASS]"

[LOGIN_URL] — это адрес страницы логина, а [USER] и [PASS] — логин и пароль соответственно. Затем подключаем готовый файл к сканеру:

wapiti -u [URL] -x [EXCLUDE] -c cookies.json

Вот и все. Отчет генерируется в HTML и сохраняется в /home/[USER]/.wapiti/generated_report/[TARGET_HOST]_[DATE]_[ID].html, где [USER] — ваш логин, [TARGET_HOST] — целевой сайт, [DATE] — дата сканирования и [ID] — четыре цифры. Можно открыть в браузере и посмотреть.

Nikto

  • Цена: бесплатно

Nikto — весьма популярный сканер веб-приложений, изначально встроенный в Kali Linux. Он крайне простой, даже не прячется от WAF прочего зловредного ПО на сайте, но довольно точен. Умеет находить:

  • странные и необычные заголовки;
  • утечки inode через заголовок ETag;
  • использование WAF;
  • множество интересных файлов, к которым не стоило бы открывать доступ.

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

Имеет кучу параметров. Самый главный из них — -h [HOST], задающий цель. Если цель умеет в SSL, стоит указать параметр -ssl. Также есть формат вывода (-Format) и возможность работать с Metasploit. Инструмент немного устарел, но по-прежнему годится для разведки и взлома совсем уж безнадежных целей.

OWASP ZAP

  • Цена: бесплатно

Сканер той самой организации OWASP, которая призвана сделать наш с вами интернет безопаснее. Впрочем, пока не сильно успешно. А еще, кстати, есть список OWASP Top 10, где собраны десять самых распространенных багов в веб-приложениях. ZAP (Zed Attack Proxy) — бесплатный инструмент для тестирования на проникновение и поиска уязвимостей в веб-приложениях. Его главные фичи:

  • MITM-прокси для захвата трафика браузера;
  • пассивный и активный сканеры уязвимостей;
  • паук-краулер, который может работать даже с AJAX;
  • фаззер параметров;
  • поддержка плагинов;
  • поддержка WebSocket.

У программы есть русский интерфейс (частично), неплохой GUI и инструкция по пользованию для новичков. При запуске показывает советы

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

Сканирование требует только указать адрес сайта. Воистину «нажал и взломал»!

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

По эффективности обнаружения багов ZAP очень хорош, использую его параллельно с Vega и Acunetix. Однозначно рекомендую.

Sqlmap

  • Цена: бесплатно

Sqlmap — это, наверное, самый известный сканер для поиска SQL-инъекций. Его разработкой занимаются Мирослав Штампар (Хорватия) и Бернардо Дамеле (Италия). Особенность этого сканера в том, что он может не только найти ошибку, но и сразу эксплуатировать ее, причем в полностью автоматическом режиме. Умеет работать с БД MySQL, MS SQL, PostgreSQL и Oracle.

GUI SqlmapGUI Sqlmap

Acunetix WVS

  • Цена: базовая версия — от 4495 долларов за один сайт (и растет по мере количества сайтов, которые вы планируете сканировать). Расширенная версия — от 6995 долларов за один сайт (но умеет намного больше).

Было бы странно, если бы эта подборка обошлась без коммерческих сканеров. Именно Acunetix WVS недавно нашел баг у Google, а одноименная компания-разработчик — один из лидеров рынка.

Сам сканер — это веб-приложение, и его можно ставить на «безголовый» сервер (то есть вообще без графической оболочки). Есть поддержка и Windows, и Linux. К сожалению, сам сканер кому попало не продается, так что «кто попало» выкручивается с помощью тематических сайтов. К последней, 13-й версии кряка нет, поэтому сейчас у хакеров в ходу 12-я версия.

Установка — классическая для Windows-приложений. Там задается логин и пароль к веб-интерфейсу, также есть возможность открыть удаленный доступ к сканеру (удобно поставить его на VPS).

После установки видим главную страницу интерфейса. Интерфейс простой, разберется любой школьник. Есть цветовое определение тяжести найденного бага и готовый рейтинг CVE. Пользоваться сканером действительно удобно и приятно.

Сканирование требует только указать адрес цели (на вкладке Targets) и нажать кнопку Scan, опционально задав время начала. Сканер имеет несколько профилей сканирования, может сканировать только в рабочее или нерабочее время и, по словам производителя, умеет находить почти все виды багов. В этот список входят:

  • XSS, в том числе DOM;
  • SQL-инъекции, кроме слепых (blind);
  • CSRF;
  • обход директории;
  • XXE Injection;
  • небезопасная сериализация;
  • проблемы с SSL-сертификатами (скорое истечение срока годности, слабые шифры);
  • проблемы с CORS.

Сканер действительно быстрый и качественный, для участия в bug bounty подходит идеально. Жаль, цена кусается. Но я просто обязан его порекомендовать, это один из лучших сканеров уязвимостей.

Vega

  • Цена: бесплатно

Еще один сканер с открытым исходным кодом, разработан в компании Subgraph. Да, той самой Subgraph, которая сделала клиент Tor на чистой Java. Удивительно, но Vega бесплатный, а по возможностям ничуть не хуже Acunetix.

По заверениям производителя и собственным наблюдениям, сканер хорошо ищет следующие баги:

  • SQL-инъекции;
  • XSS;
  • XXE Injection;
  • Integer Overflow/Underflow (кстати, единственный сканер, который их нормально ищет);
  • раскрытие содержимого файла (local file inclusion);
  • внедрение кода;
  • path traversal;
  • внедрение HTTP-заголовков;
  • плохие настройки CORS.

Сканер написан на Java, а значит, работает везде, где есть Java VM, включая, конечно, Windows и Linux. Недостатки: нужна та самая JVM, к тому же здесь нет веб-интерфейса.

Запуск сканирования тоже тривиален, но, в отличие от других сканеров, у Vega много настроек. А скрыты эти настройки за кнопкой Next.

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

Но и это еще не все! Есть поддержка авторизованного сканирования, причем без необходимости добавлять cookies из консоли.

Короче, благодаря удобному GUI, качественной работе и куче возможностей это сейчас лучший выбор для пользователя Windows. Если же чего-то не хватит, всегда можно написать свой модуль на JavaScript.

Было бы неправильно не упомянуть в этой подборке Nmap. Сам по себе он на звание сканера уязвимостей не тянет, но у него есть скриптовой движок. Даже «из коробки» он умеет проверять популярные баги, но вы легко можете сделать этот глаз еще зорче с помощью своих (или чужих) скриптов. Как их создавать, мы уже писали, а найти скрипт на любой вкус можно на GitHub.

Nessus

  • Цена: бесплатно / 3120 долларов

Nessus — коммерческий сканер безопасности американской компании Tenable. Также есть облачный сканер Tenable.io, на котором я не буду останавливаться подробно.

У сканера три редакции: Essentials (для всех и бесплатно), Professional (3120 долларов в год) и Tenable.io, который, по сути, представляет собой отдельный продукт со своей ценой. При этом разница между редакциями Essentials и Professional лишь в количестве доступных для сканирования адресов и наличии поддержки по email.

Сам сканер довольно увесистый (установщик больше 120 Мбайт, а после активации скачивает еще много дополнений), и скачать его можно только после регистрации, во время которой на почту придет код активации.

Nessus скачивает дополненияNessus скачивает дополнения

Инициализация весьма продолжительная, у меня заняла порядка двадцати минут.

Когда с этим будет покончено, можно начинать пользоваться веб-панелью. Nessus ищет следующие проблемы:

  • раскрытие версий ПО на хостах;
  • активная малварь;
  • уязвимость к брутфорсу;
  • слабые методы авторизации;
  • открытые данные на целях (возможность перечислить учетные записи и группы, удаленный реестр и сетевые папки);
  • некорректные разрешения и политики безопасности.

Может работать как краулер.

Лично мне не очень понравился, хотя бы жесткими рамками бесплатной версии.

Kube-hunter

  • Цена: бесплатно

Специализированный сканер уязвимостей для анализа безопасности кластеров Kubernetes. Распространяется по свободной лицензии Apache.

Этот охотник ищет косяки в удаленных кластерах, а затем одним метким выстрелом пробивает защиту. Пользоваться им следует с осторожностью, потому что в погоне за добычей он может что-нибудь испортить. Впрочем, об этом можно не беспокоиться, пока вы работаете с ним в «обыкновенном» режиме. В таком режиме он будет находить дыры, но не полезет в них сам. Если же вы решили доверить все в руки Kube-hunter, есть режим «активной» охоты.

Скачать сканер можно на GitHub, он написан на Python и нормально работает почти в любой ОС. Впрочем, можно использовать и Docker:

docker pull aquasec/kube-hunter docker run --rm aquasec/kube-hunter [ARGUMENTS]

После скачивания и установки зависимостей запускаем. Весь набор функций можно увидеть только с помощью дополнительных ключей запуска. Вот они:

  • —remote [ADDRESS] — сканировать кластер по адресу;
  • —cidr [CIDR] — найти и атаковать все кластеры в диапазоне адресов;
  • —active — тот самый режим активной охоты. Используйте, если в разрешении на пентест указано, что вы не несете ответственности за сохранность инфраструктуры заказчика. Короче, я предупредил;
  • —mapping — вывести все найденные узлы Kubernetes. Полезно с опцией —cidr;
  • —log [LEVEL] — выводить сообщения по уровню важности. [LEVEL] может быть DEBUG, INFO (по умолчанию) или WARNING;
  • —report [TYPE] — указывает формат вывода отчета. Может быть json, yaml или plain. Эту опцию можно сочетать со следующей;
  • —dispatch [MODE] — указывает, куда нужно отправить отчет после завершения сканирования. По умолчанию stdout, но можно отправить и по HTTP, тогда параметром нужно передать —dispatch http. А чтобы Kube-hunter знал, куда именно отправлять результаты, объясните ему это в переменных среды:
    KUBEHUNTER_HTTP_DISPATCH_URL (по умолчанию — https://localhost) KUBEHUNTER_HTTP_DISPATCH_METHOD (по умолчанию — POST)

Очень удобная функция, которой нет в других сканерах, — возможность просматривать результаты работы на онлайновом дашборде, даже если сканер работает за NAT или еще как-то отгорожен от сети. Для использования фичи нужно зарегистрироваться на сайте компании.

Скажу еще, что Kube-hunter можно использовать не только против удаленной цели. Еще его можно установить как pod и сканировать изнутри. Об этом подробнее расписано в файле readme.

Trivy

  • Цена: бесплатно

Еще один сканер безопасности контейнеров того же разработчика (Aquasec). Для bug bounty пригоден куда меньше предыдущего, но довольно точен и быстр. Специализируется конкретно на Docker. Устанавливается чуть сложнее, чем Kube-hunter. Для установки в Debian, Ubuntu и Kali можно использовать следующий скрипт:

sudo apt-get install wget apt-transport-https gnupg lsb-release wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | sudo apt-key add - echo deb https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main | sudo tee -a /etc/apt/sources.list.d/trivy.list sudo apt-get update sudo apt-get install trivy

После этого можно сканировать. Для этого просто выполните trivy [IMAGE_NAME]. Например:

Результат — ниже.

Total: 1 (UNKNOWN: 0, LOW: 0, MEDIUM: 1, HIGH: 0, CRITICAL: 0) +---------+------------------+----------+-------------------+---------------+--------------------------------+ | LIBRARY | VULNERABILITY ID | SEVERITY | INSTALLED VERSION | FIXED VERSION | TITLE | +---------+------------------+----------+-------------------+---------------+--------------------------------+ | openssl | CVE-2019-1543 | MEDIUM | 1.1.1a-r1 | 1.1.1b-r1 | openssl: ChaCha20-Poly1305 | | | | | | | with long nonces | +---------+------------------+----------+-------------------+---------------+--------------------------------+ Можно сканировать образы в виде файлов: trivy --input image.tar

За формат вывода отвечает ключ -f, который можно выставить в json. Есть также поддержка вывода по кастомному шаблону.

Чтобы показать только определенные типы найденных уязвимостей, нужно указать ключ —severity и через запятую перечислить категории для отображения (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.

trivy --input image.tar 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:debuggable=true и так далее.

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

  • некорректно экспортируемые элементы или неправильные права доступа к экспортируемым объектам;
  • уязвимые интенты;
  • неправильная работа с сертификатами X.509;
  • создание файлов, которые доступны другим приложениям, и работа с такими файлами;
  • дырявые activity;
  • использование захардкоженных приватных ключей;
  • слабые шифры;
  • tapjacking;
  • приложение разрешает бэкап своей приватной папки или имеет флаг android:debuggable=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-сервером.

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

Сводная таблица

Лучший сканер уязвимостей

Выводы

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

Еще по теме: Лучшие площадки для обучения взлому