Masscan kali linux как пользоваться

Обновлено: 04.07.2024

Теперь, когда я узнал айпи-адрес нашей машины, мне нужно узнать, какие сервисы на ней работают, и какие порты открыты. Для этого мы воспользуемся нашим инструментом, который называется «nmap».

Давайте я покажу Вам пару новых опций «nmap».

Первая – это опция «-v», т.е подробный режим, где мы сообщаем нашему инструменту, что нужно выводить больше информации. Если Вы запустите «nmap» с опцией «-v», то довольно часто Вы можете наблюдать пустой экран. Также можно воспользоваться опциями: «-vv» «-vvv». Чем больше «v», тем больше выводится информации на экране.

Далее идет опция «-p-» или «-p 0-65535». Она означает сканирование всех tcp-портов. Далее идет опция «-A», которая отображает версию операционной системы, и уже можно сказать, что это стадия разведки. Для вывода большего перечня информации мы конечно же будем использовать ее, но она занимает намного больше времени, чем простое сканирование. Так как мы хотим взломать машину, нам нужно будет узнать как можно больше информации о ней, поэтому мы используем опцию «-A».

Далее пишем ip-адрес нашей цели, который у меня выглядит как: «192.168.15.131». Также я хочу, чтобы у меня был отчет по окончании сканирования, и у «nmap» есть 3 типа вывода. Обычный вывод, похожий на текстовый файл. Это просто копирование того, что выводится на экран. Также есть вывод в файл «gnmap». И последний третий вывод – это xml, который подается на вход другим инструментам. Сейчас я хочу сохранить вывод файлов в трех форматах: nmap, gnmap и xml. Нам нужно дописать команду опциями «–oA”, и в конце назовем файл «metasploitable2» и нажмем Enter.

В итоге у нас получится команда: «nmap –v –p 0-65535 –A 192.168.15.131 –oA metasploitable2»:

nmap –v –p 0-65535 –A 192.168.15.131 –oA metasploitable2

Поскольку мы выбрали достаточно много опций, которые выводят много информации, нам остается только ждать завершения сканирования. И это все всего лишь один ip-адрес. Сканирование может занять достаточное количество времени. Теперь представьте на реальном примере, сколько нужно ждать, если у Вас не один ip-адрес, а 100 или 200. В этом примере сканирование у меня прошло быстро, и мне не пришлось его останавливать:

результаты сканирования

Также рассмотрим опцию «-T», которая позволяет сканировать айпи адреса в тихом режиме, чтобы не сработали системы обнаружения. У нее есть параметр от 1 до 5, где цифра 1 – это очень медленное сканирование.

Не забываем, что мы указывали создание трех файлов-отчетов с разными расширениями. Они находятся в моей текущей директории:

файлы-отчеты с разными расширениями

Давайте упорядочим наш список файлов, перенеся их в отдельную директорию:

упорядочивание списков файлов

Команды должны быть Вам уже известны.

Для просмотра файлов можно использовать команду «cat» или «less», для постепенного просмотра файлов:

команда cat для просмотра файлов

Итак, мы просканировали наш ip-адрес и выявили наличие множества открытых портов, и большое количество сервисов.

Список инструментов для тестирования на проникновение и их описание

Описание Masscan

MASSCAN — это массовый сканер IP портов. Это самый быстрый сканер портов Интернета. Отправляя 10 миллионов пакетов в секунду, он может сканировать весь интернет за 6 минут. Этот инструмент полезен для обзора сетей большого масштаба — таких как Интернет или внутренние сети. Хотя скорость по умолчанию ограничена 100 пакетами в секунду, программа может разгоняться до 25 миллионов пакетов в секунду, при такой скорости весь (по одному порту на IP) Интернет будет просканирован за 3 минуты.

Он создаёт результат схожий с nmap, самым знаменитым сканером портов. Внутри он работает подобно scanrand, unicornscan и ZMap, используя асинхронную передачу. Главным отличием является то, что он быстрее этих сканеров. Дополнительно, он более гибкий, позволяет произвольные диапазоны адресов и портов.

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

Автор: Robert David Graham

Справка по Masscan

В справке отсутствует список опций, приведены только примеры использования. Ещё больше примеров вы найдёте ниже в соответствующей секции.

Чтобы просканировать порт 80 и диапазон портов с 8000 по 8100 (всего 102 порта) сети 10.x.x.x на скорости 10 тысяч пакетов в секунду наберите команду:

Программа поддерживает некоторые опции совместимые с nmap. Чтобы их увидеть наберите:

Для сохранения результатов в бинарном формате в <имя_файла> сделайте так:

Прочитать результаты сканирования из бинарного файла <имя_файла> и сохранить их в формате xml <файл для сохранения>:

Для сканирования порта 80 (здесь разные веб-сервера, роутеры, файловые хранилища, веб-камеры и другая похожая «утварь») сети 10.x.x.x с дефолтной скоростью отправки пакетов (100 пакетов в секунду)

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

