Инструменты и техники пассивного сбора информации

Инструменты и техники пассивного сбора информации

Пентесты имитируют известные способы сетевых атак. Успешность теста на проникновения во многом зависит от полноты и качества составления профиля жертвы. Какими сервисами и программами пользуется жертва? На каких протоколах и портах у нее есть открытые подключения? С кем, как, и когда она общается? Почти все это можно получить из открытых источников. В статье мы рассмотрим популярные инструменты и техники пассивного сбора информации.

Статья предназначена исключительно для пентестеров и руководителей службы информационной безопасности (CISO). Ни автор статьи, ни редакция сайта www.spy-soft.net не несут ответственности за любой возможный вред, причиненный применением материалов этой статьи.

Определение почтовых адресов

Приступим к сбору информации. Начнем с самого простого, и что легче всего находится в сети. В качестве эксперимента я выбрал колледж в Канаде (al…..ge.com). Это наша учебная цель, о которой мы постараемся накопать как можно больше информации. По этическим соображениям часть адреса будет скрыта.

Чтобы заняться социальной инженерией, нам потребуется собрать базу почтовых адресов в домене жертвы. Заходим на сайт колледжа и переходим в раздел с контактами.

техники пассивного сбора информации
Раздел с контактами на сайте al..…ge.com

Там представлены одиннадцать адресов. Попробуем собрать больше. Хорошая новость в том, что нам не придется рыскать по сайтам в поисках одиночных адресов. Воспользуемся инструментом theHarvester. В Kali Linux эта программа уже установлена, так что просто запускаем ее следующей командой:

После нескольких минут утомительного ожидания получаем 125 адресов вместо 11 общедоступных. Хорошее начало, не правда ли?!

техники сбора информации
Результат работы theHarvester

Если у них доменная система, а почтовиком назначен сервер Exchange, то (как это обычно бывает) какой-нибудь из найденных почтовых ящиков наверняка будет доменной учетной записью.

Поиск по метаданным

На образовательных сайтах в открытом доступе лежит огромное количество документов. Их содержимое редко представляет интерес для пентестера, а вот метаданные — практически всегда. Из них можно узнать версии используемого ПО и подобрать эксплоиты, составить список потенциальных логинов, взяв их из графы «Автор», определиться с актуальными темами для фишинговой рассылки и так далее.

Поэтому мы соберем как можно больше метаданных. Для сбора метаданных мы воспользуемся утилитой FOCA — Fingerprinting Organizations with Collected Archives. Foca нам нужна только ради одной функции — сканирование определенного домена в поисках документов в популярных форматах с помощью трех поисковиков (Google, Bing и DuckDuckGo) и последующим извлечением метаданных. Утилита также умеет анализировать метаданные EXIF из графических файлов, но к сожалению в этих полях редко находится что-то интересное.

Запускаем FOCA, жмем на «Project» и создаем новый проект. В правом верхнем углу отмечаем все форматы и жмем на «Search All». Поиск занимает до 10 минут.

В итоге в главном окне FOCA мы видим огромное количество файлов, которые утилита нашла на сайте. В нашем случае большую часть составили документы PDF.

техники сбора информации
Результат поиска файлов с сайта программой FOCA

Следующий — это загрузка выбранных или всех файлы (контекстное меню → Download All) и после чего извлечение из них метаданных.

Давайте проанализируем, что нам удалось найти.

  • Вкладка «Users» — 113 записей. В основном это имена пользователей, которые указываются при установке офисных пакетов. Они необходимы для последующей социальной инженерии и подбора пар логин-пароль к обнаруженным в домене сетевым сервисам.
  • Вкладка «Folders» — 540 записей. Здесь есть каталоги, которые указывают на использование ОС Windows (что подтверждается в дальнейшем), и часто попадается строка вида N:\…. Я думаю, что это сетевой диск, который как правило подключается скриптом при входе пользователя в систему.
  • Вкладка «Printers» — 11 записей. Теперь мы знаем модели сетевых принтеров (они начинаются с \\). Другие или локальные, или подключены через сервер печати.
  • Вкладка «Software» — 91 запись. Здесь мы видим программное обеспечение, установленное на компьютерах. Самое интересное заключается в том, что указаны версии программ, из которых можно выбрать уязвимые и попробовать эксплуатировать их при атаке.
  • Вкладка «Emails». Это мы и так имеем в достатке благодаря инструменту theHarvester.
  • Вкладка «Operating Systems» — 5 записей. ОС, на которых создавались собранные нами файлы. Радует цифра 81 напротив Windows XP. Как правило, такие организации редко обновляют операционные системы. Есть большой шанс того, что старая версия Windows, для которой уже давно прекратили выпускать обновления безопасности, у них стоит по сей день.
сбор информации
Метаданные, извлеченные FOCA

Получение данных о домене

Следующим этапом сбора информации — получение информацию о домене. Начнем с программы whois (подробнее о ней читайте в статье RFC 3912). Открываем терминал и вводим команду

