Попробуйте запустить nmap по /16 на все порты — и поймёте зачем нужен masscan. Он использует собственный асинхронный TCP/IP-стек и способен отправлять миллионы пакетов в секунду. Синтаксис похож на nmap намеренно, переключаться несложно.
Простое сканирование
masscan 192.168.1.0/24 -p80,443
Весь диапазон портов на одном хосте:
masscan 10.0.0.1 -p0-65535
Топ-100 портов по аналогии с nmap:
masscan 10.0.0.0/8 --top-ports 100
Скорость — главный параметр
По умолчанию masscan шлёт 100 пакетов в секунду. Это медленно. --rate поднимает планку:
masscan 10.0.0.0/16 -p1-65535 --rate 10000
На локальной сети можно поднять до 100k и выше. На внешних целях — осторожнее: слишком высокий rate может перегрузить собственный сетевой интерфейс, потерять пакеты и дать неполный результат. Начинайте с 1000-5000, смотрите на потери.
Форматы вывода
masscan 10.0.0.0/24 -p80,443 -oX results.xml
masscan 10.0.0.0/24 -p80,443 -oJ results.json
masscan 10.0.0.0/24 -p80,443 -oG results.gnmap
grepable-формат удобно парсить для передачи в nmap. XML читает почти всё.
Исключения и баннеры
--exclude и --excludefile — убрать адреса которые нельзя сканировать. --banners — попытаться захватить баннер сервиса, работает не со всеми портами. -e eth0 — явно указать интерфейс, если masscan выбирает не тот.
Место в рабочем процессе
Связка masscan + nmap — мой стандарт для широких подсетей. Masscan быстро находит открытые порты по всему диапазону, потом только живые пары «хост:порт» уходят в nmap для определения версий и скриптов. На порядки быстрее чем гонять nmap по всему диапазону — и при этом глубина анализа не теряется.
Пока нет комментариев. Будьте первым!