Параметры могут быть установлены как в командной строке, так и в конфигурационном файле. Имена параметров везде одинаковые. В конфигурационном файле эти же настройки выглядели бы так:

Для использования конфигурационного файла наберите

Для генерации конфигурационного файла из текущих настроек наберите опцию --echo. Это остановит программу от обычного запуска и вместо этого она просто напечатает текущую конфигурацию Это полезно для генерации вашего первого конфигурационного файла или для просмотра списка параметров о которых вы не знаете.

Совместимые с Nmap опции

Руководство по Masscan

ОПЦИИ

<ip/диапазон>

всё в командной строке, что не имеет префикса ´-´ предполагается IP адресом или диапазоном. Существует три валидных формата. Первый: одиночный IPv4 адрес вроде "192.168.0.1". Второй: диапазон вроде "10.0.0.1-10.0.0.100". Третий: CIDR адрес, вроде "0.0.0.0/0". Должна быть указана хотя бы одна цель. Можно указать много целей. Это можно сделать как несколькими опциями, разделёнными пробелом, или это может быть единичная опция, разделённая запятой, такая как 10.0.0.0/8,192.168.0.1.

--range <ip/диапазон>

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

-p <порты>, --ports <порты>

задаёт порт(ы) для сканирования. Можно указать единичный порт вроде -p80. Можно указать диапазон портов вроде -p 20-25. Можно указать список портов/диапазонов вроде -p80,20-25. Можно указать UDP порты, это делается так --ports U:161,U:1024-1100.

--banners

--rate <пакетов-в-секунду>

указывает желаемую скорость передачи пакетов. Это может быть очень маленькая величина вроде 0.1 ждя передачи пакетов на скорости один в 10 секунд, так и очень большие числа вроде 10000000, при которые программа пытается передать 10 миллионов пакетов в секунду. На опыте автора программы, Windows может передавать 250 тысяч пакетов в секунду, а последние версии Linux могут 2.5 миллиона пакетов в секунду. Для 25 миллионов пакетов в секунду нужен PF_RING драйвер.

-c <имя_файла>, --conf <имя_файла>

читает конфигурационный файл. Формат конфигурационного файла описан ниже.

--resume <имя_файла>

то же самое, что и --conf, кроме того, что некоторые опции устанавливаются автоматически, среди них --append-output. Формат конфигурационного файла описан ниже.

--echo

не запускать, но вместо этого сбросить текущий конфигурационный файл. Этот файл может использоваться с опцией -c. Формат вывода описа ниже в «КОНФИГУРАЦИОННОМ ФАЙЛЕ».

-e <имя_интерфейса>, --adapter <имя_интерфейса>

использовать названный сырой сетевой интерфейс, такой как "eth0" или "dna1". Если не указан, будет использоваться первый найденный сетевый интерфейс с дефолтным шлюзом.

--adapter-ip <ip-address>

отправлять пакеты используя этот IP адрес. Если не указан, то будет использоваться первый связанный с сетью интерфейс. Вместо единичного IP адреса можно указать диапазон. ПРИМЕЧАНИЕ: размер диапазона должен представлять число в степени 2, такой как 1, 2, 4, 8, 16, 1024 и т.д.

--adapter-port <порт>

отправлять пакеты используя этот порт как источник. Если не указан, то будет выбран случайный порт в диапазоне от 40000 до 60000. Этот порт должен фильтроваться файерволом хоста (таким как iptables) для предотвращения прерывания сетевого стека хоста присланными пакетами. Вместо единичного порта, можно указать диапазон вроде 40000-40003. ПРИМЕЧАНИЕ: размер диапазона должен представлять число в степени 2 как в предыдущем примере, где в общей сложности 4 порта.

--adapter-mac <mac-address>

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

--router-mac <mac адрес>

отправлять пакеты на этот MAC адрес как на конечный пункт. Если указан, то адрес шлюза сетевого интерфейса будет отARPтан.

--ping

показывает, что сканирование должно включать ICMP эхо запрос. Его можно включать с TCP и UDP и сканированием.

--exclude <ip/диапазон>

чёрный список IP адресов или диапазонов, этот список не сканируется. Он переписывает любые указания цели и гарантирует, что этот адрес/диапазон не будет просканирован. Имеет тот же формат, что и указание цели.

--excludefile <имя_файла>

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

--append-output

приводит к тому, что вывод добавляется к файлу, а не перезаписывает этот файл.

--iflist

составить список доступных сетевых интерфейсов, а затем выйти.

--retries

количество попыток для отправки в 1 секундные интервалы. Поскольку сканер «безстатусный», то попытки отправляются независимо от того, получен ли уже ответ или нет.

--nmap

печатает помощь о совместимых с nmap альтернативах этих опций.

--pcap-payloads

читает пакеты из файла libpcap, содержащего пакеты, и извлекает полезную нагрузку UDP и связывает эту полезную нагрузку с портом назначения. Эти полезные нагрузки затем будут использоваться когда отправляются UDP пакеты с соответствующим портом назначения. Только полезная нагрузка будет запомнена для порта. Аналогично --nmap-payloads.

