ZMap - быстрый сетевой сканер с открытым исходным кодом

ZMap - это быстрый сетевой сканер с открытым исходным кодом, предназначенный для исследования сети в масштабах всего Интернета. На обычном настольном компьютере с гигабитным Ethernet-подключением ZMap способен просканировать все публичное пространство адресов IPv4 менее чем за 45 минут.

В то время как предыдущие сетевые инструменты были разработаны для сканирования небольших сегментов сети, ZMap специально спроектирован для сканирования всего адресного пространства. Он построен по модульному принципу, что позволяет использовать его с другими инструментами для исследования сети. ZMap работает под GNU/Linux и поддерживает сканирование TCP SYN и эхо-запросов ICMP "из коробки".

ZMap является типичным "async/syn-cookie" сканером, как scanrand, Unicornscan и masscan.

Хотя ZMap является мощным инструментом для исследователей, имейте в виду, что, запуская ZMap, вы потенциально сканируете ВСЕ адресное пространство IPv4, и некоторые пользователи могут не оценить ваше сканирование. Мы призываем пользователей ZMap уважать просьбы о прекращении сканирования и исключить эти сети из текущего сканирования.

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

Лучшие практики сканирования

  1. Тесная координация с администраторами локальной сети для снижения рисков и обработки запросов
  2. Убедитесь, что сканирование не перегрузит локальную сеть или провайдера.
  3. Сигнализируйте о доброкачественном характере сканирования на веб-страницах и в DNS-записях исходных адресов
  4. Четко объяснять цель и объем сканирования во всех сообщениях.
  5. Предоставить простой способ отказа от сканирования и оперативно удовлетворять запросы
  6. Проводить сканирование не чаще и не чаще, чем это необходимо для достижения целей исследования
  7. Распределяйте трафик сканирования по времени или по адресам источников, если это возможно.

Установка zmap

Установка пакета

Установка пакета zmap

Установка zmap из исходников

Установка пакетов, необходимых для сборки

Установка пакетов, необходимых для сборки

Создаем рабочую  директорию и переходим в нее

Клонируем репозиторий

Клонирование zmap с git

Далее переходим в директорию zmap и собираем

По окончанию сборки, устанавливаем zmap

Проверьте версию zmap, что бы убедиться что установка прошла успешно

zmap версия

Параметры командной строки zmap

  • -p, --target-port=номер порта для сканирования (для TCP и UDP сканирования)
  • -o, --output-file=имя Выходной файл
  • -b, --blocklist-file=путь Файл подсетей для исключения, в нотации CIDR, например, 192.168.0.0/16
  • -w, --allowlist-file=path Файл подсетей для ограничения сканирования, в CIDR нотации, например, 192.168.0.0/16
  • -I, --list-of-ips-file=path Список отдельных адресов для сканирования в произвольном порядке. Используйте --white-list-файл, если не требуется >1 миллион IP-адресов
  • -r, --rate=pps Установить скорость отправки в пакетах/сек.
  • -B, --bandwidth=bps Установить скорость передачи в битах/секунду (поддерживает суффиксы G, M и K)
  • --batch=pps Устанавливает количество пакетов для отправки за итерацию
  • -n, --max-targets=n Максимальное количество целей для зондирования (в виде числа или процент от адресного пространства)
  • -t, --max-runtime=secs Максимальное время отправки пакетов
  • -N, --max-results=n Максимальное количество возвращаемых результатов
  • -P, --probes=n Количество зондов для отправки на каждый IP-адрес (по умолчанию=`1')
  • -c, --cooldown-time=secs Сколько времени продолжать прием после отправки последнего зонда (по умолчанию 8)
  • -e, --seed=n Семя, используемое для выбора перестановки адресов
  • --retries=n Максимальное количество попыток отправить пакет, если отправка не удалась (по умолчанию=`10')
  • -d, --dryrun Не отправлять пакеты.
  • --shards=N Задать общее количество шардов (по умолчанию=1)
  • --shard=n Установить, на какой шард производится сканирование (0 индексированный) (по умолчанию=0)
  • -s, --source-port=port|range Исходный порт(ы) для пакетов сканирования
  • -S, --source-ip=ip|range Адрес(ы) источника для пакетов сканирования
  • -G, --gateway-mac=addr Указать MAC-адрес шлюза
  • --source-mac=addr MAC-адрес источника
  • -i, --interface=name Укажите сетевой интерфейс для использования
  • -X, --iplayer Отправляет IP-пакеты вместо Ethernet (для VPN).
  • -M, --probe-module=name Выберите модуль зондирования (по умолчанию=`tcp_synscan`)
  • --probe-args=args Аргументы для передачи в модуль зондирования
  • --probe-ttl=n Установить значение TTL для IP-пакетов зонда (по умолчанию=255)
  • --list-probe-modules Список доступных модулей зондирования
  • -f, --output-fields=fields Поля, которые должны быть выведены в наборе результатов.
  • -O, --output-module=name Выбрать модуль вывода
  • --output-args=args Аргументы для передачи в модуль вывода
  • --output-filter=filter Укажите фильтр по полям ответа, чтобы ограничить количество ответов, отправляемых в модуль вывода модуль
  • --list-output-modules Список доступных модулей вывода
  • --list-output-fields Список всех полей, которые могут быть выведены выбранным модулем вывода модуль зонда
  • --no-header-row Предотвращает вывод любых строк заголовков в данных. (например, заголовки CSV).
  • -v, --verbosity=n Уровень детализации журнала (0-5) (по умолчанию=3)
  • -l, --log-file=name Запись записей журнала в файл
  • -L, --log-directory=директория Запись записей журнала в файл с временной меткой в этой каталоге
  • -m, --metadata-file=name Выходной файл для метаданных сканирования (JSON)
  • -u, --status-updates-file=name Запись обновлений хода сканирования в CSV-файл
  • -q, --quiet Не печатать обновления статуса
  • --disable-syslog Отключает запись сообщений в syslog
  • --notes=notes Вставлять указанные пользователем примечания в метаданные сканирования
  • --user-metadata=json Вставлять указанные пользователем метаданные JSON в метаданные сканирования метаданные
  • -C, --config=filename Чтение конфигурационного файла, в котором могут быть указаны любой из этих параметров (по умолчанию=/etc/zmap/zmap.conf)
  • --max-sendto-failures=n Максимальное количество отказов NIC sendto перед тем, как сканирование будет прервано (по умолчанию=-1)
  • --min-hitrate=n Минимальный хитрейт, который сканирование может достигнуть до того, как сканирование будет прервано (по умолчанию=0.0)
  • -T, --sender-threads=n Потоки, используемые для отправки пакетов (по умолчанию=1)
  • --cores=STRING Список ядер, разделенных запятыми, для привязки к ним
  • --ignore-blocklist-errors Игнорировать недопустимые записи в разрешающем/блокирующем списке файл.
  • -h, --help Вывести справку и выйти из программы
  • -V, --version Вывести версию

Использование

Понравилась статья? Поделиться с друзьями:
Добавить комментарий