ZMap или Как просканировать все IPv4 адреса мира за 45 минут

ZMap или Как просканировать все IPv4 адреса мира за 45 минут

Life-Hack

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

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

ZMap более чем в 1300 раз быстрее чем именитый конкурент Nmap на наиболее агрессивных дефолтных настройках при той же точности.

Исходный код программы: https://github.com/zmap/zmap

Требования для ZMap

ZMap, в настоящее врем, работает только на 64-битных системах. При работе ему нужно 600 Мб оперативной памяти. Для компиляции нужен CMake 2.8.12 или выше.

Установка ZMap

Установка на Fedora 19+

Просто наберите

yum install zmap


Если вы хотите установить на Archlinux, пожалуйста, посмотрите AUR ссылку: https://aur.archlinux.org/packages/zmap/

Компиляция ZMap

Установка ZMap на Kali Linux

На Kali Linux не ставится. При компиляции появляется ошибка

CMake 2.8.12 or higher is required. You are running version 2.8.9


Для ZMap нужны GMP — бесплатная библиотека для вычислений с произвольной точностью, — gengetopt и libpcap. ZMap также использует flex и byacc. Эти пакеты на ОС семейства Debian можно установить так:

sudo apt-get install build-essential cmake libgmp3-dev gengetopt libpcap-dev flex byacc libjson-c-dev pkg-config


На RHEL- и основанных на Fedora системах запустите:

sudo yum install gmp gmp-devel gengetopt libpcap-devel flex byacc


Скачайте исходный код https://github.com/zmap/zmap

git clone https://github.com/zmap/zmap.git


Теперь, как обычно, 3 шага:

cmake [-DWITH_REDIS=ON] [-DWITH_JSON=ON] [-DENABLE_DEVELOPMENT=ON] ./

make

sudo make install


На Linux Mint компиляция прошла успешно, но установка прерывалась ошибкой:

-- Install configuration: ""

CMake Error at InstallConfFiles.cmake:2 (file):

  file COPY cannot find

  "/home/mial/opt/zmap.git/tags/v2.1.0-RC2/$./conf/blacklist.conf".

Call Stack (most recent call first):

  cmake_install.cmake:36 (include)

 Makefile:66: ошибка выполнения рецепта для цели «install»

make: *** [install] Ошибка 1


Вместо того, чтобы разбираться в чём ошибка, я поменял содержимое файла InstallConfFiles.cmake. Было:

if(NOT EXISTS "/etc/zmap/blacklist.conf")

   file(COPY "${PROJECT_SOURCE_DIR}/conf/blacklist.conf" DESTINATION "${CONFIG_DESTINATION}/blacklist.conf")

endif()

 if(NOT EXISTS "/etc/zmap/zmap.conf")

   file(COPY "${PROJECT_SOURCE_DIR}/conf/zmap.conf" DESTINATION "${CONFIG_DESTINATION}/zmap.conf")

endif()


Чтобы заработало я сделал так:

if(NOT EXISTS "/etc/zmap/blacklist.conf")

   file(COPY "./conf/blacklist.conf" DESTINATION "${CONFIG_DESTINATION}/blacklist.conf")

endif()

 if(NOT EXISTS "/etc/zmap/zmap.conf")

   file(COPY "./conf/zmap.conf" DESTINATION "${CONFIG_DESTINATION}/zmap.conf")

endif()


Т.е. понятно, что по какой-то причине не была задана переменная ${PROJECT_SOURCE_DIR}, но мне было не особо интересно разбираться, почему так случилось: для меня главное — чтобы работало. Кто знает — напишите в комментариях.

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

У меня ZMap не работала без прав суперпользователя, если у вас при запуске программы ошибка

Jul 08 17:02:45.814 [FATAL] recv: could not open device eth0: eth0: You don't have permission to capture on that device (socket: Operation not permitted)


То запускаяте её от рута.

Следующая команда просканирует 10000 рандомных адресов на порту 80 при максимальной загрузке сети 10 мегабит в секунду.

zmap --bandwidth=10M --target-port=80 --max-targets=10000 --output-file=results.csv


А это абсолютно то же самое, только в сокращённой записи.

zmap -B 10M -p 80 -n 10000 -o results.csv


Понятно, что ZMap может быть использована для сканирования заданных подсетей или блоков CIDR. Например, для сканирования только 10.0.0.0/8 и 192.168.0.0/16 на порте 80 запустите:

zmap -p 80 -o results.csv 10.0.0.0/8 192.168.0.0/16


Источник

Report Page