Лучшие сканеры уязвимостей
Содержание
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 [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 Sqlmap
GUI 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] может быть D***G, 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]. Например:
trivy python:3.4-alpine
Результат — ниже.
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).
Содержание
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 [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 Sqlmap
GUI 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] может быть D***G, 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]. Например:
trivy python:3.4-alpine
Результат — ниже.
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).
Комментарий