Интернет, как всем известно, очень большой. Даже больше, чем ты подумал. И как там обстоят дела, мало кто знает. Покопавшись в такой «кладовке», можно найти много интересных штук. Ну и для всякой статистики бывает полезно просканировать порты в большой сети.
Что нам требуется для этого? Желание, абузоустойчивый хостинг, немного тулз и сколько-то времени. И конечно, перечень диапазонов IP.
Начнем с конца. Как известно, не считая того, что перечень свободных диапазонов IPv4 кончился (то есть можно whois’ом узнать принадлежность любого из диапазонов), изначально диапазоны были разделены между регистраторами, что уже вносило территориальное разделение. Конечно, определенная степень погрешности есть, но фактически сейчас каждый диапазон «принадлежит» какой-то организации какой-то страны. И актуальные базы данных доступны бесплатно в интернете. Примеров масса: goo.gl/ezjgi9,worldips.info. Таким образом, мы можем «выдернуть» диапазоны какой-то страны и сканить их или сделать аналогичное по конкретной организации (здесь, правда, есть подводные камни, но об этом я уже писал в предыдущих номерах).
Почему не посканить весь инет — 0.0.0.0/0? Как минимум потому, что в данный диапазон попадает ряд специальных диапазонов (а-ля 127.0.0.1/8, 10.0.0.0/8, мультикасты и так далее), да и времени это займет много.
Далее — хостинг. Сканирование портов в зависимости от страны и провайдера может быть нежелательным, а то и незаконным действием. А если придется сканить что-то большое, то потребуется время, и это обязательно заметит провайдер и, возможно, примет меры. Конкретного совета не дам, лишь пара наблюдений. Между странами/континентами жалобы ходят реже/медленней (сканить Америку из Америки долго не получится, а вот даже из Европы — нормально). Крупные «игроки» обычно медлительней/либеральней меньших товарищей. Так, я больше года переписывался с индусами из Амазона, перед тем как они ввели хоть какие-то санкции на систематическое сканирование. Хотя тут все индивидуально. Например, Digital Ocean сначала заблочил акк и виртуалки, а потом стал разбираться, было ли это сканирование или еще что-то :).
Далее, тулзы и технологии. Конечно, чем сканить, сильно зависит от того, что мы хотим насканить. Если взять за основу сканирование портов, то можно взять и Nmap. Как ни странно, его можно настроить на приличный уровень скорости, и мы говорили об этом в прошлых номерах. Но все же лучше использовать более специализированные вещи, например ZMap или masscan. Оба сканера оптимизированы для быстрого сканирования крупных сетей:
- обработка TCP/IP-стека вынесена из ядра и реализована в пользовательском пространстве;
- запросы отправляются асинхронно (ПО не запоминает, куда и что было отправлено);
- общая оптимизация (один запрос на один порт) и допфичи (PF_RING).
Описывать, какой из них лучше, не буду. Могу лишь отметить, что ZMap более прост в использовании.
Несмотря на то что создатель masscan утверждает, что теоретически можно просканить весь интернет на один порт за несколько минут, фактически обнаруживается много подводных камней, влияющих либо на скорость, либо на точность информации.
Как ни странно, сканированием всего интернета (или его частей) люди занимаются систематически. А некоторые даже выкладывают итоги в Сеть. Так, веселый пример был в 2012 году, когда чел «похакал» с полмиллиона девайсов в интернете и заставил их просканить всю сеть на 700 портов (с детектом портов). Хаканье вроде как заключалось в небольшом подборе логина и пароля (root:root, admin:admin, без паролей и так далее). В итоге получилось 9 Тб общедоступных данных.
Компания Rapid7 (которая давно была известна сканированиями мира) наконец раскрыла свои данные и предложила проект Sonar. В рамках него она предоставила итоги сканирования десятка TCP- и UDP-портов (с баннерами — 2,4 Тб), обратные DNS PTR записи (50 Гб), данные SSL-сертификатов со всех 443 портов (50 Гб). А также предложила комьюнити делиться своими изысканиями и сканами. Так что у нас уже есть большая куча данных! Осталось теперь отпарсить и выискать интересуемое :).
2 comments On Как просканировать порты в большой сети.
Pingback: 7 команд NMAP которые помогут в разведке перед взломом. - Cryptoworld ()
Это очень интересная статья как для новичков, так и для бывалых! По поводу сканирования посоветую одно — ищите нормального хостера. Не того, где ответ от ТП 3 дня, а НОРМАЛЬНОГО! В моём случае им стал bpw.sc, но это не реклама, а просто пример. После такой находки можно спокойно парсить без каких-либо проблем.