Назад | Перейти на главную страницу

Быстрый и надежный способ сканирования сети класса B с помощью nmap

Мне нужно Nmap просканировать сеть класса B за короткий промежуток времени. Требования довольно простые. Я бы хотел:

  1. Сканируйте как можно быстрее
  2. Выполните пункт 1 при сохранении надежности (допустимо отсутствие 1/2 из 10)
  3. Выполните пункт 1, сведя к минимуму неудобства для других пользователей сети

Я буду сканировать изнутри сети. Вот что я пока решил.
nmap -p 0-65535 172.22.0.0/16 (диапазон портов и ip - это всего лишь примеры)
-Pn пропустить обнаружение хоста
--min-hostgroup 256 сканировать 256 IP-адресов за раз
--ttl 10 Думаю, это снижает сетевой шум. Поправьте меня, если я ошибаюсь
--max-retries 1 Я обнаружил, что это ускоряет сканирование, не жертвуя слишком большой надежностью.

Вот мои вопросы

  1. Думаю воспользоваться опцией -T4 но я не уверен, насколько это повлияет на надежность и скорость сети других пользователей. Как мне определить, использовать ли эту опцию?
  2. Есть ли другие верные способы повысить скорость сканирования, не влияя на требования 2 и 3?

Есть четыре основных фактора, из-за которых сканирование занимает много времени:

  1. Отправка зондов, которые не нужно отправлять
  2. Задержка
  3. Упавшие пакеты
  4. Ограничение скорости ответов по целям

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

Что касается 1, самая большая проблема, с которой вы столкнулись, это -Pn, который отключает обнаружение хоста. Обнаружение хоста Это то, как Nmap знает, какие адреса следует сканировать («вверх»), а какие не будут отвечать, обычно из-за того, что этот адрес не настроен ни на одном хосте. В сети / 16 вы будете сканировать 65536 адресов. Если вы знаете, что у вас в сети всего 5000 активов, тогда 92% вашего сканирования будет потрачено впустую. Поиграйте с различными -P* варианты с использованием -sn чтобы избежать фактического сканирования портов, пока вы не найдете набор зондов, который хорошо работает в вашей сети. Теперь, если вы можете сделать открытие другим способом, например, используя -iL чтобы импортировать список активных адресов с ваших внутренних датчиков IDS, затем -Pn можно использовать, чтобы не пропустить адрес, который, как вы знаете, активен, только потому, что он не отвечает на зонды обнаружения по умолчанию.

Еще одна потенциальная потеря зондов - это обратное разрешение имен DNS. Это отличный источник информации, и Nmap очень быстро справляется с этим, но если вам не нужно знать DNS-имя (PTR-запись) для каждого адреса, добавьте -n полностью сократит этот этап, сэкономив вам драгоценное время.

Для 2 задержка - это то, что вы не можете контролировать. Но вы можете с умом сообщить Nmap, какие задержки вы ожидаете. Если вы находитесь в локальной сети, то установка --max-rtt-timeout может помочь ускорить сканирование, указав Nmap не ждать слишком долго, чтобы получить ответ о каком-либо конкретном пакете. Но будьте осторожны, чтобы не быть слишком оптимистичным; если Nmap сдается слишком рано, он считает пакет отброшенным и замедляется, чтобы избежать дальнейших отбрасываний. Используйте информацию о задержке из пробной версии -sn беги, чтобы получить представление о худшем случае, а затем удвоить это количество на всякий случай. Он все равно будет меньше значения по умолчанию, если ваша сеть достаточно быстрая.

Говоря об отброшенных пакетах (номер 3 в нашем списке), это основной источник неточности, когда вы пытаетесь сканировать слишком быстро. Вы можете перегрузить либо свою собственную ссылку, либо возможности самой цели, если она очень ограничена в ресурсах (например, устройства ICS или IoT). Если ваша сеть достаточно быстра и способна не пропускать много пакетов, вы можете установить --max-retries на меньшее значение, чем значение по умолчанию (10), чтобы немного ускориться, и вы рискуете получить некоторую неточность. Поскольку Nmap обнаруживает отброшенные пакеты и замедляется, вы, вероятно, не повлияете на чей-либо трафик более чем на несколько секунд, если не используете --min-rate для продолжения отправки пакетов.

Номер 4, ограничение скорости по целям, сложен, потому что он не находится под вашим контролем (если только вы не можете включить свой сканер в белый список тем, что ограничивает скорость). Однако есть несколько приемов: для определенного типа ограничения скорости TCP RST параметр --defeat-rst-ratelimit опция позволит вам поддерживать скорость сканирования за счет того, что некоторые порты помечены как «отфильтрованные», которые, вероятно, фактически «закрыты». На открытые порты это не повлияет, и это обычно все, что вас интересует.

Шаблоны времени (например, -T4 которые вы упомянули) задаст для вас некоторые из этих параметров, но вы всегда можете переопределить их с помощью более конкретных параметров. Проверьте страницу руководства для версии Nmap, которую вы используете, чтобы узнать, какие именно параметры установлены в каждом шаблоне. Быть в курсе, что -T5 устанавливает --host-timeout вариант, поэтому, если для завершения какой-либо цели требуется более 15 минут (что очень возможно при сканировании всех портов), она будет отброшена, и выходные данные не будут отображаться.

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

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