[Информационная безопасность, Сетевые технологии, DNS] Разведка с geo2ip и reverse-whois

Автор Сообщение
news_bot ®

Стаж: 6 лет 1 месяц
Сообщений: 27286

Создавать темы news_bot ® написал(а)
26-Апр-2021 19:30

Разведка сетевых ресурсов компании главным образом заключается в брутфорсе поддоменов с последующим ресолвом найденных сетевых блоков. Далее могут быть найдены новые домены 2 уровня и процедура повторяется снова. Это позволяет найти новые IP-адреса на каждой итерации.Этот метод, пожалуй, самый эффективный. Однако встречались такие ситуации, когда целая подсеть /24 оставалась не найденной.В наши дни появилось еще одно мощное средство — passive dns, которое позволяет сделать то же самое что и классический DNS-ресолв, но используя специальный API. Это может быть, к примеру, «virustotal» или «passive-total». Эти сервисы записывают DNS запросы и ответы, которые собираются с популярных DNS-серверов. Преимущество этого подхода в том, что нам не нужен брутфорс. Мы просто указываем IP-адрес и получаем все известные DNS записи. Или, наоборот, указывая DNS мы получаем все IP-адреса, которые ассоциированы с данным именем. У данного подхода есть неоспоримое преимущество — мы можем найти старые сервера сайтов, которые ресолвились раньше. Ведь в конце концов старые сайты наиболее вероятно будут содержать уязвимости.Несмотря на описанные выше техники существует еще несколько чуть менее популярных, но всё же дающих результаты. В данной статье мы рассмотрим ещё две методики разведки — поиск IP-адресов по географическим данным (geo2ip) и нахождение IP-адресов по имени компании (reverse-whois).Geo2ipЧто такое geoip, думаю, знают многие из нас. Он используется достаточно часто как разработчиками, так и администраторами. Однако geoip используется главным образом в направлении ip → geo. В нашем же случае это не так интересно. Забавно, но перед тем, как разработать собственное решение, не было найдено ни одной библиотеки, позволяющей делать запросы в обратном направлении geo → ip. Поэтому было решено написать собственный инструмент, более того что реализуется это не так уж и сложно.
Рисунок 1. УстановкаИнструмент был написан достаточно давно, так что использован python2.Данный пакет содержит два инструмента:
  • geoip — выполнение различных запросов ip → geo, city → ip, country → ip, lat:long → ip и т.п.;
  • rwhois — выполнение различных запросов к whois базе (об этом во второй части статьи).
Итак, сперва нужно скачать geoip-базу:
Рисунок 2. Обновление geoip-базы и просмотр количества сетевых блоков в нейК сожалению, начиная с 2020 года, база geoip больше не обновляется для публичного использования. Так что пришлось захардкодить ссылку на последний публичный снапшот.Инструмент geoip имеет удобный синтаксис, который позволяет выполнять гибкие запросы к базе. Все запросы указываются через ключи, а то, что требуется вывести, в аргументах. Мы так же можем использовать подстановку с помощью символа «%» (SQL-синтаксис).Например, для поиска информации по городу и диапазону IP-адресов, с выводом результата о блоках адресов, странах и городах:
Рисунок 3. Поиск сетей по CIDR и городуИнструмент geoip имеет встроенную визуализацию, например, можно посмотреть расположение сетей какой-либо страны на карте:
Рисунок 4. Получение всех сетей какой-либо страны
Рисунок 5. Просмотр расположения сетей на картеДля поиска сетей мы так же можем указать произвольный регион (регионы) в виде круга или квадрата с указанием радиуса в км. Например:
Рисунок 6. Поиск всех сетей по географическим координатам
Рисунок 7. Визуализация с использованием Google EarthПри работе с инструментом мы так же можем использовать пайпы для взаимодействия со сторонними утилитами.Посмотрим geoip-информацию о результатах выборки из shodan:
Рисунок 8. Использование geoip вместе с shodanНиже еще несколько примеров, не связанных напрямую с разведкой.Распарсив логи apache, посмотрим, какие страны посещали сайт:
Рисунок 9. Анализ логов Apache с geoipИли из каких городов был ресолв собственной dns-зоны:
Рисунок 10. Анализ bind-логов с помощью geoipВернемся к разведке. Сканирование целого города – найдем все незащищенные mongo сервера в некотором городе:
Рисунок 11. Сканирование какого-либо города с помощью geoipИли даже сканирование целой страны – найдем незащищенные memcached сервера в некоторой стране:
Рисунок 12. Сканирование всей страны с помощью geoipReverse whoisWhois это протокол прикладного уровня, работающий на 43/tcp порту. Его главная цель – получение информации о блоках IP-адресов. Эта информация запрашивается с серверов регистраторов. Всего существует 5 регистраторов, расположенных на 5 соответствующих континентах:
  • Европа (RIPE);
  • Азия и Океания (APNIC);
  • Африка (AFRINIC);
  • Северная Америка (ARIN);
  • Южная Америка (LACNIC).
