Как узнать локальные IP адреса провайдера

Довольно часто Интернет-провайдеры для экономии белых IP используют NAT. В результате получается, что у многих пользователей на всех один внешний IP адрес. Пользователям особой разницы нет (особенно если им не нужен белый IP, например, для веб-сервера), но для такой программы как Router Scan by Stas'M эти пользователи становятся уже недосягаемы.

Как узнать локальные IP адреса пользователей Интернет-провайдера

Тем не менее если вы являетесь клиентом Интернет-провайдера то вполне реально найти IP других клиентов в локальной сети. Для сканеров, в том числе Router Scan, разницы нет — он прекрасно может просканировать и локальный диапазон. В локальных сетях используется несколько диапазонов IP адресов, некоторые из них довольно большие. Поэтому нужно знать, что именно сканировать — какой именно диапазон. Можно, конечно, запустить полную проверку 10.0.0.0/8 (это надолго). Но выполнив предварительное исследование сети, можно сильно сократить целевые локальные подсети и время сканирования.

Как узнать диапазоны локальной подсети Интернет-провайдера

Начнём с того, что посмотрим, через какие узлы проходят пакеты, прежде чем попасть в глобальную сеть. Для этого применяется трассировка:

traceroute suip.biz

Первая строка:

 1  _gateway (192.168.1.1)  9.314 ms  9.661 ms  9.637 ms

это мой собственный роутер. Сканировать локальную сеть 192.168.1.1/24 смысла нет.

А вот следующие три адреса говорят нам о сети 10.0.0.0/8:

 2  10.20.48.1 (10.20.48.1)  9.886 ms  13.107 ms  16.762 ms
 3  10.246.245.241 (10.246.245.241)  19.784 ms  20.412 ms  20.399 ms
 4  10.185.252.29 (10.185.252.29)  20.797 ms  20.774 ms  20.728 ms

Но сеть 10.0.0.0/8 является реально большой (2563 = 16,777,216 адресов). Интернет провайдеру часто просто не нужна такая большая сеть и он использует только её части — подсети, в которых компактно собраны пользователи.

Можно предположить, что первый IP (10.20.48.1) является шлюзом для всех пользователей, которые расположены где-нибудь в 10.20.48.1-10.20.60.255.

Можно попробовать просканировать эти диапазоны. Но ключевую подсказку дала программа ZMap. Я запустил сканирование всей подсети в поисках хостов:

sudo zmap -p 80 10.0.0.0/8 -o zmap.txt -r 300

Но ждать почти сутки до завершения (через Wi-Fi сканирование происходит медленно, а я подключён именно так) мне не пришлось. Алгоритм сканирования ZMap такой, что она проверят хосты не последовательно, а в разнобой по всему указанному диапазону. И если пользователи действительно расположены компактно в определённых подсетях, то уже через короткое время (минут 15) можно понять, где именно они:

cat zmap.txt | sort

Пользователи оказались сконцентрированы в довольно небольших диапазонах:

  • 10.20.160.0-10.20.162.255
  • 10.20.48.1-10.20.63.255

Эти наблюдения не исключают, что пользователи могут быть и в других подсетях — проверить это можно только более длительным сканированием.

Я добавил эти диапазоны в Router Scan by Stas'M и получил примерно 1200 хороших результатов:

Выгрузка на 3WiFi показала, что там много новых ТД.


Всё?

Посмотрите внимательно на столбец WAN IP Address на скриншоте выше.

Они расположены компактно. Но это не всё. Программа whois:

whois 100.96.35.140

рассказала мне, что принадлежат они диапазону 100.64.0.0/10 (то есть 100.64.0.0 — 100.127.255.255). И что это Shared Address Space — то есть общее пространство адресов, которое может использоваться только в сетях провайдера услуг или на оборудовании для маршрутизации, которое способно делать преобразование адресов через интерфейсы роутеров, когда адреса являются идентичными на двух различных интерфейсах.

Эти адреса являются немаршрутизируемыми и недоступными для внешней сети, но пинг подсказал, что у меня есть к ним контакт:

ping 100.96.35.140

Я проанализировал адреса и запустил Router Scan на диапазоне 100.96.32.1-100.96.56.255:

Набралось 200 хороших результатов и даже с учётом выгруженных предыдущих точек доступа, было больше сотни новых!

С помощью Parallel можно очень быстро искать адреса вида 10.x.x.1, которые могут оказаться шлюзами по умолчанию:

parallel -j250 'timeout 2 ping -c 1 10.{1}.{2}.1 >/dev/null && echo 10.{1}.{2}.1' ::: {1..255} ::: {1..255}

Судя по всему, этот метод дал мне ещё несколько подсетей:

Поискать живые хосты без сканирования портов можно и с помощью Nmap:

sudo nmap -sn 10.91.111.0/24

Но если нам не нужно во что бы то ни стало найти все живые хосты, если нас интересуют только те, на которых прослушивается 80й порт, то всё можно сделать намного быстрее с помощью ZMap:

sudo zmap -p 80 10.91.111.0/24 -r 300

Адреса из локальной подсети 10.0.0.0/8 можно найти даже когда на первый взгляд их там нет. Вот пример другого Интернет-провайдера, где никаких признаков локальной сети 10.0.0.0/8:

Но обычная ping с бустом от parallel доказывают обратное:

Хотя там может и не быть роутеров — какие-то технические сетевые узлы. Но при исследовании сети это всё равно важно.

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

  • сканируя локальные диапазоны мы получаем доступ к устройствам, которые невозможно просканировать из глобальной сети
  • проведя небольшой анализ можно узнать диапазон локальной сети (10.0.0.0/8, 172.16.0.0/12 или 100.64.0.0/10) и даже сильно сократить количество IP для сканирования

P.S.

Дописал и вспомнил, что почти такая же статья уже есть на основе документации к Router Scan by Stas’M: «Некоторые приёмы исследования сети»… Ну ладно, пускай будет две — в этой статье команды с ping намного быстрее. А в той первой статье есть примеры команд для Windows.

Вы уже знаете о факультете информационной безопасности от GeekBrains? Комплексная годовая программа практического обучения с охватом всех основных тем, а также с дополнительными курсами в подарок. По итогам обучения выдаётся свидетельство установленного образца и сертификат. По этой ссылке специальная скидка на любые факультеты и курсы!

Рекомендуется Вам:

One Comment to Как узнать локальные IP адреса провайдера

  1. Алексей:

    Добрый день. Попробовал этот метод, действительно находит подсти но при попытке подключится к ip выдает (only secure ip address is allowed). Получается провайдер ограницил доступ. Возможно ли это обойти?

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

Ваш e-mail не будет опубликован.