Практически весь сегмент бизнеса перешел в среду информационных систем и технологий, что позволило автоматизировать рутинные задачи, построить сложную цепочку коммуникаций, а так же увеличить прибыль. Были построены собственные защищенные контуры корпоративной инфраструктуры, а так же сервисы, которые находятся внутри, но принимают соединения и снаружи.
Многие нарушители нацелены на них, поэтому достаточно важно понимать, какие инструменты могут быть использованы и какие методы OSINT они используют.
Что такое OSINT?
OSINT или же Open-source Intellegence направление поиска и анализа информации по открытым данным. Обычно обьем данных хаотичен и не структурирован, но можно условно разделить информацию на технические и прикладные данные.
В материале рассмотрим только технические аспекты разведки OSINT. Многие машины, которые используются для создания инфраструктуры контура компании хранят чувствительную информацию, которая может быть использована для атаки на нее.
Один из методов аналитики заключается в исследовании внешнего периметра инфраструктуры и поиска всех возможных точек входа. Алгоритм работы представляет собой пошаговый список:
- Поиск домена организации и определение его основных характеристик (использование CDN, NS-записи, ASN организации, SSL-сертификат, IP-адрес), которые позволят сформировать зацепку, при исследовании инфраструктуры;
- На основе найденных артефактов необходимо исследовать все возможные поддомены организации;
- Найти альтернативные домены;
- Исследовать сертификат организации по открытым базам crt.sh;
- Выполнить запрос к NS-сервер и попытаться собрать записи.
Рассмотрим этапы более подробно и научимся использовать инструменты для каждого из них.
Исследование доменной записи
При нехватке собственных мощностей можно воспользоваться облачными серверами от Serverspace, для этого перейдем к созданию сервера, на любой из двух платформ vStack cloud или же VMware cloud. Нажмем на кнопку Создать сервер и выберем конфигурацию, подходящую под наши задачи, затем нажмем кнопку Создать:
Представим, что целью исследования является некая компания с доменом hackeru.com, который мы нашли, при обычном поисковом запросе. Проанализируем доменную запись с помощью утилиты whois или веб-сервиса, обратив внимание на основные атрибуты домена. Утилиту можно установить через пакетный менеджер:
Сразу видим необходимые артефакты, которые стоит подчеркнуть – несколько NS записей. К сожалению, здесь больше информации о регистраторе, чем о регистранте. Выполним классический запрос к DNS-серверу и резолвнем доменную запись hackeru.com:
На сервере лежит запись типа А, что hackeru.com резолвиться в 52.21.251.215. Часто бывает такое, что на одну организацию может прийтись несколько белых адресов одной сетки. Запросим PTR записи всех адресов в сетке 52.21.251.0/24. Ожидаемым результатом будет резолвнутые поддомены или аналогичные записи, которые принадлежат серверу DNS.
for i in {1..254}; do
dig @NS-1744.AWSDNS-26.CO.UK -x 51.21.251.$i +short
done
Попробуем сделать запрос на трансфер записей к DNS-серверу, это достаточно популярная проблема конфигурации, которая позволяет выгрузить все записи сервера:
Сервер сконфигурирован корректно, поэтому не удалось напрямую запросить записи, однако, для некоторых серверов это доступно и обычно выглядит следующим образом:
Это позволяет узнать сенситивную информацию о владельце домена, а так же хранящихся записях, которые могут быть отличными точками входа для нарушителей.
Однако одним из наиболее эффективных способов является поиск поддомена из открытых источников и способом брутфорса. Для этого можно использовать целый набор утилит:
- subfinder – утилита для поиска по открытым источникам Shodan, Censys и поисковым движкам;
- assetfinder – утилита, так же для поиска по открытым данным, однако, с использованием базы crt.sh. Именно там хранятся все сведения о доменах, сертификатах и их открытых ключах;
- altdns – утилита для брутфорса, которая позволяет искать альтернативные записи, путем добавления к списку уже существующих различных символов;
- massdns – утилита для быстрого резолва;
- gau – агрегатор URL через поисковые движки.
Для эффективной работы результат каждого решения объединим в один файл и исключим дубликаты, после чего произведем resolve и соберем список публичных IP-адресов. Соберем данные с движков:
assetfinder -- subs-only hackeru.com > ~/assetfinder && \
cat ~/subfinder. log ~/assetfinder | cut -f1 -d , | sort -u > unique-subdomain.txt
Получился список из 23 уникальных поддоменов, которые можно резолвнуть и найти соответствующие им адреса. Но возможно в открытых источниках недостаточно информации о новых доменах или на них не стоят сервисы требующие SSL. Для этого воспользуемся altdns и massdns.
Для работы с утилитой необходим словарь, который будет использоваться для перебора:
Где параметр -i это источник доменов, -o файл вывода мутаций, -w словарь для мутаций, -r позволит резолвить все записи, а -s запишет мутации, которые прошли резолв.
После чего все доменные имена можно поместить в один файл и массово произвести резолв утилитой massdns:
Набор IP-адресов представляет собой список, который можно использовать при тестировании на проникновение.