--open-only

сообщает только об открытых, а не закрытых портах.

--pcap <имя_файла>

сохраняет полученные пакеты (но не переданные пакеты) в файл в формате libpcap.

--packet-trace

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

--pfring

принуждает использовать драйвер PF_RING. Программа завершит работу, если PF_RING DNA драйвер недоступен.

--resume-index

указатель на сканирование, когда оно было поставлено на паузу.

--resume-count

максимальное количество зондов для отправки перед выходом. Это полезно с --resume-index для нарезки и расщепления задачи на множество экземпляров, хотя опция --shards была бы лучше.

расщепляет сканирование на экземпляры, x — это id для этого сканирования, а y — общее число экземпляров. Например, --shards 1/2 говорит экземпляру отправлять каждый другой пакет, начиная с индекса 0. Точно так же --shards 2/2 отправляет каждый другой пакет, но начинает с индекса 1, таким образом он не будет перекрываться с первым примером.

--rotate <время>

ротировать файл вывода, переименовывать его в соответствии с текущей временной меткой, отправлять в отдельную директорию. Время может указываться как количество секунд, например "3600" — это один час. Или могут быть указаны единицы времени, такие как "hourly" или "6hours" или "10min".

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

--rotate-offset <время>

сдвиг по времени. Это подстройка под временные зоны.

--rotate-dir <директория>

при ротации файлов, она указывает, в какую директорию перемещать файл. Полезная директория это /var/log/masscan.

--seed <целое число>

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

--regress

запустить регрессивный тест, возвращает ´0´ при успехе и ´1´ при неудаче.

--ttl <число>

указывает TTL исходящих пакетов, по умолчанию 255.

--wait <секунды>

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

--offline

не отправлять по-настоящему пакеты. Это полезно при низкой скорости и --packet-trace для просмотра, какие пакеты были бы отправлены. Или это полезно с --rate 100000000, чтобы провести бенчмарк, насколько большая скорость работала бы (подразумевается драйвер zero-overhead). PF_RING примерно на 20% медленнее чем результаты бенчмарка в оффлайновом режиме.

-sL

она не делает сканирования, а вместо этого создаёт список случайных адресов. Это полезно для импортирования их в другие инструменты. Опции --shard, --resume-index и --resume-count могут быть полезными с этой функцией.

--interactive

показывать результаты в режиме реального времени в консоли. Это не имеет эффекта, если используется с --output-format или --output-filename.

--output-format <формат>

указывает формат выходного файла, им может быть xml, binary, grepable, list или JSON. Должна быть указана опция --output-filename.

--output-filename <имя_файла>

Файл в которых сохранить результаты. Если указан параметр --output-format, то будет использоваться значение по умолчанию xml

-oB <имя_файла>

устанавливает формат вывода на двоичный и сохраняет в данный файл. Это эквивалент использования параметров --output-format и --output-filename. Опция --read-scan может быть использована для чтения бинарного файла. Бинарные файлы намного меньше чем их XML эквиваленты, но требуют отдельного шага для конвертации обратно в XML и другой читаемый формат.

-oX <имя_файла>

устанавливает формат вывода на XML и сохраняет в данный файл. Это эквивалент использования параметров --output-format xml и --output-filename.

-oG <имя_файла>

устанавливает формат вывода на grepable и сохраняет вывод в данный файл. Это эквивалент использования параметров --output-format grepable и --output-filename.

-oJ <имя_файла>

устанавливает формат вывода на JSON и сохраняет вывод в данный файл. Это эквивалент использования параметров --output-format json и --output-filename.

-oL <имя_файла>

устанавливает формат вывода на формат простого списка и сохраняет вывод в данный файл. Это эквивалент использования параметров --output-format list и --output-filename.

--readscan <бинарные-файлы>

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

ФОРМАТ ФАЙЛА КОНФИГУРАЦИИ

Конфигурационный файл использует те же имена параметров, как и командная строка, но без префикса --, и со знаком = между именем и значением. Примером конфигурационного файла может быть:

По умолчанию программа считывает дефолтный конфигурационный файл из /etc/masscan/masscan.conf. Это полезно для специфичных под данную систему настройках, таких как опция --adapter-xxx. Это также полезно для исключения IP адресов для сканирования всего Интернета чтобы не сделать случайную ошибку и не сканировать опасные адреса вроде тех, которые принадлежат DoD.

ПОВЕДЕНИЕ CONTROL-C

Когда пользователь нажимает ctrl-c сканирование останавливается и текущее состояние сканирования сохраняется в файл ´paused.conf´. Сканирование может быть возобновлено опцией --resume:

Программа не выходит немедленно, она будет ждать дефолтные 10 секунд для сохранения результатов из Интернета и сохранения результатов перед полным выходом. Это время можно изменить опцией --wait.

Примеры запуска Masscan

ПРОСТЫЕ ПРИМЕРЫ

