Массовый сканер IP портов

“Для разведки больших сетей нужен сканер, работающий с пропускной способностью канала, а не с пропускной способностью процессора. Masscan, это именно такой инструмент. Он игнорирует стандартный сетевой стек ОС и говорит с сетевым адаптером напрямую, превращая задачу сканирования в пакетную рассылку.”

🔐 MASSCAN: Быстрый сканер IP-портов для защищенных сетей

Основной инструмент для оперативной разведки сетей с миллионами узлов

Когда требуется просканировать не отдельный сервер, а целый пул IP-адресов, классические сканеры вроде Nmap упираются в архитектурные ограничения. Они работают через системные вызовы ОС, что создает накладные расходы и ограничивает скорость тысячью пакетов в секунду. Для сети класса /24 это может занять часы, а для крупной корпоративной сети — дни. Masscan обходит это ограничение, поднимая скорость на порядки: до 10 миллионов пакетов в секунду.

Инструмент был создан Робертом Грэмом в 2012 году с простой идеей: использовать raw-сокеты и асинхронную архитектуру для обхода стандартного сетевого стека. Это дало ему не только скорость, но и полный контроль над формированием пакетов. Однако такой подход — палка о двух концах. Неправильная настройка скорости или диапазонов сканирования может привести к блокировке вашего IP-адреса системами защиты или вызвать юридические последствия при работе без санкции.

Для работы Masscan требуются права администратора (root), так как он работает с сетевым интерфейсом на низком уровне. Все операции с такими инструментами должны быть задокументированы и строго обоснованы в рамках аудита информационной безопасности или пентеста.

⚙️ Технические характеристики — что делает MASSCAN уникальным

Секрет скорости Masscan кроется в нескольких ключевых архитектурных решениях, которые отличают его от сканеров на основе connect()-системных вызовов.

Функция Описание Практический эффект
Raw-сокеты Полный обход сетевого стека операционной системы (TCP/IP stack). Masscan формирует и отправляет сырые Ethernet-кадры напрямую через сетевой драйвер. Устранение задержек на обработку пакетов ядром ОС. Скорость ограничивается только пропускной способностью канала и сетевым адаптером.
Асинхронная обработка (async I/O) Использование неблокирующего ввода-вывода через механизмы вроде epoll (Linux) или kqueue (BSD). Один поток управляет десятками тысяч «полуоткрытых» TCP-соединений. Минимальная нагрузка на процессор при обработке тысяч ответов в секунду. Масштабируемость до пределов сетевого интерфейса.
Кастомный TCP/IP стек Собственная минималистичная реализация стека протоколов для формирования и парсинга пакетов. Контроль над каждым битом в заголовке пакета. Возможность тонкой настройки (например, изменение TTL, манипуляция флагами TCP), экономия трафика и усложнение детектирования IDS/IPS.
Поддержка 10Gbps+ Архитектура, оптимизированная для работы на высокоскоростных каналах. Сканирование крупных сетевых сегментов (например, 10.0.0.0/8) становится выполнимой задачей за приемлемое время, а не за недели.

🎯 Практика: команды для быстрого сканирования

Синтаксис Masscan намеренно сделан похожим на Nmap для простоты освоения. Ключевой параметр — --rate, управляющий интенсивностью сканирования. Установка слишком высокого значения на маломощном канале или для «чужих» сетей — верный путь к проблемам.

Команда Назначение и пояснения
masscan -p1-65535 192.168.1.0/24 Полное сканирование всех TCP-портов в типичной внутренней подсети. Без указания --rate будет использована скорость по умолчанию (100 пакетов/сек), что безопасно, но не раскрывает потенциал инструмента.
masscan -p80,443,8080 10.0.0.0/8 --rate 1000 Таргетированное сканирование веб-портов в огромной сети (16+ миллионов адресов). Скорость в 1000 пакетов/сек позволит завершить такую задачу за несколько часов, а не месяцев.
masscan -p1-65535 --rate 10000 172.16.0.0/12 -oG scan_results.gnmap Высокоскоростное сканирование диапазона частных адресов с выводом в формат, совместимый с Nmap (-oG). Это ключ для последующей интеграции.
masscan -pU:53,67,68,161 192.168.0.0/16 --rate 2000 Сканирование конкретных UDP-портов (DNS, DHCP, SNMP). UDP-сканирование сложнее и часто требует более низкой скорости из-за отсутствия подтверждений доставки.

✅ Интеграция в рабочий процесс: как использовать MASSCAN эффективно

Masscan редко используется в отрыве от других инструментов. Его роль — быстрая и грубая первоначальная разведка. Точную идентификацию сервисов, проверку уязвимостей или детальное изучение он не проводит.

MASSCAN + Nmap: комбинация скорости и точности

Стандартный пайплайн: Masscan быстро находит открытые порты в большом пуле адресов, а Nmap проводит на них детальный version detection и скриптинг.

# Этап 1: Быстрое сканирование с сохранением списка IP:порт
masscan -p1-65535 10.0.1.0/24 --rate 5000 -oG masscan_output.gnmap

# Этап 2: Подготовка списка целей для Nmap (извлекаем только уникальные IP)
grep 'open' masscan_output.gnmap | awk '{print $4}' | sort -u > targets.txt

# Этап 3: Детальное сканирование найденных хостов
nmap -sV -sC -iL targets.txt -oA nmap_detailed_scan

Реальный сценарий: аудит внешнего периметра крупной организации

Задача: за 6 часов определить все хосты с открытыми портами 80, 443, 8080, 8443 в сети провайдера (допустим, 93.184.0.0/16).

  1. Расчет нагрузки: Сеть /16, это 65536 адресов. 4 порта на адрес = ~262 тысячи проверок. При --rate 1000 сканирование займет ~4.5 минуты. Это позволяет сделать множество проходов с разными настройками за отведенное время.
  2. Команда сканирования: masscan -p80,443,8080,8443 93.184.0.0/16 --rate 1000 --excludefile exclude.txt -oJ perimeter_scan.json. Файл exclude.txt содержит IP-адреса, сканирование которых запрещено (например, облака партнеров).
  3. Анализ результатов: Формат JSON (-oJ) удобен для автоматической обработки. Простым скриптом на Python можно выделить список IP, классифицировать их по открытым портам и сгенерировать отчет для дальнейшего анализа с помощью Nmap или специализированных сканеров уязвимостей.

📝 Итог: когда использовать MASSCAN

Masscan, это инструмент для конкретных задач сетевой разведки в условиях больших объемов данных. Его стоит выбирать, когда:

  • Объем сканируемых адресов измеряется тысячами и более.
  • Время — критический фактор, и требуется предварительная картина сети за минуты, а не за часы.
  • Есть достаточная пропускная способность канала (желательно не менее 100 Мбит/с).
  • Работа ведется в рамках санкционированного аудита или тестирования на проникновение, где действия легальны и задокументированы.

Важно помнить: мощность Masscan накладывает и повышенную ответственность. Использование вне правового поля, особенно в свете требований 152-ФЗ о защите персональных данных и положений ФСТЭК, может трактоваться как несанкционированный доступ. Скорость сканирования (--rate) всегда должна быть адекватна цели и пропускной способности как вашего канала, так и целевой сети, чтобы не вызвать отказ в обслуживании (DoS). Все операции должны логироваться, а их необходимость — обосновываться в плане работ по аудиту ИБ.

Оставьте комментарий