Всем привет! Сегодняшняя статья от специалистов нашего отдела анализа защищенности «Солара» посвящена разработанному ими ПО для поиска и верификации уязвимостей.

Нам в отделе анализа защищенности довольно часто приходится искать и эксплуатировать уязвимости, которые, на первый взгляд, сложно выявить. Например, практически ни один проект не обходится без Blind-SSRF или Out-Of-Bound XXE, встречаются даже Blind-RCE. В этом материале мы расскажем о инструменте, который поможет пентестерам значительно упростить обнаружение разного типа уязвимостей. Но обо всем по порядку.

Наиболее простым маркером наличия уязвимости может быть получение DNS-запроса с удаленного сервера. При этом уникальность доменного имени в запросе позволяет гарантировать его отсутствие в кэше публичных DNS-серверов, что, в свою очередь, облегчает обработку и логирование этого запроса специально сформированным и настроенным DNS-сервером. Однако популярные DNS-серверы – например, BIND, PowerDNS и CoreDNS – не предоставляют достаточно удобных механизмов работы со своими журналами DNS-серверов, которые бы позволяли сэкономить время на поиске необходимой информации в файлах логов.

В связи с этим многие специалисты по анализу защищенности обращаются к таким утилитам, как dnschef и Burp Collaborator. Это довольно популярные решения, которые закрывают базовые потребности для работы, но и у них есть свои недостатки.

Взаимодействие с программным обеспечением dnschef осуществляется только через консоль операционной системы, что делает его неудобным для работы группы специалистов. Это применимо также к программному обеспечению и «InteractSH», которое используется для поиска Blind-SSRF уязвимостей. А для использования Burp Collaborator требуется платная версия ПО. В случае с ним играет роль еще одна немаловажная деталь: это ПО является облачным решением, и для обработки данных заказчиков не всегда считается приемлемым, так как использующий его специалист не может проконтролировать, каким образом третья сторона обрабатывает и хранит эти данные.

Регулярно сталкиваясь на практике со всеми этими проблемами, мы приняли решение разработать собственный DNS-сниффер с прицелом на удобство при совместной работе команды ИБ-специалистов, и сегодня готовы поделиться им с профессиональным сообществом.

Основными преимуществами нашего решения являются:

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

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

  • DNS-сниффер. Это основой модуль системы, который осуществляет обработку, логирование, фильтрацию и отображение результатов DNS-запросов.
  • InteractSH. Это классический и всем известный InteractSH, перенесенный в удобный формат веб-приложения, с возможностью запуска и остановки серверов, а также передачи через него файлов. На момент публикации статьи в системе реализованы следующие основные протоколы:

    • HTTP/S;
    • TCP;
    • SMTP;
    • LDAP;
    • FTP.
  • DNSRebind. Модуль для перезаписи DNS-записей с целью обхода механизмов фильтрации на стороне сервера.
  • DNS Blackhole. Модуль черных списков. Во время работы с DNS специалисты сталкиваются с ботами, которые пытаются подбирать доменные имена или же многократно совершают запросы на одно и то же доменное имя. Для отключения журналирования подобных запросов в системе имеется возможность установки фильтра отображаемой информации по IP- или DNS-имени из запросов.

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

На Github уже доступны исходные коды и необходимая документация.

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

Мы будем благодарны вам за любую обратную связь по нашему продукту! Оставляйте нам свои предложения и bug-reporting в issue :)