Доступ к whois производится с помощью одноименного инструмента:whois 8.8.8.8Или вручную, через telnet:telnet whois.ripe.net 43
1.2.3.4Тут мы снова опираемся главным образом на IP-адреса. Однако все же мы можем искать информацию по некоторым полям:whois -h whois.ripe.net -T person admin@somecompany.comилиwhois -h whois.ripe.net -- '-i mnt-by RIPE-NCC-MNT'Например, для RIPE возможно искать по следующим полям:
  • as-set;
  • aut-num;
  • domain;
  • inetnum;
  • organisation;
  • person;
  • role;
  • route.
К сожалению, мы не можем искать по самым интересным полям - «netname» и «descr», которые содержат название сети. Так же при таком поиске требуется полное совпадение. Иными словами, мы не можем искать с подстановкой «-T person *@somecompany.com».Существует несколько web-сервисов, предоставляющих более гибкий поиск, например https://apps.db.ripe.net/db-web-ui/#/fulltextsearch. Это позволяет использовать полнотекстовый поиск к RIPE базе.Ещё существуют ежедневные дампы whois-баз всех регистраторов:RIPE: ftp://ftp.ripe.net/ripe/dbase/ripe.db.gz
APNIC: https://ftp.apnic.net/apnic/whois/apnic.db.inetnum.gz
AFRINIC: https://ftp.afrinic.net/dbase/afrinic.db.gz
LACNIC: https://ftp.lacnic.net/lacnic/dbase/lacnic.db.gz
ARIN: https://ftp.arin.net/pub/rr/arin.db.gzЭто текстовые файлы, а значит мы можем применить к ним всю мощь grep:grep netname: *company* ripe.dbОднако размер базы ripe.db (Европа) более чем 5 GB. Это делает поиск по этому файлу не таким быстрым как хотелось бы. Более того, если я хочу найти все имена сетей по CIDR (например, 77.77.0.0/16), то grep тут уже не поможет.И тут в игру вступает второй инструмент – rwhois, который работает с данными файлами и имеет идентичный синтаксис как у geoip.Аналогично, сперва нужно обновить базы:
Рисунок 13. Обновление whois-базОбновление информации по всем 5 континентам может занять длительное время. После можем посмотреть сколько IP-адресов в наших базах:
Рисунок 14. Количество IP-адресов по базам регистраторовМожно так же обновить информацию только по указанному континенту:
Рисунок 15. Обновление whois-базы только для ЕвропыПопробуем найти что-нибудь. Найдем IP-адреса по имени сети:
Рисунок 16. Поиск блоков IP-адресов по имени сетиТак же не забываем искать по полю «descr»:
Рисунок 17. Поиск IP-адресов по полю описания сети и одновременно по странеИли посмотрим, какие имена сетей есть в отдельно взятой стране:
Рисунок 18. Сети в отдельно взятой странеМы можем искать и по CIDR-диапазону:
Рисунок 19. Поиск сетей по CIDRgeo2ip + reverse whoisНаконец мы можем использовать geoip и rwhois вместе через пайп. Попробуем найти все сети в некотором географическом регионе, где имена сетей содержат «telecom»:
Рисунок 20. Поиск telecom-сетей в некотором географическом сегментеИ последний пример — показать на карте, где находятся сети с определенным именем:
Рисунок 21. Поиск сетей на карте по имени
Рисунок 22. Просмотр сетей, найденных по имени на картеЗаключениеМы использовали ещё два инструмента, которые можно добавить к RECON арсеналу. Эти инструменты так же могут быть полезны и в других областях, не связанных с разведкой - для анализа и визуализации логов, дампов трафика и т. д.pip2 install georipeАвтор: Специалист Уральского центра систем безопасности
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_informatsionnaja_bezopasnost (Информационная безопасность), #_setevye_tehnologii (Сетевые технологии), #_dns, #_dns, #_resolv (ресолв), #_geo2ip, #_reverse, #_whois, #_set (сеть), #_informatsionnaja_bezopasnost (
Информационная безопасность
)
, #_setevye_tehnologii (
Сетевые технологии
)
, #_dns
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 28-Мар 20:46
Часовой пояс: UTC + 5