Данная утилита выдает очень много интересной информации. Номера телефонов, адрес, дата создания и последнего обновления… Есть даже почтовый адрес, который может фигурировать в админском составе.

сбор информации
Программа whois

Кто не хочет использовать терминал (или нет под рукой Linux), может использовать интернет-сервисы, которые умеют делать то же самое. Вот несколько из них:

  • 2ip.ru;
  • Ripe.net;
  • whois.domaintools.com;
  • ping.eu;
  • centralops.net;
  • serversniff.net.

Последние два в списке очень популярны из-за большого набора инструментов. В CentralOps имеется свой DNS-граббер, двойной Whois и функция сканирование портов. Server Sniff выполняет глубокое сканирование сайта, причем с поддержкой IPv6 и HTTPS. Я как правило пользуюсь robtex.com. Он отображает найденную информацию в удобном для анализа графическом виде.

сбор информации
Сайт robtex.com

Получение записи DNS

Освежим в памяти типы доменных записей:

  • запись А сопоставляет IP-адрес доменному имени;
  • запись MX показывает почтовые серверы для домена;
  • запись NS показывает DNS-сервер этого домена;
  • запись CNAME — дополнительное имя для домена;
  • запись SRV указывает на серверы, которые обслуживают данную зону;
  • запись SOA покажет сервер с эталонной информацией о домене.

Теперь давайте поглядим, что важного мы можем из них достать.

Поиск почтовых серверов

Почтовые адреса у нас уже есть, а где взять список почтовых серверов? Конечно, из DNS! Легче всего это сделать программой nslookup. Тут мы воспользуемся записью MX, введя следующие команды:

Получаем строчку

Теперь, используя запись А, определим его IP-адрес:

Сохраняем у себя IP — 23.***.***.42.

На этом полет мысли остановить сложно, и на ум сразу приходит Telnet в связке с протоколом SMTP. В RFC 5321 описаны команды этого протокола, например VRFY, EXPN и RCPT-TO, с помощью которых можно попробовать подобрать имена пользователей или проверить на валидность собранные, но это уже чересчур активные действия на этом этапе. Пока продолжим пассивный сбор информации.

пассивный сбор информации
Выясняем IP почтового сервера домена al..…ge.com

Получение адреса NS

Для получения NS-серверов воспользуемся одноименной записью (NS). Эту информацию получить можно несколькими утилитами. Для начала воспользуемся nslookup:

После чего попробуем еще одну Linux программу — host:

Обе утилиты выдали имена нужных нам DNS-серверов:

программы для сбора информации
Выясняем имена и IP NS-серверов

Теперь узнаем их IP-адреса программой nslookup, описанным выше методом. Они выглядят так: 205.***.***.11 и 205.***.***.80.

Передача зоны DNS

Следующим этап — определение всей зоны DNS этого домена. Успешность этой операции основана на неправильном конфигурировании DNS-серверов системными администраторами (если внешнюю зону забыли отделить от внутренней). В этом случае мы можем просто запросить у серверов передачу и получим целиком зону — то есть узнаем все доменные имена. Сделать это можно двумя утилитами: host и dnsrecon.

Для утилиты host потребуется уже известный (из предыдущего этапа) NS-сервер. Вводим команду

Чтобы воспользоваться dnsrecon, нужно ввести

К счастью (или к сожалению — смотря с какой стороны посмотреть), передача зоны DNS не удалась. Значит, разделение зон у выбранной жертвы настроено верно.

методы сбора информации
Неудачная передача зоны DNS

Продолжим дальше собирать информацию иными способами.

Поиск поддоменов

Сейчас в большинстве организаций есть поддомены. Хакеры ищут там серверы удаленного доступа, неправильно настроенные сервисы или новые сетевые имена. Это уже не чисто пассивный сбор данных. Мы взаимодействуем с системой жертвы, но не так грубо, как, к примеру, при сканировании открытых портов. Поэтому с натяжкой метод можно отнести к пассивным техникам.

Брутфорс субдоменов

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

В ответ получим строку ns3.alg*******ge.com has address 205***.***.11, то есть — такой поддомен существует.

Согласитесь, вручную перебирать имена — нудное занятие. Поэтому мы будем автоматизировать. Создадим файл со списком имен поддоменов. Можно найти готовый на просторах интернета, но для демонстрации я создал простейший файл с содержимым mail dns ftp file vpn test dev prod voip firewall и называл его dns. Теперь для запуска перебора имен необходимо написать мини-скрипт:

методы сбора информации
Перебор поддоменов программой host

DNSMap

Есть неплохой инструмент DNSMap. Он делает почти те же действия, что описаны выше. В нем уже встроен словарь, но можно использовать и свой. Для запуска перебора необходимо набрать

Процесс это небыстрый. У меня он занял (для выбранного домена) 1555 секунд, но и результат выдал неплохой — нашел 18 поддоменов.

