Статья Разведка с geo2ip и reverse-whois

Admin

Администратор

Разведка с geo2ip и reverse-whois​


Разведка сетевых ресурсов компании главным образом заключается в брутфорсе поддоменов с последующим ресолвом найденных сетевых блоков. Далее могут быть найдены новые домены 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. Поэтому было решено написать собственный инструмент, более того что реализуется это не так уж и сложно.
1769360122358


Инструмент был написан достаточно давно, так что использован python2.

Данный пакет содержит два инструмента:
  1. geoip — выполнение различных запросов ip → geo, city → ip, country → ip, lat:long → ip и т.п.;
  2. rwhois — выполнение различных запросов к whois базе (об этом во второй части статьи).
Итак, сперва нужно скачать geoip-базу:
1769360132692


К сожалению, начиная с 2020 года, база geoip больше не обновляется для публичного использования. Точнее, обновляется, но они закрыли скачивание за авторизацией (оттуда еще можно взять лиц-ключ для скачивания/обновления в скрипте). Так что пришлось захардкодить ссылку на последний публичный снапшот.

Инструмент geoip имеет удобный синтаксис, который позволяет выполнять гибкие запросы к базе. Все запросы указываются через ключи, а то, что требуется вывести, в аргументах. Мы так же можем использовать подстановку с помощью символа «%» (SQL-синтаксис).

Например, для поиска информации по городу и диапазону IP-адресов, с выводом результата о блоках адресов, странах и городах:
1769360144461

Поиск сетей по CIDR и городу

Инструмент geoip имеет встроенную визуализацию, например, можно посмотреть расположение сетей какой-либо страны на карте:
1769360156953

Получение всех сетей какой-либо страны
1769360168296

Просмотр расположения сетей на карте


Для поиска сетей мы так же можем указать произвольный регион (регионы) в виде круга или квадрата с указанием радиуса в км. Например:
1769360181482

Поиск всех сетей по географическим координатам
1769360199919

Визуализация с использованием Google Earth


При работе с инструментом мы так же можем использовать пайпы для взаимодействия со сторонними утилитами.

Посмотрим geoip-информацию о результатах выборки из shodan:
1769360217158

Использование geoip вместе с shodan

Ниже еще несколько примеров, не связанных напрямую с разведкой.

Распарсив логи apache, посмотрим, какие страны посещали сайт:
1769360229495

Анализ логов Apache с geoip

Или из каких городов был ресолв собственной dns-зоны:
1769360245243

Анализ bind-логов с помощью geoip

Вернемся к разведке. Сканирование целого города – найдем все незащищенные mongo сервера в некотором городе:
1769360256102

Сканирование какого-либо города с помощью geoip

Или даже сканирование целой страны – найдем незащищенные memcached сервера в некоторой стране:
1769360273409

Сканирование всей страны с помощью geoip

Reverse whois​

Whois это протокол прикладного уровня, работающий на 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 [email protected]
или
Код:
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.

Аналогично, сперва нужно обновить базы:
1769360342696

Обновление whois-баз

Обновление информации по всем 5 континентам может занять длительное время. После можем посмотреть сколько IP-адресов в наших базах:
1769360353665

Количество IP-адресов по базам регистраторов

Можно так же обновить информацию только по указанному континенту:
1769360372388

Обновление whois-базы только для Европы

Попробуем найти что-нибудь. Найдем IP-адреса по имени сети:
1769360385716

Поиск блоков IP-адресов по имени сети

Так же не забываем искать по полю «descr»:
1769360428585

Поиск IP-адресов по полю описания сети и одновременно по стране

Или посмотрим, какие имена сетей есть в отдельно взятой стране:
1769360463536

Сети в отдельно взятой стране

Мы можем искать и по CIDR-диапазону:
1769360489594

Поиск сетей по CIDR

geo2ip + reverse whois​

Наконец мы можем использовать geoip и rwhois вместе через пайп.

Попробуем найти все сети в некотором географическом регионе, где имена сетей содержат «telecom»:
1769360525653


Поиск telecom-сетей в некотором географическом сегменте

И последний пример — показать на карте, где находятся сети с определенным именем:
1769360554986

Поиск сетей на карте по имени
1769360571704

Просмотр сетей, найденных по имени на карте

Заключение​

Мы использовали ещё два инструмента, которые можно добавить к RECON арсеналу. Эти инструменты так же могут быть полезны и в других областях, не связанных с разведкой - для анализа и визуализации логов, дампов трафика и т. д.

pip2 install georipe
 

Вложения

  • 1769360515323.png
    1769360515323.png
    38.3 КБ · Просмотры: 15
Похожие темы
Support81 Финансовая разведка против «пехоты»: заморозка счетов до десяти дней Новости в сети 0
Support81 Невидимая империя: китайская разведка захватила киберпространство США Новости в сети 0
wrangler65 Интересно OSINT. Разведка в ЕВРОПЕ Полезные статьи 0
Support81 Разведка за кадром, или Аквариум спецслужб Новости в сети 0
K [CПЕЦИАЛИСТ] Конкурентная разведка, Стратегический маркетинг Раздачи и сливы 0
B Введение в раздел Практика тестирования на проникновение "Разведка и сбор информации" Уязвимости и взлом 0
Admin Интересно Reverse shell через ICMP. Опубликован руткит под лицензией MIT, который обходит все защиты Linux. Новости в сети 0
F Модифицированный Evilginx2 Modified Evilginx2 / Reverse Proxy Phishing Ищу работу. Предлагаю свои услуги. 0
U Интересно Reverse Engenireeng - вскрываем протектор Enigma Полезные статьи 0
T Reverse-shell upgrade Полезные статьи 0
G Reverse Shell через конфигурационный файл OpenVPN Полезные статьи 0

Название темы