Как узнать локальные 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 для сканирования

Итак, для частных сетей используются следующие диапазоны адресов:

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16
  • 100.64.0.0/10

Смотрите также: Специальные диапазоны IP адресов

P.S.

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


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

3 комментария to Как узнать локальные IP адреса провайдера

  1. Алексей:

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

  2. eduard:

    Наконец то я нашёл их всех 🙂

    Статья оказалась очень полезной!

    Спасибо

  3. Podddolsky:

    Живу в частоном доме. Метод хороший, находит, но не все ip, ибо некоторые роутеры не находит, очень жаль. Хотя бы какую часть нашел) Спасибо

Добавить комментарий для Алексей Отменить ответ

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