Анализ IP-адресов и ASN: геолокация, владельцы, соседние сети, BGP
Анализ IP-адресов и ASN: геолокация, владельцы, соседние сети, BGP
IP-адреса — это «координаты» устройств в интернете. Зная IP-адрес сервера цели, можно определить его географическое положение, узнать, какому интернет-провайдеру или хостинговой компании он принадлежит, выявить другие сайты, находящиеся на том же сервере, и даже восстановить структуру сетевой инфраструктуры организации через BGP-маршрутизацию. Анализ IP и ASN (автономных систем) — важнейший этап технического OSINT, позволяющий перейти от доменных имен к физическим сетям и их владельцам.
Что такое ASN и зачем он нужен?
ASN (Autonomous System Number) — это уникальный номер, присваиваемый автономной системе (Autonomous System, AS). Автономная система — это совокупность IP-сетей (подсетей) под единым административным управлением (например, Ростелеком, МГТС, Amazon AWS, Google). Организации, имеющие собственные IP-диапазоны и публично объявляющие о них через BGP, получают ASN.
Ценность ASN для технического OSINT:
- Зная ASN цели, можно получить все IP-диапазоны, которые принадлежат организации (полная картина её «цифровой земли»).
- Можно обнаружить соседние подсети (соседние AS) — потенциальных партнёров или транзитных провайдеров.
- Выявить изменения (появление новых подсетей, выбытие старых) через мониторинг BGP.
Этап 1: Базовый анализ IP-адреса
Самый простой способ начать анализ IP — использовать онлайн-сервисы или утилиты командной строки.
- Геолокация (страна, регион, город, иногда координаты) — не всегда точная, основывается на базах данных организаций.
- Провайдер / хостинг-компания (название, контакты).
- ASN (номер автономной системы, которой принадлежит IP).
- Тип IP (провайдерский, хостинговый, прокси, VPN, Tor exit node).
- История IP (к каким доменам привязывался ранее).
Инструменты быстрого анализа IP:
# whois по IP whois 8.8.8.8 # curl к ipinfo.io curl ipinfo.io/8.8.8.8 curl ipinfo.io/8.8.8.8/json # dig для обратного DNS (PTR) dig -x 8.8.8.8 +short
Пример ответа ipinfo.io:
{
"ip": "8.8.8.8",
"hostname": "dns.google",
"city": "Mountain View",
"region": "California",
"country": "US",
"loc": "37.4056,-122.0775",
"org": "AS15169 Google LLC",
"postal": "94043",
"timezone": "America/Los_Angeles"
}Этап 2: ASN и BGP — что скрывается за номером AS?
Каждый IP принадлежит какой-то автономной системе (AS). Узнав ASN, можно запросить BGP-информацию: какие IP-диапазоны анонсирует эта AS (то есть какие адреса принадлежат организации), а также с кем эта AS граничит (пировые связи, транзитные провайдеры).
Инструменты для получения ASN по IP:
dig +short 8.8.8.8.origin.asn.cymru.com TXT # результат: "15169 | 8.8.8.0/24 | US | arin | 1992-12-01"
Этап 3: Получение всех IP-диапазонов AS
Зная ASN, можно скачать все подсети (CIDR-блоки), которые эта AS объявляет в BGP. Это даст полную картину всех IP-адресов, находящихся под контролем организации (включая те, что не связаны напрямую с доменом).
- BGP.he.net — по ASN отображает список подсетей.
- RIPE Stat — API для получения маршрутов AS.
- CAIDA — архив BGP.
- Radb (whois.radb.net) — база маршрутов.
Пример через whois.radb.net:
whois -h whois.radb.net -- '-i origin AS15169' | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}/[0-9]+'BGP.he.net API (пример):
curl https://bgp.he.net/AS15169 # нужно парсить HTML, есть неофициальное API
Python-функция (через Team Cymru):
import requests
def get_ip_routes_by_asn(asn):
url = f"https://api.cymon.io/bgp/routes/origin/{asn}"
# можно использовать альтернативные сервисы
# более простой: whois -h whois.radb.net -- '-i origin AS15169'Этап 4: Поиск соседних доменов на том же IP (Reverse IP Lookup)
Один IP-адрес может хостить множество доменов (shared hosting, виртуальные серверы). Если цель использует невыделенный IP, то можно найти другие домены, связанные с той же инфраструктурой.
curl -H "APIKEY: YOUR_KEY" https://api.securitytraits.com/v1/domain/8.8.8.8/domain
Ограничения: на shared-хостинге могут быть тысячи доменов, большинство не связано с целью. Используйте фильтрацию (похожие тематики, SSL-сертификаты, даты создания).
Этап 5: Анализ BGP-пиров (соседних AS)
Смотря на BGP-таблицы, можно увидеть, между какими AS существует прямое сетевое соединение (пиринг). Это может указывать на деловые отношения, транзитный трафик или использование CDN.
- BGP.he.net → страница AS, раздел “Peers” (соседние AS).
- BGPView → альтернативный визуализатор.
- CAIDA AS Rank — ранжирование AS по количеству пиров.
- Если AS цели пирится с крупным облачным провайдером (AWS, Google Cloud), часть инфраструктуры может быть там.
- Если пирится с AS, принадлежащим провайдеру DDoS-защиты (Cloudflare, Akamai), то сайт использует их услуги.
Этап 6: Геолокация IP — методы и ограничения
Геолокация по IP основана на базах данных (MaxMind, IP2Location), которые не всегда точны (особенно для мобильных сетей, VPN, облаков). Следует относиться к ней как к ориентиру, а не к истине.
- Сравнить несколько баз: ipinfo.io, MaxMind, IP2Location.
- Использовать обратный DNS (PTR) — иногда содержит географические указатели (например,
hosting-in-moscow.example.com). - Проверить сертификаты (в них может быть указан юридический адрес).
- Запросить BGP-локацию (определённые AS имеют географическую привязку, но не точную).
Инструменты для сравнения геолокации:
- IP2Location (разные версии).
- DB-IP.
- GeoIP Tool (geoiptool.com).
Этап 7: История IP (предыдущие домены, предыдущие владельцы)
IP-адреса переходят от одного сервера к другому, меняются владельцы блоков. История IP позволяет найти, какие домены ранее были привязаны к этому адресу, и восстановить старые конфигурации.
- SecurityTrails Historical IP (показывает домены, привязанные к IP в прошлом).
- ViewDNS.info IP History (ограничен).
- Censys — сохраняет снимки IP-сканирований (порты, сертификаты) за разные даты.
- Wayback Machine для страниц, доступных по IP.
Этап 8: Выявление cloud-сервисов и CDN
Многие IP-адреса принадлежат облачным платформам. Идентификация облачного провайдера может помочь сузить географию или определить используемые сервисы.
whoisпокажет организацию (например, "AWS", "Microsoft Corporation", "Google Cloud").- Сравнить ASN со списками облачных AS (например, AS15169 — Google, AS14618 — AWS, AS8075 — Microsoft).
- Специальные списки: (например,
https://raw.githubusercontent.com/cloudflare/ip-list/master/cloudflare.ipv4для Cloudflare).
Практический пример: анализ инфраструктуры домена
Задача: проанализировать IP-адреса домена target.com.
- DNS-запрос A →
target.com->192.0.2.10. - whois 192.0.2.10 → организация
Example Hosting Ltd., странаUS. - ipinfo.io →
"org": "AS65535 Example Hosting", "city": "New York". - Reverse IP (SecurityTrails) → на том же IP еще 50 доменов, в основном мелкие сайты. Shared-хостинг.
- ASN →
AS65535. Через BGP.he.net получаем все подсети этой AS:192.0.2.0/24,198.51.100.0/24, ... - Поиск других IP в этих подсетях, которые могут принадлежать цели.
- BGP-пиры → ASN цели соединен с AS15169 (Google). Возможно, сайт использует Google Cloud CDN.
- История IP → 2 года назад IP был
203.0.113.55, который принадлежал другой AS (предыдущий хостинг). - Вывод: цель использует shared-хостинг у Example Hosting; старый сервер больше не активен; через Google Cloud, вероятно, используется кэширование.
Автоматизация сбора данных по IP и ASN (Python)
import requests
import ipaddress
def ip_info(ip):
resp = requests.get(f"https://ipinfo.io/{ip}/json")
return resp.json() if resp.status_code == 200 else None
def get_asn(ip):
info = ip_info(ip)
org = info.get("org", "")
if org.startswith("AS"):
asn = org.split()[0][2:] # "AS15169" -> "15169"
return asn
return None
def get_prefixes_by_asn(asn):
# через whois.radb.net (упрощённо)
import subprocess
cmd = f"whois -h whois.radb.net -- '-i origin AS{asn}' | grep -Eo '([0-9]+\\.){3}[0-9]+/[0-9]+'"
result = subprocess.run(cmd, shell=True, capture_output=True, text=True)
return result.stdout.splitlines()
# Пример
ip = "8.8.8.8"
print(ip_info(ip))
asn = get_asn(ip)
print(f"ASN: {asn}")
prefixes = get_prefixes_by_asn(asn)
print(f"Prefixes: {prefixes[:5]}...")- WHOIS по IP, DNS-запросы, BGP-данные — это публичные данные. Их сбор безопасен и легален.
- Массовый reverse DNS или перебор IP-диапазонов без разрешения может считаться активным сканированием, если выполняется в больших объёмах. Используйте осторожно и с уважением к чужой инфраструктуре.
- Сервисы типа SecurityTrails имеют условия использования, запрещающие массовые автоматические запросы без оплаты.
Анализ IP и ASN позволяет преобразовать сетевую инфраструктуру организации в карту подсетей, обнаружить скрытые активы и соседние ресурсы, определить географическое расположение и используемые облачные провайдеры. Ключевые инструменты: whois, ipinfo.io, BGP.he.net, SecurityTrails. В сочетании с данными о поддоменах и DNS это даёт практически полную картину внешней поверхности атаки.
В следующей статье цикла мы рассмотрим сканирование портов и сервисов — активный этап, который требует особой осторожности, а также освоим инструменты Nmap, массовое сканирование и Shodan.