Как узнать локальные 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.
Связанные статьи:
- Некоторые приёмы исследования сети (73.1%)
- Трассировка сетевого маршрута (66.5%)
- Как пользоваться Kali Linux в WSL (подсистеме Windows для Linux): подборка лучших программ (ч. 1) (65.9%)
- Трассировка сетей со сложной топологией. Выявление NAT (58.2%)
- Инструкция по использованию Router Scan by Stas’M. Часть первая: Опции и анонимность сканирования (56.7%)
- Tor: от азов до продвинутого уровня (ч. 10): Рецепты и подсказки по использованию Tor (RANDOM - 0.6%)
Добрый день. Попробовал этот метод, действительно находит подсти но при попытке подключится к ip выдает (only secure ip address is allowed). Получается провайдер ограницил доступ. Возможно ли это обойти?
Наконец то я нашёл их всех 🙂
Статья оказалась очень полезной!
Спасибо
Живу в частоном доме. Метод хороший, находит, но не все ip, ибо некоторые роутеры не находит, очень жаль. Хотя бы какую часть нашел) Спасибо