День 15. Пассивная разведка
1. Введение
В этой комнате, после того как мы дадим определение пассивной разведке и активной разведке, мы сосредоточимся на основных инструментах, связанных с пассивной разведкой. Мы изучим три инструмента командной строки:
Мы используем whois
для запроса записей WHOIS, в то время как мы используем nslookup
и dig
для запроса записей базы данных DNS . Все эти записи общедоступны и, следовательно, не оповещают цель.
Мы также изучим использование двух онлайн-сервисов:
Эти два онлайн-сервиса позволяют нам собирать информацию о нашей цели без прямого подключения к ней.
2. Пассивная и активная разведка
До рассвета компьютерных систем и сетей, в «Искусстве войны» Сунь Цзы учил: «Если вы знаете врага и знаете себя, ваша победа не будет подвергаться сомнению». Если вы играете роль нападающего, вам нужно собрать информацию о ваших целевых системах. Если вы играете роль защитника, вам нужно знать, что ваш противник обнаружит о ваших системах и сетях.
Разведку (recon) можно определить как предварительное обследование для сбора информации о цели. Это первый шаг в The Unified Kill Chain (цепочка атаки) для получения первоначального плацдарма в системе. Мы делим разведку на:
В пассивной разведке вы полагаетесь на общедоступные знания. Это знания, к которым вы можете получить доступ из общедоступных ресурсов, не вступая напрямую в контакт с целью. Думайте об этом так, как будто вы смотрите на целевую территорию издалека, не ступая на эту территорию.
Пассивная разведывательная деятельность включает в себя множество мероприятий, например:
- Поиск записей DNS домена на публичном DNS- сервере.
- Проверка объявлений о вакансиях, связанных с целевым сайтом.
- Чтение новостных статей о целевой компании.
Активная разведка, с другой стороны, не может быть достигнута столь скрытно. Она требует прямого взаимодействия с целью. Думайте об этом так, как будто вы проверяете замки на дверях и окнах, среди других потенциальных точек входа.
Примеры активной разведывательной деятельности включают в себя:
- Подключение к одному из серверов компании, например HTTP , FTP и SMTP .
- Звонок в компанию с целью получения информации ( социальная инженерия ).
- Проникновение на территорию компании под видом ремонтника.
Учитывая инвазивный характер активной разведки, можно быстро нарваться на юридические проблемы, если не получить надлежащего юридического разрешения.
3. WHOIS
WHOIS — это протокол запросов и ответов, который следует спецификации RFC 3912. Сервер WHOIS прослушивает порт TCP 43 на предмет входящих запросов. Регистратор доменов несет ответственность за ведение записей WHOIS для доменных имен, которые он арендует. Сервер WHOIS отвечает различной информацией, связанной с запрошенным доменом. Особый интерес представляет то, что мы можем узнать:
- Регистратор: Через какого регистратора было зарегистрировано доменное имя?
- Контактная информация регистранта: имя, организация, адрес, телефон и т. д. (если только она не скрыта с помощью сервиса конфиденциальности)
- Даты создания, обновления и истечения срока действия: Когда доменное имя было впервые зарегистрировано? Когда оно было обновлено в последний раз? И когда его необходимо продлевать?
- Сервер имен: какой сервер следует запросить для разрешения доменного имени?
Чтобы получить эту информацию, нам нужно использовать whois
клиент или онлайн-сервис. Многие онлайн-сервисы предоставляют whois
информацию; однако, как правило, быстрее и удобнее использовать ваш локальный whois-клиент. Используя AttackBox (или вашу локальную машину Linux, например Parrot или Kali), вы можете легко получить доступ к своему whois-клиенту на терминале. Синтаксис: whois DOMAIN_NAME
, где DOMAIN_NAME
— домен, о котором вы пытаетесь получить больше информации. Рассмотрим следующий пример выполнения whois tryhackme.com
.
Когда был зарегистрирован TryHackMe.com?
Кто является регистратором TryHackMe.com?
Какую компанию использует TryHackMe.com для серверов имен?
4. nslookup and dig
В предыдущей задаче мы использовали протокол WHOIS для получения различной информации о доменном имени, которое мы искали. В частности, нам удалось получить DNS- серверы от регистратора.
Найдите IP-адрес доменного имени с помощью nslookup
, что означает Name Server Look Up. Вам нужно ввести команду nslookup DOMAIN_NAME
, например, nslookup tryhackme.com
. Или, в более общем случае, вы можете использовать nslookup OPTIONS DOMAIN_NAME SERVER
. Вот эти три основных параметра:
- OPTIONS содержит тип запроса, как показано в таблице ниже. Например, вы можете использовать
A
для адресов IPv4 иAAAA
для адресов IPv6. - DOMAIN_NAME — это доменное имя, которое вы ищете.
- SERVER — это DNS- сервер, который вы хотите запросить. Вы можете выбрать любой локальный или публичный DNS- сервер для запроса. Cloudflare предлагает
1.1.1.1
и1.0.0.1
, Google предлагает8.8.8.8
и8.8.4.4
, а Quad9 предлагает9.9.9.9
и149.112.112.112
. Существует множество других публичных DNS- серверов , из которых вы можете выбрать, если вам нужны альтернативы DNS- серверам вашего интернет-провайдера.
Например, nslookup -type=A tryhackme.com 1.1.1.1
(или , nslookup -type=a tryhackme.com 1.1.1.1
поскольку он нечувствителен к регистру) можно использовать для возврата всех адресов IPv4, используемых tryhackme.com.
Записи A и AAAA используются для возврата адресов IPv4 и IPv6 соответственно. Этот поиск полезен с точки зрения тестирования на проникновение. В приведенном выше примере мы начали с одного доменного имени и получили три адреса IPv4. Каждый из этих IP-адресов можно дополнительно проверить на предмет уязвимостей, предполагая, что они находятся в пределах области тестирования на проникновение.
Допустим, вы хотите узнать о серверах электронной почты и конфигурациях для определенного домена. Вы можете выполнить nslookup -type=MX tryhackme.com
. Вот пример:
Мы видим, что текущая конфигурация электронной почты tryhackme.com использует Google. Поскольку MX ищет серверы Mail Exchange, мы замечаем, что когда почтовый сервер пытается доставить почту @tryhackme.com
, он пытается подключиться к aspmx.l.google.com
, который имеет порядок 1. Если он занят или недоступен, почтовый сервер попытается подключиться к следующим по порядку серверам почтового обмена, alt1.aspmx.l.google.com
или alt2.aspmx.l.google.com
.
Google предоставляет перечисленные почтовые серверы; поэтому мы не должны ожидать, что почтовые серверы будут работать под управлением уязвимой версии сервера. Однако в других случаях мы можем обнаружить почтовые серверы, которые недостаточно защищены или исправлены.
Такие фрагменты информации могут оказаться ценными, поскольку вы продолжаете пассивную разведку своей цели. Вы можете повторить подобные запросы для других доменных имен и попробовать разные типы, например -type=txt
. Кто знает, какую информацию вы можете обнаружить по пути!
Для более сложных DNS- запросов и дополнительных функций вы можете использовать dig
, аббревиатуру от «Domain Information Groper», если вам интересно. Давайте используем dig
для поиска записей MX и сравнения их с nslookup
. Мы можем использовать dig DOMAIN_NAME
, но для указания типа записи мы бы использовали dig DOMAIN_NAME TYPE
. При желании мы можем выбрать сервер, к которому хотим обратиться, используя dig @SERVER DOMAIN_NAME TYPE
.
- SERVER — DNS- сервер, к которому вы хотите отправить запрос.
- DOMAIN_NAME — это доменное имя, которое вы ищете.
- TYPE содержит тип записи DNS , как показано в представленной ранее таблице.
Проверьте записи TXT thmlabs.com. Какой там флаг?
5. DNSDumpster
Чтобы упростить поиск, можно воспользоваться онлайн-сервисом, таким как DNSDumpster, который дает подробные ответы на DNS-запросы. При запросе tryhackme.com сервис возвращает поддомен blog.tryhackme.com, а также выводит данные в виде удобных таблиц и графиков, включая информацию о прослушивающих серверах.
Результаты поиска tryhackme.com в DNSDumpster включают список DNS-серверов с преобразованными в IP-адреса именами и их геолокацией, записи MX с соответствующими IP-адресами и дополнительной информацией о владельцах, а также записи TXT. Таким образом, одного запроса достаточно для получения всей необходимой информации.
DNSDumpster также будет представлять собранную информацию графически. DNSDumpster отобразил данные из таблицы ранее в виде графика. Вы можете видеть DNS и MX, разветвляющиеся на соответствующие им серверы, а также показывающие IP-адреса.
В настоящее время существует бета-функция, которая также позволяет экспортировать график. Вы можете манипулировать графиком и перемещать блоки, если это необходимо.
Найдите tryhackme.com на DNSDumpster. Какой интересный поддомен вы бы обнаружили в дополнение к www и blog? (remote.tryhackme.com)
6. Shodan.io
Когда вам поручено провести тест на проникновение против определенных целей, как часть фазы пассивной разведки, такой сервис, как Shodan.io, может быть полезен для изучения различных фрагментов информации о сети клиента, без активного подключения к ней. Кроме того, с оборонительной стороны вы можете использовать различные сервисы Shodan.io, чтобы узнать о подключенных и уязвимых устройствах, принадлежащих вашей организации.
Shodan.io пытается подключиться к каждому устройству, доступному онлайн, чтобы создать поисковую систему связанных «вещей» в отличие от поисковой системы для веб-страниц. Получив ответ, он собирает всю информацию, связанную с сервисом, и сохраняет ее в базе данных, чтобы сделать ее доступной для поиска. Рассмотрим сохраненную запись одного из серверов tryhackme.com.
По данным Shodan.io, какая страна занимает второе место в мире по количеству общедоступных серверов Apache? (чина)
и
По данным Shodan.io, какой порт является третьим по частоте использования для Apache? (8080)
По данным Shodan.io, какой порт является третьим по частоте использования для nginx? ( да по факту уже 5001, но ответ 5000, данные меняются)
Основная группа обучения ИБ
Lab-группу с полезным софтом / книгами / аудио.
Чат для обсуждений, задавай свои вопросы.
P.S. С вами был @Fnay_Offensive
До новой встречи, user_name!