Следующий пример сканирует всю частные сети на наличие устройств, прослушивающих 80 порт (веб-серверы, роутеры, IP-камеры и т. д.) и печатает все найденные открытые порты.

Следующий пример сканирует весь Интернет на DNS сервера, собирает их версии, затем сохраняет результаты в файл XML.

Вы должны быть в состоянии импортировать XML в базу данных или что-то такое.

Следующий пример читает результаты сканирования из бинарного файла под названием bin-test.scan и печатает его результаты в консоли:

Следующий пример читает результаты сканирования из бинарного файла под названием bin-test.scan и создаёт выводной XML файл под названием bin-test.xml.

ПРОДВИНУТЫЕ ПРИМЕРЫ

Допустим вы хотите просканировать весь Интернет и распределить сканирование по трём машинам. Тогда Masscan нужно запустить на трёх машинах следующим образом:

Альтернативой является использование функции «возобновления». Сканирования имеет внутренний индекс, который начинается с нуля до числа количества портов затем количества IP адресов. Следующий пример показывает разделение сканирования на куски каждый по 1000 пунктов:

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

СБРОС ПАРАЗИТНОГО ТРАФИКА

При сканировании TCP с использованием дефолтного IP адреса вашего адаптера, встроенный стек будет генерировать RST пакеты. Это не даст собрать баннеры. Есть два способа решить это. Первый способ — это создать правило файервола для блокировки порта из видимости стека. Конкретное решение зависит от вашей операционной системы, но в Linux это выглядит примерно так:

Затем, при сканировании, этот же порт должен использоваться как источник:

Альтернативой является «спуфинг» (подмена на) другой IP адрес. Этот IP адрес должен быть внутри диапазона локальной сети, но при этом не должен использоваться вашим собственным компьютером или другим компьютером в сети. Пример этого выглядит примерно так:

Настройте таким путём вашего IP адрес источника является предпочитаемым способом запуска сканера.

Установка Masscan

Программа предустановлена в Kali Linux.

Установка в Debian, Mint, Ubuntu

Это поместит программу в подкаталог masscan/bin. Если вы хотите установить её куда-то в систему, то вы должны вручную скопировать её куда-нибудь вроде usr/local/bin.

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

Хотя Linux является главной целевой платформой, код хорошо запускается на многих других системах. Вот дополнительная информация о них:

Установка в Windows

Windows с Visual Studio: используйте проект VS10

Windows с MingGW: просто наберите make

Windows с cygwin: не работает

Установка в Mac OS X

Mac OS X с XCode: используйте проект XCode4

Mac OS X с cmdline: просто наберите make

Установка в FreeBSD

По другим системам информации нет. Автора они не интересуют.

Скриншоты Masscan

Это утилита командной строки.

Графический интерфейс Masscan

Установите и настройте ваш веб-сервер, скопируйте файлы MASSCAN web-ui:

Если вы вдруг забыли (или не знали) пароль от MySQL в Kali Linux, то сделайте так:

В другом терминале

Создайте базу данных, пользователя, импортируйте базу данных.

Обновите файл веб конфигурации, подправив данные о пользователе и пароле:

Теперь вы можете использовать masscan для сканирования ваших целей, при этом указав XML в качестве формата вывода.

Теперь давайте импортируем результаты сканирования.

Теперь нам доступен веб-интерфейс с удобным просмотром и возможностью поиска.

Как использовать Masscan для быстрого подсчета большого количества хостов., изображение №1

Masscan существует уже некоторое время и уже используется пентестерами по всему миру. Это инструмент разведки, который может передавать до 10 миллионов пакетов в секунду. Он использует асинхронную передачу и собственный стек TCP / IP. Таким образом, разные потоки используются для передачи и приема пакетов.

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

Но для достижения этих высоких показателей нужны специальные драйверы (PF_RING) и сетевые карты. Одним из аспектов, который делает этот инструмент удобным, является то, что он взаимодействует с пользователем очень похоже на стиль nmap.

особенности

  • Сверхскоростное сканирование портов: передает до 10M пакетов в секунду (требуются драйверы NIC & PF_RING)
  • Вывод в стиле Nmap
  • Спецификация цели и параметры стиля Nmap
  • Захват баннера
  • Базовое сканирование уязвимости как Heartbleed
  • Пользовательский стек TCP / IP

Пользы

  • Его можно использовать в качестве инструмента разведки первого уровня для сопоставления сети.
  • Перечислять большое количество хостов
  • Перечислять различные подсети внутри организации
  • Перечень интернета!
  • Случайное сканирование для удовольствия и знаний!

Этот учебник состоит из следующих разделов лаборатории

  1. Самопроверка
  2. Сканирование Google IP, получение баннера из диапазона Google IP и параметры вывода
  3. Приостановка и возобновление сканирования
  4. Исключить конкретные адреса и разные варианты
  5. Собираем все вместе в пользовательскую конфигурацию

Лабораторная работа 1: Самотестирование

В этой лаборатории мы проверяем правильность установки masscan. Если вы не используете последнюю версию Kali или MassCan не установлен, обратитесь к домашней странице инструмента

Выше будет проверено, является ли установка правильной.

Как использовать Masscan для быстрого подсчета большого количества хостов., изображение №2

Теперь мы также проверим производительность.

Это будет сканировать целые подсети IP-адресов, но не заходя в интернет. Это не даст никаких достойных результатов, но вы увидите время, необходимое для сканирования, когда скорость составляет 100 пакетов / сек.

Как использовать Masscan для быстрого подсчета большого количества хостов., изображение №3

Теперь постепенно увеличивайте скорость до 1000, 100000 по одной за раз и посмотрите, сколько может работать ваша сеть и система. Сравните время, необходимое для всех.

Как использовать Masscan для быстрого подсчета большого количества хостов., изображение №4

Примечание: не забудьте включить опцию –offline, иначе вы облажаетесь.

Лабораторная работа 2: сканирование IP-адресов Google, захват баннеров и результатов вывода

В этой лабораторной работе мы сканируем ряд общедоступных IP-адресов Google. Сначала мы выясняем, к чему IP-адрес разрешает Google, а затем выполняем сканирование портов в определенном диапазоне портов 80 и 443.

Как использовать Masscan для быстрого подсчета большого количества хостов., изображение №5

Далее мы заменяем найденный IP на его диапазон.

Например: если полученный нами IP-адрес 216.58.196.12, мы используем 216.58.196.0/24 для сканирования IP-адресов 216.58.196.1-254.

Как использовать Masscan для быстрого подсчета большого количества хостов., изображение №6

Это самая основная операция сканирования в masscan. Вы можете использовать это для сканирования любых IP-адресов. Вместо указания значения подсети вы можете задать диапазон IP-адресов (216.58.196.1-50), как в nmap.

Теперь мы пытаемся захватить баннеры с IP-адресов, которые мы сканируем. Для этого мы можем столкнуться с проблемой. Поскольку masscan использует собственный стек, ОС может отклонить пакет. Это хорошо объяснено на домашней странице инструмента. Так что сейчас нам нужно указать отдельный IP-адрес в той же подсети.

На данный момент, мой Кали имеет IP-адрес 192.168.1.4. Поэтому нам нужно указать исходный IP-адрес в диапазоне 192.168.1.0/24.

Вы также можете указать диапазон IP.

Как использовать Masscan для быстрого подсчета большого количества хостов., изображение №7

Далее мы сохраняем результаты в файлы. Это очень похоже на Nmap.

Или иначе, мы можем просто указать «-ox»

Как использовать Masscan для быстрого подсчета большого количества хостов., изображение №8

Для анализа этой информации импортируйте этот файл в любые пакеты электронных таблиц, такие как Excel или LibreOffice Calc.

Как использовать Masscan для быстрого подсчета большого количества хостов., изображение №9

Лабораторная работа 3: приостановка и возобновление сканирования

Предположим, у вас есть очень большая подсеть для сканирования, и вам нужно приостановить сканирование для других целей, masscan автоматически приостанавливает сканирование, когда вы нажимаете «Cntrl + C». Кроме того, вы можете возобновить его, когда захотите.

Как использовать Masscan для быстрого подсчета большого количества хостов., изображение №10

Как использовать Masscan для быстрого подсчета большого количества хостов., изображение №11

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

Я установил Etherape в Кали для визуализации. Вы можете использовать Wireshark или любые другие визуализаторы.

Как использовать Masscan для быстрого подсчета большого количества хостов., изображение №12

Однако, если у вас есть несколько сканирований или разных сканирований, которые необходимо приостановить, это создает конфликт. Поэтому после приостановки обязательно переименуйте файл или запустите разные экземпляры в разных папках.

После завершения сканирования вы можете импортировать XML в некоторые пакеты электронных таблиц для проведения анализа.

Как использовать Masscan для быстрого подсчета большого количества хостов., изображение №13

Лабораторная работа 4: исключить конкретные адреса и другие параметры

В этом разделе мы опробуем параметр –exclude и некоторые другие параметры misc.

Опция –exclude очень необходима и важна. При сканировании сети организации могут быть некоторые IP-адреса / диапазоны, которые вы не можете сканировать. Что еще более важно, при сканировании Интернета вы можете не сканировать армейские / оборонительные сайты, правительственные сайты и т. Д.

Для этой демонстрации я отсканировал свой собственный диапазон публичных IP-адресов, исключая только мой IP-адрес.

Как использовать Masscan для быстрого подсчета большого количества хостов., изображение №14

Теперь давайте рассмотрим некоторые из опций misc:

1.Shards

Вы можете запустить несколько экземпляров masscan для одного и того же диапазона IP-адресов. Когда вы разделяете сканирование на несколько экземпляров, сканируемые IP-адреса разделяются на основе порядкового номера. Например, если вы используете 3 экземпляра, первый экземпляр будет сканировать IP-адреса с индексом 0, второй экземпляр будет сканировать IP-адреса с индексом 1, а третий будет сканировать IP-адреса с индексом 3. Эта функция гарантирует, что IP-адреса не перекрываются и не дублируются. в 2-х экземплярах сканирования. Вы также можете запускать разные экземпляры на разных машинах. Ниже небольшая демонстрация:

Среда:

названиеОперационные системыIPАтакующий 1Кали Линукс192.168.1.4Атакующий 2Кали Линукс192.168.1.5цель -172.217.0.0/16

Как использовать Masscan для быстрого подсчета большого количества хостов., изображение №15

2.Ping

Эта опция включает в себя ICMP-эхо-запрос также со сканированием

Как использовать Masscan для быстрого подсчета большого количества хостов., изображение №16

3.Rate

Это указывает скорость (в пакетах в секунду), с которой должно выполняться сканирование. Автор утверждает, что диапазон от 0,1 (1 пакет в 10 секунд) до 10000000 (10 миллионов пакетов в секунду) и выше. Кроме того, автор утверждает, что он достиг следующих показателей в соответствующих ОС

Однако, если вы хотите пойти дальше, вам нужен адаптер Intel 10 Гбит / с и драйвер PF_Ring. Автор описал на главной странице .

Ссылки на адаптер и PF_RING:

4. Адаптер IP

Адаптер и IP-адрес для использования в случае нескольких адаптеров.

5. Адаптер Порт

Эта опция указывает порт источника, с которого должны передаваться пакеты. Диапазон по умолчанию составляет 40000-60000

Как использовать Masscan для быстрого подсчета большого количества хостов., изображение №17

Примечание : диапазон портов должен составлять до четной мощности 2. В приведенном выше примере 5000 - 5127. Таким образом, всего используется 1028 портов, включая порт 5000

6. Сканирование UDP

Да, конечно, сканирование UDP доступно в массовом просмотре. Вы можете запустить сканирование UDP, просто добавив «U» при указании портов.

Как использовать Masscan для быстрого подсчета большого количества хостов., изображение №18

Лабораторная работа 5: собрать все вместе в пользовательской конфигурации

Теперь пришло время собрать все опции в один файл конфигурации. Написание файла конфигурации для masscan очень просто. Следующее - некоторые из пунктов, чтобы отметить:

Чтобы запустить masscan с конфигом, просто используйте опцию «-c»

Вот пример файла конфигурации, который суммирует все, что мы обсуждали в этом длинном уроке

Вывод

Masscan на самом деле очень мощный инструмент разведки с известным стилем синтаксиса и опциями вывода. Masscan может использоваться для подсчета большого числа хостов на начальных этапах Pentest, и, используя эти результаты, мы можем перейти к обнаружению сервиса с помощью Nmap или к сканированию уязвимостей с помощью вашего любимого инструмента. В любом случае, работать с masscan - забавный инструмент, поскольку он может очень быстро давать результаты. Но будьте предельно осторожны при сканировании на публике. Используйте этот инструмент с умом, иначе вы попадете в тюрьму, и я не буду нести за это ответственность.

Во всяком случае, надеюсь, что вы узнали что-то из этого урока. Пожалуйста, поделитесь этой статьей, так как это заняло у меня много времени и сил, чтобы создать учебник с такими подробностями. Также поделитесь своим мнением об этом.

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




Содержание:

Nmap – opensource утилита для сканирования сетей, является одним из самых популярных инструментов у безопасников и системных администраторов. В первую очередь используется для сканирования портов, но, кроме этого, имеет огромную массу полезных функций, что, по сути, делает Nmap супер-комбайном для исследования сетей.

Помимо проверки открытых/закрытых портов Nmap может идентифицировать сервис, слушающий открытый порт, и его версию, а иногда помогает определить ОС. В Nmap есть поддержка скриптов для сканирования (NSE — Nmap Scripting Engine). С использованием скриптов возможно проверить уязвимости для различных сервисов (если, конечно, для них есть скрипт, либо можно всегда написать свой) или побрутить пароли от различных сервисов.

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

Удобен для сканирования небольших сетей и незаменим для точечного сканирования отдельных хостов.

Плюсы:

  • Быстро работает с небольшим диапазоном хостов;
  • Гибкость настроек — можно комбинировать опции таким образом, чтобы получить максимально информативные данные за приемлемое время;
  • Параллельное сканирование — список целевых хостов разделяется на группы, а потом каждая группа поочередно сканируется, внутри группы используется параллельное сканирование. Также разделение на группы является небольшим недостатком (см.ниже);
  • Предопределенные наборы скриптов для разных задач — можно не тратить много времени на подбор конкретных скриптов, а указать группы скриптов;
  • Вывод результатов — 5 различных форматов, включая XML, который может быть импортирован в другие инструменты.

Минусы:

  • Сканирование группы хостов — информация о каком-либо хосте недоступна, пока не закончится сканирование всей группы. Это решается установкой в опциях максимального размера группы и максимального временного интервала, в течение которого будет ожидаться ответ на запрос, перед тем, как прекратить попытки или совершить еще одну;
  • При сканировании Nmap отправляет SYN-пакеты на целевой порт и ожидает любого ответного пакета или наступления таймаута, в случае когда ответа нет. Это негативно сказывается на производительности сканера в целом, в сравнении с асинхронными сканерами (например, Zmap или masscan);
  • При сканировании больших сетей с использованием флагов для ускорения сканирования (--min-rate, --min-parallelism) может давать false-negative результаты, пропуская открытые порты на хосте. Также использовать данные опции следует с осторожностью, учитывая что большой packet-rate может привести к непреднамеренному DoS.

Zmap (не путать с ZenMap) — также сканер с открытым исходным кодом, создавался как более быстрая альтернатива Nmap.

В отличие от Nmap — Zmap при отправке SYN-пакетов не ждет пока вернется ответ, а продолжает сканирование, параллельно ожидая ответы от всех хостов, таким образом фактически он не поддерживает состояние соединения. Когда ответ на SYN-пакет придет Zmap по содержанию пакета поймет какой порт и на каком хосте был открыт. Кроме того, Zmap отправляет только один SYN-пакет на сканируемый порт. Также есть возможность использования PF_RING для быстрого сканирования больших сетей, если у вас вдруг оказался под рукой 10-гигабитный интерфейс и совместимая сетевая карта.

Плюсы:

  • Скорость сканирования;
  • Zmap генерирует Ethernet-фреймы минуя системный стек TCP/IP;
  • Возможность использования PF_RING;
  • ZMap рандомизирует цели для равномерного распределения нагрузки на сканируемой стороне;
  • Возможность интеграции с ZGrab (инструмент для сбора информации о сервисах на прикладном уровне L7).

Минусы:

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

Masscan


Masscan — удивительно, но тоже сканер с открытым исходным кодом, который создавался с одной целью — сканировать Интернет ещё быстрее (меньше, чем за 6 минут со скоростью

10 млн пакетов/с). По сути работает почти также как и Zmap, только ещё быстрее.

Плюсы:

  • Синтаксис схож с Nmap, а также программа поддерживает некоторые совместимые с Nmap опции;
  • Cкорость работы — один из самых быстрых асинхронных сканеров.
  • Гибкий механизм сканирования — возобновление прерванного сканирования, распределение нагрузки по нескольким устройствам (как и в Zmap).

Минусы:

  • Аналогично как и с Zmap нагрузка на саму сеть крайне высока, что может привести к DoS;
  • По умолчанию нет возможности сканировать на прикладном уровне L7.

Nessus

Nessus — сканер для автоматизации проверки и обнаружения известных уязвимостей в системе. Исходный код закрыт, существует бесплатная версия Nessus Home, которая позволяет сканировать до 16 IP-адресов с такой же скоростью и подробным анализом, что и в платной версии.

Способен определять уязвимые версии служб или серверов, обнаруживать ошибки в конфигурации системы, выполнять bruteforce словарных паролей. Можно использовать для определения корректности настроек сервисов (почта, обновления и т.п.), а также при подготовке к PCI DSS аудиту. Кроме того в Nessus можно передать учетные данные для хоста (SSH или доменная учетная записи в Active Directory), и сканер получит доступ к хосту и проведет проверки прямо на нем, эта опция называется credential scan. Удобен для компаний, проводящих аудиты собственных сетей.

Плюсы:

  • Отдельные сценарии для каждой уязвимости, база которых постоянно обновляется;
  • Вывод результатов — простой текст, XML, HTML и LaTeX;
  • API Nessus — позволяет автоматизировать процессы сканирования и получения результатов;
  • Credential Scan, можно использовать учетные данные Windows или Linux для проверки обновлений или иных уязвимостей;
  • Возможность писать собственные встраиваемые модули безопасности — в сканере имеется собственный язык сценариев NASL (Nessus Attack Scripting Language);
  • Можно задать время для регулярного сканирования локальной сети — за счёт этого Служба Информационной Безопасности будет в курсе всех изменений в конфигурации безопасности, появления новых хостов и использования словарных паролей или паролей по умолчанию.

Минусы:

  • Возможны нарушения в работе сканируемых систем — с отключенной опцией safe checks требуется работать аккуратно;
  • Версия, допускающая коммерческое использование, не является бесплатной.

Net-Creds

Net-Creds — инструмент на языке Python для сбора паролей и хешей, а также иной информации, например, посещенных URL, загруженных файлов и иной информации из трафика, как в реальном времени при проведении MiTM-атаки, так и из предварительно сохраненных PCAP-файлов. Подходит для быстрого и поверхностного анализа больших объёмов трафика, например, при сетевых MiTM-атаках, когда время ограничено, а ручной анализ с помощью Wireshark требует много времени.

Плюсы:

network-miner

network-miner — аналог Net-Creds по принципу работы, однако имеет большую функциональность, например есть возможность извлечения файлов переданных по протоколам SMB. Как и Net-Creds, удобен, когда нужно быстро проанализировать большой объём трафика. Также имеет удобный графический интерфейс.

Плюсы:

  • Графический интерфейс;
  • Визуализация и классификация данных по группам — упрощает анализа трафика и делает его быстрым.

Минусы:

mitm6

mitm6 — инструмент для проведения атак на IPv6 (SLAAC-attack). IPv6 является приоритетным в ОС Windows (вообще говоря, и в остальных ОС тоже), и в конфигурации по умолчанию IPv6-интерфейс включен, это позволяет злоумышленнику установить жертве свой DNS-сервер, используя пакеты Router Advertisement, после чего злоумышленник получает возможность подменить DNS жертвы. Прекрасно подходит для проведения Relay-атака вместе с утилитой ntlmrelayx, что позволяет успешно атаковать Windows-сети.

Плюсы:

  • Работает прекрасно во многих сетях как раз из-за стандартных конфигурации Windows-хостов и сетей;

Responder

Responder— инструмент для спуфинга широковещательных протоколов разрешения имен (LLMNR, NetBIOS, MDNS). Незаменимый инструмент в Active Directory сетях. Кроме спуфинга умеет перехватывать NTLM-аутентификацию, в комплекте также идет набор инструментов для сбора информации и реализации атак NTLM-Relay.

Плюсы:

Минусы:

  • При запуске под Windows биндинг 445 порта (SMB) сопряжен с некоторыми сложностями (требуется остановка соответствующих сервисов и перезагрузка).


Evil_Foca

Evil Foca — инструмент для проверок различных сетевых атак в сетях IPv4 и IPv6. Сканирует локальную сеть, идентифицируя устройства, маршрутизаторы и их сетевые интерфейсы, после чего можно совершать различные атаки на участников сети.

Плюсы:

  • Удобен для проведения MITM-атак (ARP спуфинг, DHCP ACK-инъекции, атака SLAAC, DHCP-спуфинг);
  • Можно проводить DoS-атаки — с ARP-спуфингом для IPv4-сетей, с SLAAC DoS в IPv6-сетях;
  • Можно осуществить DNS hijacking;
  • Прост в использовании, удобный графический интерфейс.

Минусы:

Bettercap

Bettercap — мощный фреймворк для анализа и атаки сетей, причем речь здесь также и про атаки на беспроводные сети, BLE (bluetooth low energy) и даже атаки MouseJack на беспроводные HID устройства. Кроме того, содержит в себе функциональность для сбора информации из трафика (аналогично net-creds). В общем, швейцарский нож (all in one). С недавних пор еще имеет графический web-based интерфейс.

Плюсы:

Минусы:

  • Некоторые модули — к примеру, ble.enum — частично не поддерживаются macOS и Windows, некоторые рассчитаны только на Linux — packet.proxy.

gateway_finder

gateway finder — скрипт на Python, помогающий определить возможные gateway’и в сети. Удобен для проверки сегментации или поиска хостов, которые могут маршрутизировать в необходимую подсеть или Интернет. Подходит для внутренних пентестов, когда нужно быстро проверить наличие несанкционированных маршрутов или маршрутов к другим внутренним локальным сетям.

Плюсы:


mitmproxy

Плюсы:

  • Работает с различными протоколами, а также поддерживает модификацию различных форматов, от HTML до Protobuf;
  • API для Python — позволяет писать скрипты для нестандартных задач;
  • Может работать в режиме прозрачного прокси с перехватом трафика.

Минусы:


SIET — инструмент для эксплуатации возможностей протокола Cisco Smart Install. Возможно получение и модификация конфигурации, а также захват контроля над устройством Cisco. Если вы смогли получить конфигурацию устройства Cisco, то можно проверить ее с помощью CCAT, этот инструмент полезен для анализа безопасности конфигурации устройств Cisco.

Плюсы:

Использование протокола Cisco Smart Install, позволяет:

  • Изменить адрес tftp-сервера на клиентском устройстве, отправив один искаженный пакет TCP;
  • Скопировать конфигурационный файл устройства;
  • Заменить конфигурацию устройства, например, добавив нового пользователя;
  • Обновить образ iOS на устройстве;
  • Выполнить произвольный набор команд на устройстве. Это новая функция, работающая только в версиях 3.6.0E и 15.2 (2) E iOS.

Минусы:

  • Работает с ограниченным набором устройств Cisco, также нужен “белый” IP для получения ответа от устройства, или необходимо находиться с устройством в одной сети.

yersinia

yersinia — фреймворк для L2-атак, созданный, чтобы эксплуатировать недостатки безопасности в различных сетевых протоколах L2.

Плюсы:

  • Позволяет осуществлять атаки на протоколы STP, CDP, DTP, DHCP, HSRP, VTP и иные.

Минусы:

proxychains

Плюсы:

В этой статье мы кратко рассмотрели преимущества и недостатки основных инструментов для пентеста внутренней сети. Следите за обновлениями, мы планируем выкладывать такие подборки и дальше: Web, базы данных, мобильные приложения — об этом тоже обязательно напишем.

Читайте также: