Оптимизация времени и производительности сканирования в Nmap

NmapBeginner
Практиковаться сейчас

Введение

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

Использовать быстрый шаблон с nmap -T4 192.168.1.0/24

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

Прежде чем мы начнем, давайте разберем, что такое шаблон времени. Nmap использует шаблоны времени для управления тем, насколько агрессивно он сканирует цель. Эти шаблоны влияют на параметры, такие как задержка между зондами, количество повторных попыток и значения таймаута. Параметр -T позволяет вам выбрать предопределенный шаблон, начиная от -T0 (паранойя) до -T5 (безумие). Более высокие числа означают более агрессивное сканирование.

Шаблон -T4 представляет собой хороший компромисс для большинства сетей. Он быстрее стандартного шаблона (-T3), но по-прежнему избегать чрезмерной агрессивности, которая может привести к потере пакетов или вызову систем обнаружения вторжений.

Теперь давайте выполним сканирование. Мы будем использовать команду nmap -T4 192.168.1.0/24 для сканирования сети 192.168.1.0/24.

Откройте терминал в виртуальной машине LabEx. Убедитесь, что вы находитесь в каталоге ~/project.

Выполните следующую команду:

sudo nmap -T4 192.168.1.0/24

Эта команда сообщает Nmap сканировать все IP-адреса в диапазоне 192.168.1.0/24 с использованием шаблона времени -T4. /24 задает маску подсети 255.255.255.0, что означает, что Nmap будет сканировать 256 IP-адресов (от 192.168.1.0 до 192.168.1.255).

Вывод покажет результаты сканирования, включая открытые порты и запущенные на каждом хосте службы. Поскольку сеть 192.168.1.0/24, вероятно, является вашей локальной сетью, результаты будут различаться в зависимости от подключенных устройств.

Пример вывода (будет различаться в зависимости от вашей сети):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
Nmap scan report for 192.168.1.1
Host is up (0.00028s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
80/tcp  open  http

Nmap scan report for 192.168.1.100
Host is up (0.00031s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh

Nmap done: 256 IP addresses (2 hosts up) scanned in 5.23 seconds

Этот вывод показывает, что Nmap сканировал 256 IP-адресов и нашел два активных хоста: 192.168.1.1 и 192.168.1.100. На хосте 192.168.1.1 открыт порт 80 (http), а на хосте 192.168.1.100 открыт порт 22 (ssh). Сканирование заняло примерно 5,23 секунды.

Увеличить параллелизм с nmap --min - parallelism 20 127.0.0.1

В этом шаге мы увеличим параллелизм сканирования Nmap с использованием параметра --min-parallelism. Этот параметр позволяет вам указать минимальное количество зондов, которые Nmap отправляет параллельно. Увеличение параллелизма может значительно ускорить сканирование, особенно на сетях с большим количеством хостов или портов.

По умолчанию Nmap динамически настраивает уровень параллелизма в зависимости от сетевых условий. Однако вы можете использовать --min-parallelism, чтобы убедиться, что Nmap всегда отправляет одновременно по крайней мере определенное количество зондов.

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

Теперь давайте выполним сканирование с увеличенным параллелизмом. Мы будем использовать команду nmap --min-parallelism 20 127.0.0.1 для сканирования локального хоста (127.0.0.1) с минимальным параллелизмом 20.

Откройте терминал в виртуальной машине LabEx. Убедитесь, что вы находитесь в каталоге ~/project.

Выполните следующую команду:

sudo nmap --min-parallelism 20 127.0.0.1

Эта команда сообщает Nmap сканировать 127.0.0.1 и пытаться поддерживать по крайней мере 20 зондов параллельно. Обратите внимание, что Nmap по-прежнему может динамически настраивать параллелизм в зависимости от сетевых условий, но он попытается оставаться выше указанного минимума.

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

Пример вывода (будет различаться в зависимости от вашей системы):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:05 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000027s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
631/tcp  open  ipp
9000/tcp open  cslistener

Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds

Этот вывод показывает, что Nmap сканировал локальный хост (127.0.0.1) и нашел три открытых порта: 22 (ssh), 631 (ipp) и 9000 (cslistener). Сканирование завершилось относительно быстро из-за увеличенного параллелизма. Фактически сохраненное время зависит от сетевых условий и цели, которую сканируют.

Установить задержку с nmap --scan - delay 500мс 192.168.1.1

В этом шаге мы установим задержку между зондами с использованием параметра --scan-delay в Nmap. Этот параметр позволяет вам указать количество времени, которое Nmap должен ждать между отправкой каждого зонда. Увеличение задержки сканирования может быть полезно для избежания обнаружения системой детектирования вторжений (IDS) или для сканирования хостов, которые чувствительны к сетевому трафику.

По умолчанию Nmap автоматически настраивает задержку сканирования в зависимости от сетевых условий. Однако вы можете использовать --scan-delay, чтобы вручную установить конкретную задержку. Задержка указывается в миллисекундах (мс) или секундах (с).

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

Теперь давайте выполним сканирование с заданной задержкой. Мы будем использовать команду nmap --scan-delay 500мс 192.168.1.1 для сканирования хоста 192.168.1.1 с задержкой 500 миллисекунд между каждым зондом.

Откройте терминал в виртуальной машине LabEx. Убедитесь, что вы находитесь в каталоге ~/project.

Выполните следующую команду:

sudo nmap --scan-delay 500мс 192.168.1.1

Эта команда сообщает Nmap сканировать 192.168.1.1 и ждать 500 миллисекунд между отправкой каждого зонда. Это значительно замедлит сканирование по сравнению с сканированием без задержки.

Вывод покажет результаты сканирования, включая открытые порты и запущенные на 192.168.1.1 службы.

Пример вывода (будет различаться в зависимости от вашей сети):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:10 UTC
Nmap scan report for 192.168.1.1
Host is up (0.00031s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
80/tcp  open  http

Nmap done: 1 IP address (1 host up) scanned in 5.50 seconds

Этот вывод показывает, что Nmap сканировал 192.168.1.1 и нашел открытый порт 80 (http). Обратите внимание, что сканирование заняло больше времени (5,50 секунды), чем это могло бы быть без параметра --scan-delay. Точное время будет различаться в зависимости от цели и сетевых условий.

Отслеживать прогресс с nmap -v --stats - every 5s 192.168.1.0/24

В этом шаге мы узнаем, как отслеживать прогресс сканирования Nmap с использованием параметров -v (подробный) и --stats-every. Эти параметры предоставляют реальные данные о ходе сканирования, что особенно полезно для длительных сканирований.

Параметр -v увеличивает уровень подробности вывода Nmap. С -v Nmap будет отображать больше информации о сканировании, включая отправляемых зондов, полученных ответов и статус каждого хоста. Вы можете использовать -vv для еще более подробного вывода.

Параметр --stats-every позволяет вам указать, как часто Nmap должен выводить статистику о ходе сканирования. Значение указывается в секундах (s), минутах (m) или часах (h). Например, --stats-every 5s будет выводить статистику каждые 5 секунд.

Давайте разберем, почему отслеживание прогресса важно. При сканировании больших сетей сканирование Nmap может занять значительное время. Без информации о ходе сканирования может быть трудно понять, насколько далеко продвинут сканирование и идет ли он вперед. Параметры -v и --stats-every предоставляют ценные сведения о статусе сканирования.

Теперь давайте выполним сканирование с отслеживанием прогресса. Мы будем использовать команду nmap -v --stats-every 5s 192.168.1.0/24 для сканирования сети 192.168.1.0/24 и вывода статистики каждые 5 секунд.

Откройте терминал в виртуальной машине LabEx. Убедитесь, что вы находитесь в каталоге ~/project.

Выполните следующую команду:

sudo nmap -v --stats-every 5s 192.168.1.0/24

Эта команда сообщает Nmap сканировать все IP-адреса в диапазоне 192.168.1.0/24, отображать подробный вывод и выводить статистику каждые 5 секунд.

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

Пример вывода (будет различаться в зависимости от вашей сети):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:20 UTC
Initiating Ping Scan at 10:20
Scanning 256 hosts [2 ports/host]
Completed Ping Scan at 10:20, 0.23s elapsed (256 total hosts)
Initiating Parallel DNS resolution of 256 hosts. at 10:20
Completed Parallel DNS resolution of 256 hosts. at 10:20, 1.42s elapsed
Initiating SYN Stealth Scan at 10:20
Scanning 256 hosts [1000 ports/host]
5s elapsed; 0 hosts completed (0.00/s). 0 hosts up.
10s elapsed; 0 hosts completed (0.00/s). 0 hosts up.
15s elapsed; 0 hosts completed (0.00/s). 0 hosts up.
20s elapsed; 1 hosts completed (0.04/s). 1 hosts up.
Nmap scan report for 192.168.1.1
Host is up (0.00029s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
80/tcp  open  http

25s elapsed; 1 hosts completed (0.04/s). 1 hosts up.
Nmap scan report for 192.168.1.100
Host is up (0.00032s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh

30s elapsed; 2 hosts completed (0.07/s). 2 hosts up.
Nmap done: 256 IP addresses (2 hosts up) scanned in 32.50 seconds

Этот вывод показывает ход сканирования каждые 5 секунд. Вы можете увидеть количество завершенных хостов, скорость сканирования (хостов/с) и количество активных хостов. Сканирование также отображает открытые порты при их обнаружении.

Тестировать скрытность с nmap -T1 127.0.0.1

В этом шаге мы исследуем, как выполнить скрытое сканирование с использованием Nmap с шаблоном времени -T1. Скрытое сканирование направлено на минимизацию шансов быть обнаруженным системами детектирования вторжений (IDS) или брандмауерами.

Параметр -T1 известен как "тайный" шаблон времени. Он медленнее по умолчанию и предназначен для того, чтобы быть менее заметным. Это достигается путем увеличения задержки между зондами, что уменьшает нагрузку на целевую систему и делает сканирование менее вероятным для пометки как вредоносного.

Важно понимать, что никакое сканирование не является полностью невидимым. Даже с использованием скрытых методов всегда есть риск обнаружения. Однако использование параметра -T1 может значительно уменьшить этот риск.

Теперь давайте выполним скрытое сканирование локального хоста (127.0.0.1) с использованием шаблона времени -T1.

Откройте терминал в виртуальной машине LabEx. Убедитесь, что вы находитесь в каталоге ~/project.

Выполните следующую команду:

sudo nmap -T1 127.0.0.1

Эта команда сообщает Nmap сканировать локальный хост (127.0.0.1) с использованием шаблона времени -T1. Поскольку мы сканируем локальный хост, сканирование должно быть завершено относительно быстро, даже с более медленным шаблоном времени.

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

Пример вывода (может отличаться в зависимости от вашей системы):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:40 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000007s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
631/tcp  open  ipp
9000/tcp open  cslistener

Nmap done: 1 IP address (1 host up) scanned in 10.50 seconds

Этот вывод показывает, что Nmap отсканировал локальный хост и обнаружил три открытых порта: 22 (ssh), 631 (ipp) и 9000 (cslistener). Сканирование заняло примерно 10,50 секунд. Обратите внимание, что время сканирования может быть больше по сравнению с использованием более быстрого шаблона времени, такого как -T4.

Сравнить время в терминале Xfce

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

Мы сравним шаблоны времени -T1 (тайный) и -T4 (быстрый). Для этой сравнения мы будем сканировать локальный хост (127.0.0.1).

Откройте терминал в виртуальной машине LabEx. Убедитесь, что вы находитесь в каталоге ~/project.

Во - первых, давайте запустим сканирование с использованием шаблона времени -T1. Мы будем использовать команду time для измерения времени выполнения.

Выполните следующую команду:

time sudo nmap -T1 127.0.0.1

Команда time выполнит сканирование Nmap и затем покажет время, которое потребовалось для завершения. Обратите внимание на время "real", сообщаемое командой time. Это представляет собой общее пройденное время.

Пример вывода (время будет различаться):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 11:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000007s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
631/tcp  open  ipp
9000/tcp open  cslistener

Nmap done: 1 IP address (1 host up) scanned in 10.50 seconds

real    0m10.552s
user    0m0.103s
sys     0m0.032s

В этом примере время "real" составляет 0 минут и 10,552 секунды.

Теперь давайте запустим то же самое сканирование с использованием шаблона времени -T4.

Выполните следующую команду:

time sudo nmap -T4 127.0.0.1

Опять же, обратите внимание на время "real", сообщаемое командой time.

Пример вывода (время будет различаться):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 11:01 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000007s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
631/tcp  open  ipp
9000/tcp open  cslistener

Nmap done: 1 IP address (1 host up) scanned in 1.23 seconds

real    0m1.285s
user    0m0.098s
sys     0m0.029s

В этом примере время "real" составляет 0 минут и 1,285 секунды.

Сравните времена "real" из двух сканирований. Вы должны заметить, что сканирование с использованием шаблона времени -T4 завершается значительно быстрее, чем сканирование с использованием шаблона времени -T1. Это демонстрирует компромисс между скоростью и скрытностью. -T1 медленнее, но более скрыт, в то время как -T4 быстрее, но потенциально более заметен.

Резюме

В этом лабораторном занятии участники научились оптимизировать время сканирования и производительность Nmap. Они использовали параметр -T4 для быстрого и сбалансированного сканирования сети 192.168.1.0/24, понимая, что большие значения -T означают более агрессивное сканирование. Они также увеличили параллелизм с использованием --min-parallelism 20, установили задержку сканирования с помощью --scan-delay 500ms, отслеживали ход выполнения с помощью -v --stats-every 5s, проверили скрытое сканирование с использованием -T1 и сравнили времена выполнения в терминале Xfce.