методы сбора информации
Лог DNSMap

Анализ информации

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

Визуальный анализ удобно выполнять утилитой Maltego. Это интерактивная программа для сбора данных и отображения найденных взаимосвязей в виде дерева.

У нее есть клиентская часть (именно ее вы и устанавливаете) и серверная. Последняя содержит обновляемые библиотеки:

  • список ресурсов для сбора данных из общедоступных источников (как раз то, что вы делали в статье вручную);
  • набор статистических преобразований для их визуализации.

Есть три версии клиента, и простому пентестеру достаточно бесплатной. Она же входит в состав Kali Linux и подробно описана.

методы сбора информации
Дерево Maltego

Разумеется, можно обойтись и без Maltego. Для удобства я собираю информацию в программе KeepNote, но если вы не страдаете паранойей, то можно воспользоваться онлайновыми сервисами, типа NimbusNote.

Начнем с почтовых адресов. Их довольно много, и, как я уже говорил, это прямая дорога к атаке фишингом. Особенно с учетом того, что у нас также есть список программного обеспечения, которое используют в компании. В нем можно отыскать уязвимый софт (я нашел WinXP и MS Office 2003, для которых есть тонны эксплоитов с удаленным исполнением произвольного кода).

Я думаю, вы поняли, что я клоню к вложенному в письмо вредоносному файлу. Это колледж, так что документооборот у них большой, и шанс попасться на удочку spear phishing очень высокий.

Если пойти по пути с социальной инженерией, то пригодятся имена реальных людей из результатов FOCA. Небольшая работа с Google, и мы узнаем о них множество подробностей (должность, телефон, email, ссылки на профиль в LinkedIn и другая полезная инфа). Например, я нашел личный адрес одного из сотрудников на Gmail (не стану приводить его в статье).

Далее рассмотрим поддомены. Приведу лишь самые информативные:

Что такое VPN, вы и так знаете, но каким способом виртуальная сеть реализована здесь, до сканирования остается только догадываться. Однако форму для входа мы уже нашли.

Тут находится еще одна форма для авторизации.

FTP-сервер — отличное место для проведения атаки и создания «аэродрома подскока»: зачем нам загружать малварь извне или заражать письма, когда можно разместить всю боевую нагрузку на собственном файловом сервере колледжа? К нему и доверие выше.

Еще одна форма авторизации и объект для изучения. Чем больше сервисов, тем больше вероятность найти слабое звено в системе защиты.

Резко увеличился шанс на присутствие Microsoft Exchange в сети (как и на то, что в почтовых адресах мы сможем найти логин от доменной учетной записи).

Давайте поближе рассмотрим поддомен blackboard.alg*******ge.com. Тут у нас имеется форма авторизации, и ее явно видно даже в инструментах разработчиков браузера. У меня это Chrome.

recon
Форма для передачи логина и пароля

Откроем Burp Suite и попробуем вытащить оттуда строку передачи данных. Выглядеть она будет вот так:

Этого уже достаточно, чтобы пробить защиту методом грубой силы. Для этого необходимо составить списки UserList и PasswordList. Приступим. Я воспользуюсь базой имейлов — возьму только часть адресов до символа @ и попробую их в качестве логинов. Чтобы отрезать эту часть, можно использовать такую команду:

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

Со списком паролей немного проще: клонирую UserList, добавляю к каждой строке возможные даты рождения, следом разбавил разными комбинациями иностранных слов и добавил немного цифр от 6 до 9 символов напоследок.

При сборе данных не забываем про гуглохаки. В нашем примере запрос вида mailto @al***ncollege.com site:al***ncollege.com сразу выдает кучу валидных адресов, а магическое заклинание: filetype:xls site:al***ncollege.com — дает прямую ссылку на табличку в формате Excel с адресами и телефонами партнеров и пометкой «This list contains privileged information. Not to be reproduced or distributed in any way».

Подробнее читайте в статье «Гугл дорки».

Осталось запустить перебор. Да, это можно было сделать из Burp Suite (закладка Intruder), однако мне больше нравится утилита THC-Hydra. Запрос «Гидры» будет выглядеть примерно так (в статье он специально изменен):

Результата пришлось ждать около 15 часов, но это того стоило. В итоге я получил доступ к личному кабинету, где мог посмотреть расписание, а также доступ к библиотеке, карте, закрытой фотогалерее и прочему.

рекон
Часть административной панели кабинета

Заключение

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

При подготовке этой статьи ни один канадский колледж не пострадал.

Еще по теме: OSINT: разведка на основе открытых источников

ВКонтакте
OK
Telegram
WhatsApp
Viber

3 комментария

  1. Ronin Roninow

    Я хочу узнать такой момент: могут ли эти программы полезны для сбора данных научных исследований или работ, которые обычно скрыты копирастами по типу elibrary?

    • Alt

      Они предназначены для другого

  2. Дмитрий

    На скрине с древом maltego, спалил адрес сайта.)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *