Бесплатно Экспресс-аудит сайта:

11.08.2022

10 лучших инструментов тестирования безопасности с открытым исходным кодом

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

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

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

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

  1. имеют открытый исходный код и, следовательно, доступны каждому;
  2. хорошо известны, поэтому имеют множество ресурсов поддержки;
  3. охватывают широкий спектр ниш и типов тестов.

1. Kali, Parrot и BlackArch

Kali — это полноценный дистрибутив Linux, состоящий из сотен инструментов. Также стоит рассмотреть такие дистрибутивы для пентестов, как Parrot и BlackArch .

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

2. Фреймворк Metasploit

В вопросах взаимодействия с эксплойтами, наиболее известным и доступным инструментом, пожалуй, является Metasploit Framework . С помощью Metasploit можно использовать, упаковывать и даже писать и распространять эксплойты. Поэтому для желающих проверить восприимчивость к известным эксплойтам Metasploit может стать легким и удобным инструментом.

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

3. Прокси-сервер Zed Attack

Тестирование приложений отличается от тестирования на уровне хоста или сети. Одним из важнейших инструментов для проверки приложений является прокси, который позволяет перехватывать, просматривать, изменять, воспроизводить и автоматизировать запросы веб-приложений, т.е. HTTP и HTTPS. Zed Attack Proxy (ZAP) от OWASP делает именно это.

При самом простом использовании ZAP действует как HTTP прокси-сервер, который находится между вашим браузером и сайтом, который вы тестируете. Основное различие между ZAP и любым другим HTTP прокси-сервером (например, Squid в режиме Explicit) заключается в том, что ZAP завершает и проксирует трафик, а не позволяет браузеру туннелировать TLS-соединения.

Более продвинутые функции включают автоматический спайдинг, мониторинг и контроль WebSocket, автоматическое обнаружение проблем и фаззинг.

4. Browser Exploitation Framework

В зависимости от типа теста уловки против пользователей могут не входить в его рамки. Однако если пользователи входят в сферу тестирования, необходим способ передачи трафика из внешней сети во внутреннюю. Одним из вариантов является Browser Exploitation Framework (BeEF), который дает возможность тестировщикам использовать браузер пользователя в качестве стартовой площадки для атак.

BeEF позволяет установить крючок в браузере пользователя - например, обманом заставить его перейти по контролируемой вами ссылке - после чего предоставит вам возможность контроля над вкладками браузера, туннелирования трафика через браузер и т.д. При отсутствии у вас доступа к внутренней сети данный способ может его обеспечить.

5. Hydra, John the Ripper и Hashcat

Иногда вам просто нужно взломать пароль: пароли Windows, Linux и Unix, SSH-пароли , пароли приложений и т.д. Существует множество программ для взлома. Можно рассмотреть следующие:

  • Hydra отлично справляется с параллельным подбором удаленных или онлайн-паролей;
  • John the Ripper отлично справляется с простым взломом в автономном режиме;
  • Hashcat отличается высокой производительностью при взломе локальных паролей и поддерживает широкий спектр различных форматов.

6. Mimikatz

Программа Mimikatz предназначена для извлечения секретной информации из памяти Windows. Если у вас есть доступ к узлу Windows, вы можете получить из него конфиденциальную информацию для использования в других целях - например, для выполнения следующих действий:

  • установить постоянство на этом или других устройствах - например, путем получения хэшей паролей для последующего взлома в автономном режиме;
  • расширить свое влияние - к примеру, путем извлечения билетов Kerberos;
  • использовать хост Windows для получения более расширенного и длительного доступа.

7. Wireshark и TShark

Анализатор сетевых протоколов Wireshark — это отличный способ понять, что именно происходит с трафиком между вашим устройством и удаленным местоположением. Если вам нужно проследить за сетевым трафиком в удаленном месте - например, после того как вы создали плацдарм во внутренних системах - TShark и tcpdump позволяют перехватывать пакеты через командную строку.

8. Sqlmap

Полезно иметь специализированные инструменты для обнаружения проблем с SQL-инъекциями. Sqlmap — это утилита командной строки, которая помогает автоматизировать процесс внедрения SQL. Она может определить, какие параметры, заголовки или элементы данных восприимчивы к SQL-инъекциям, а также какие типы эксплойтов возможны.

9. SoapUI

Большинство веб-сайтов построено на основе API, которые реализуют функциональность и бизнес-логику без статических данных, часто асинхронным способом. Это отлично подходит для гибкого дизайна сайта и модульности. Однако, это означает, что безопасность базовых API неотъемлемо связана с безопасностью всего сайта. Как проверить безопасность API? Здесь могут помочь инструменты тестирования приложений, но наличие инструмента для тестирования API может также оказаться полезным.

SoapUI предоставляет интерфейс для тестирования API. Он позволяет перехватывать и изменять запросы в процессе выполнения, поддерживает такие методы, как фаззирование параметров, и изначально понимает различные форматы данных, например, JSON и GraphQL.

10. Apktool и MobSF

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

  • поиск секретных данных, скрытых в приложении, таких как ключи, пароли и т.д.;
  • понимание конечных точек API, используемых мобильным приложением;
  • понимание общего процесса работы.

Apktool позволяет деконструировать и распаковывать мобильные бинарные файлы Android, а Mobile Security Framework (MobSF) позволяет выполнять анализ в мобильном приложении Android или iOS.