Skip to content
KitploitKITPLOIT
ИнструментыБлог
Log in
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
masscan — TCP-сканер портов, асинхронно отправляющий SYN-пакеты, сканирует весь Интернет менее чем за 5 минут. | Kitploit
Инструменты/GitHubGitHub/robertdavidgraham/masscan
Сниффинг и анализ пакетовРазведкаКартирование сетиСканирование портовСбор информацииТестирование на ПроникновениеТоп в Картирование сети №2Топ в Сниффинг и анализ пакетов №17Топ в Сканирование портов №2
25.9k3.2k825 месяцев назадПроверено Kitploit
GitHubrobertdavidgraham/masscan

masscan

TCP-сканер портов, асинхронно отправляющий SYN-пакеты, сканирует весь Интернет менее чем за 5 минут.

Репозиторий

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

unittests

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

Это сканер портов масштаба Интернета. Он может просканировать весь Интернет менее чем за 5 минут, передавая 10 миллионов пакетов в секунду с одной машины.

Его использование (параметры, вывод) похоже на nmap, самый известный сканер портов. Если сомневаетесь, попробуйте одну из тех функций — поддерживаются функции, предназначенные для массового сканирования множества машин, а углублённое сканирование отдельных машин — нет.

Внутренне он использует асинхронную передачу, как сканеры портов scanrand, unicornscan и ZMap. Он более гибок, допуская произвольные диапазоны портов и адресов.

ПРИМЕЧАНИЕ: masscan использует свой собственный специализированный стек TCP/IP. Всё, кроме простого сканирования портов, может вызвать конфликт с локальным стеком TCP/IP. Это означает, что вам нужно использовать опцию --src-ip для работы с другого IP-адреса или использовать --src-port для настройки исходных портов masscan, а затем также настроить внутренний брандмауэр (например, pf или iptables) для блокировки этих портов от остальной операционной системы.

Этот инструмент бесплатен, но подумайте о пожертвовании на его развитие: Bitcoin-кошелёк: 1MASSCANaHUiyTtR3bJ2sLGuMw5kDBaj4T

Сборка

На Debian/Ubuntu это выглядит примерно так. На самом деле у него нет зависимостей, кроме компилятора C (например, gcc или clang).

sudo apt-get --assume-yes install git make gcc
git clone https://github.com/robertdavidgraham/masscan
cd masscan
make

Это помещает программу в подкаталог masscan/bin. Чтобы установить её (в Linux), выполните:

make install

Исходный код состоит из множества маленьких файлов, поэтому сборка проходит значительно быстрее при многопоточной сборке. На Raspberry Pi для этого требуется более 2 ГБ (и это приводит к сбоям), поэтому вы можете использовать меньшее число, например, -j4, а не все возможные потоки.

make -j

Хотя Linux является основной целевой платформой, код хорошо работает и на многих других системах (Windows, macOS и т.д.). Дополнительная информация о сборке:

  • Windows w/ Visual Studio: используйте проект VS10
  • Windows w/ MinGW: просто выполните make
  • Windows w/ cygwin: не будет работать
  • Mac OS X /w XCode: используйте проект XCode4
  • Mac OS X /w cmdline: просто выполните make
  • FreeBSD: выполните gmake
  • другие: попробуйте просто скомпилировать все файлы вместе: cc src/*.c -o bin/masscan

На macOS двоичные файлы x86, похоже, работают так же быстро под эмуляцией ARM.

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

Использование похоже на nmap. Для сканирования сегмента сети на наличие некоторых портов:

# masscan -p80,8000-8100 10.0.0.0/8 2603:3001:2d00:da00::/112

Это:

  • сканирует подсеть 10.x.x.x и подсети 2603:3001:2d00:da00::x
  • сканирует порт 80 и диапазон от 8000 до 8100, всего 102 порта, в обеих подсетях
  • выводит результат в <stdout>, который можно перенаправить в файл

Чтобы увидеть полный список параметров, используйте функцию --echo. Она выводит текущую конфигурацию и завершает работу. Этот вывод можно использовать как входные данные для программы:

# masscan -p80,8000-8100 10.0.0.0/8 2603:3001:2d00:da00::/112 --echo > xxx.conf
# masscan -c xxx.conf --rate 1000

Проверка баннеров

Masscan может не только определять, открыты ли порты. Он также может завершить TCP-соединение и взаимодействовать с приложением на этом порту, чтобы получить простую информацию — «баннер».

Masscan поддерживает проверку баннеров по следующим протоколам:

  • FTP
  • HTTP
  • IMAP4
  • memcached
  • POP3
  • SMTP
  • SSH
  • SSL
  • SMBv1
  • SMBv2
  • Telnet
  • RDP
  • VNC

Проблема в том, что masscan содержит собственный стек TCP/IP, отдельный от системы, на которой он запущен. Когда локальная система получает SYN-ACK от исследуемой цели, она отвечает RST-пакетом, который разрывает соединение до того, как masscan сможет захватить баннер.

Самый простой способ предотвратить это — выделить masscan отдельный IP-адрес. Это будет выглядеть как один из следующих примеров:

# masscan 10.0.0.0/8 -p80 --banners --source-ip 192.168.1.200
  # masscan 2a00:1450:4007:810::/112 -p80 --banners --source-ip 2603:3001:2d00:da00:91d7:b54:b498:859d

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

В некоторых случаях, например, в WiFi, это невозможно. В таких случаях вы можете заблокировать порт, который использует masscan, с помощью брандмауэра. Это предотвращает обработку пакета локальным стеком TCP/IP, но masscan всё равно видит его, поскольку он обходит локальный стек. В Linux это будет выглядеть так:

# iptables -A INPUT -p tcp --dport 61000 -j DROP
# masscan 10.0.0.0/8 -p80 --banners --source-port 61000

Вероятно, вам следует выбирать порты, которые не конфликтуют с портами, которые Linux может иначе выбрать для исходных портов. Вы можете увидеть диапазон, используемый Linux, и перенастроить его, просмотрев файл:

/proc/sys/net/ipv4/ip_local_port_range

В последней версии Kali Linux (август 2018) этот диапазон — 32768–60999, поэтому вам следует выбирать порты ниже 32768 или 61000 и выше.

Правило iptables действует только до перезагрузки. Вам нужно узнать, как сохранить конфигурацию в зависимости от вашего дистрибутива, например, с помощью iptables-save и/или iptables-persistent.

На Mac OS X и BSD есть похожие шаги. Чтобы узнать диапазоны, которых следует избегать, используйте команду, подобную следующей:

# sysctl net.inet.ip.portrange.first net.inet.ip.portrange.last

На FreeBSD и старых MacOS используйте команду ipfw:

# sudo ipfw add 1 deny tcp from any to any 40000 in
# masscan 10.0.0.0/8 -p80 --banners --source-port 40000

На новых MacOS и OpenBSD используйте утилиту фильтрации пакетов pf. Отредактируйте файл /etc/pf.conf, добавив строку, подобную следующей:

block in proto tcp from any to any port 40000:40015

Затем для включения брандмауэра выполните команду:

# pfctl -E

Если брандмауэр уже запущен, перезагрузите правила (или перезагрузите систему) с помощью следующей команды:

# pfctl -f /etc/pf.conf

Windows не отвечает RST-пакетами, поэтому ни одна из этих техник не требуется. Однако masscan всё равно лучше всего работает со своим собственным IP-адресом, поэтому по возможности запускайте его так, даже если это строго не требуется.

То же самое необходимо и для других проверок, таких как проверка --heartbleed, которая является лишь формой проверки баннера.

Как сканировать весь Интернет

Хотя программа полезна для небольших внутренних сетей, она в первую очередь предназначена для работы со всем Интернетом. Это может выглядеть примерно так:

# masscan 0.0.0.0/0 -p0-65535

Сканирование всего Интернета — плохая идея. Во-первых, некоторые части Интернета плохо реагируют на сканирование. Во-вторых, некоторые сайты отслеживают сканирования и заносят вас в чёрный список, что может привести к блокировке полезных частей Интернета. Поэтому необходимо исключить множество диапазонов. Для занесения в чёрный список или исключения диапазонов используйте следующий синтаксис:

# masscan 0.0.0.0/0 -p0-65535 --excludefile exclude.txt

Это просто выводит результаты в командную строку. Вероятно, вы захотите сохранить их в файл. Поэтому вам нужно нечто вроде:

# masscan 0.0.0.0/0 -p0-65535 -oX scan.xml

Это сохраняет результаты в XML-файл, позволяя легко импортировать результаты в базу данных или что-то подобное.

Но это выполняется со скоростью по умолчанию 100 пакетов/сек, что займёт вечность для сканирования Интернета. Вам нужно ускорить процесс следующим образом:

# masscan 0.0.0.0/0 -p0-65535 --max-rate 100000
Скачать инструмент