Nmap - это сканер портов на основе CLI. Поскольку современные сети в значительной степени зависят от портов TCP, сканирование этих портов может раскрыть ценные и важные данные об устройстве в сети. Эти данные могут быть использованы для понимания того, где находятся уязвимости и как потенциальные хакеры могут их использовать.
Таким образом, обучение сканированию портов с помощью Nmap является одним из первых, что должен освоить исследователь безопасности.
Это руководство содержит наиболее ценные приемы/советы/команды Nmap, которые вы можете использовать для аудита/взлома устройства в сети
Спецификация цели
Это основные команды для начала работы с nmap. Здесь показано, как можно нацеливать или фильтровать различные IP-адреса.
Сканирование одного IP-адреса
1 | nmap 192.168.1.1 |
Сканирование определенных IP-адресов
1 | nmap 192.168.1.1 192.168.2.1 |
Сканирование диапазона
1 | nmap 192.168.1.1-254 |
Сканирование домена
1 | nmap scanme.nmap.org |
Сканирование с использованием нотации CIDR
1 | nmap 192.168.1.0/24 |
Сканирование целей из файла
1 | nmap -iL nmap -iL targets.txt |
Сканирование 100 случайных интернет адресов
1 | nmap -iR 100 |
Исключить перечисленные хосты
1 | nmap --exclude 192.168.1.1 |
Техники сканирования
Порт может быть открыт через множество протоколов (TCP/UDP) и может находиться за многими типами конфигураций брандмауэров. Вот почему сканирование порта может быть выполнено с помощью нескольких техник. Именно здесь пригодится знание сетевых технологий, чтобы знать, когда какой тип сканирования порта следует применять. Ниже перечислены различные техники сканирования порта.
TCP SYN Сканирование портов (по умолчанию)
1 | nmap 192.168.1.1 -sS |
TCP connect port scan (По умолчанию без привилегий root)
1 | nmap 192.168.1.1 -sT |
UDP сканирование портов (По умолчанию)
1 | nmap 192.168.1.1 -sU |
TCP ACK сканирование порта
1 | nmap 192.168.1.1 -sA |
TCP Сканирование портов Window
1 | nmap 192.168.1.1 -sW |
TCP Сканирование портов Maimon
1 | nmap 192.168.1.1 -sM |
Обнаружение хостов
Иногда вам может понадобиться просканировать сеть, чтобы обнаружить, какие узлы работают. После обнаружения доступных узлов вы можете просканировать порты. Ниже представлены различные способы обнаружения хостов в сети.
Не сканировать. Только список целей
1 | nmap 192.168.1.1-3 -sL |
Отключить сканирование портов. Только обнаружение хостов.
1 | nmap 192.168.1.1/24 |
Отключить обнаружение хостов. Только сканирование портов.
1 | nmap 192.168.1.1-5 |
Обнаружение TCP SYN на порту x. Порт 80 по умолчанию
1 | nmap 192.168.1.1-5 -PS22-25,80 |
Обнаружение TCP ACK на порту x. Порт 80 по умолчанию
1 | nmap 192.168.1.1-5 -PA22-25,80 |
Обнаружение UDP на порту x. Порт 40125 по умолчанию
1 | nmap 192.168.1.1-5 -PU53 |
ARP обнаружение в локальной сети
1 | nmap 192.168.1.1-1/24 |
Не выполнять резолвинг DNS
1 | nmap 192.168.1.1 |
Спецификация портов
Компьютер обычно обслуживает порты из диапазона 0-65535. Сканирование всех портов обычно нецелесообразно, поскольку сканирование одного порта может занять много времени. Вы можете указать, какие порты нужно сканировать, чтобы уменьшить цели сканирования и получить более быстрые результаты. В идеале нужно сканировать порты, на которых обычно открываются службы. Например, HTTP (80), HTTPS (443), SSH (22), 8080 и т.д.
Сканирование порта x
1 | nmap 192.168.1.1 -p 21 |
Диапазон портов
1 | nmap 192.168.1.1 -p 21-100 |
Сканирование порта для нескольких TCP и UDP портов
1 | nmap 192.168.1.1 -p U:53,T:21-25,80 |
Сканирование всех портов
1 | nmap 192.168.1.1 -p |
Сканирование портов по имени службы
1 | nmap 192.168.1.1 -p http,https |
Быстрое сканирование портов (100 портов)
1 | nmap 192.168.1.1 -F |
Сканирование верхних x портов
1 | nmap 192.168.1.1 --top-ports 2000 |
Если не указывать начальный порт в диапазоне, сканирование начнется с порта 1
1 | nmap 192.168.1.1 -p-65535 |
Если оставить конечный порт в диапазоне, сканирование будет продолжаться до порта 65535
1 | nmap 192.168.1.1 -p0- |
Обнаружение служб и версий
Определение версии ОС и получение дополнительной информации о службе, запущенной на порту.
Включает обнаружение ОС, определение версии, сканирование сценариев и traceroute.
1 | nmap 192.168.1.1 -A |
Попытка определить версию службы, запущенной на порту
1 | nmap 192.168.1.1 -sV |
Уровень интенсивности от 0 до 9. Большее число увеличивает вероятность корректности
1 | nmap 192.168.1.1 -sV --version-intensity 8 |
Включить легкий режим. Снижает вероятность корректности.
1 | nmap 192.168.1.1 -sV --version-light |
Включить уровень интенсивности 9. Более высокая вероятность корректности. Медленнее
1 | nmap 192.168.1.1 -sV --version-all |
Обнаружение ОС
Удаленное обнаружение ОС с использованием отпечатков стека TCP/IP
1 | nmap 192.168.1.1 -O |
Если не найдено хотя бы одного открытого и одного закрытого TCP порта, он не будет пытаться обнаружить ОС на хосте.
1 | nmap 192.168.1.1 -O --osscan-limit |
Заставляет Nmap угадывать более агрессивно
1 | nmap 192.168.1.1 -O --osscan-guess |
Задает максимальное число x попыток обнаружения ОС на цели.
1 | nmap 192.168.1.1 -O --max-os-tries 1 |
Тайминги и быстродействие
Сканирование портов может быть сложным с точки зрения времени. Интенсивное сканирование портов может заставить брандмауэры фильтровать весь трафик, поступающий с вашего ПК. С другой стороны, более медленное сканирование может занять много времени. Вам необходимо найти идеальный баланс для вашего случая. Следующее примеры помогут ускорить/замедлить сканирование.
Изменить скорость сканирования
Параноик Уклонение от системы обнаружения вторжений
1 | nmap 192.168.1.1 -T0 |
Хитрое уклонение от системы обнаружения вторжений
1 | nmap 192.168.1.1 -T1 |
Вежливый режим замедляет сканирование для бесполезной пропускной способности и использования меньшего количества ресурсов целевой машины
1 | nmap 192.168.1.1 -T2 |
Нормальный, что является скоростью по умолчанию
1 | nmap 192.168.1.1 -T3 |
Агрессивная скорость сканирования; предполагает, что вы находитесь в достаточно быстрой и надежной сети
1 | nmap 192.168.1.1 -T4 |
Невменяемая скорость сканирования; предполагается, что вы находитесь в чрезвычайно быстрой сети.
1 | nmap 192.168.1.1 -T5 |
Параллелизм/Задержки/Таймауты
Добавьте таймауты в сканирование, чтобы сканирование одного порта не занимало слишком много времени. Вы также можете включить параллелизм, чтобы сканировать несколько хостов вместе.
--host-timeout <time> 1s; 4m; 2h Отказаться от цели через указанное время
--initial-rtt-timeout <time> 1s; 4m; 2h Определяет время обхода зонда.
--max-hostgroup <size> 50; 1024 Размер групп параллельного сканирования хостов
--max-parallelism <numprobes> 10; 1 Распараллеливание проб
--max-scan-delay <time> 20ms; 2s; 4m; Настройка задержки между сканированиями
--max-retries <tries> 3 Указать максимальное количество повторных запросов сканирования порта
--min-rate <number> 100 Отправка пакетов не медленнее, чем <numberr> в секунду
--max-rate <number> 100 Отправка пакетов не быстрее <number> в секунду
Обход брандмауэра
Современный веб-сервер находится за брандмауэрами. Обойти эти брандмауэры может быть сложно, если брандмауэры имеют жесткую конфигурацию с высоким уровнем безопасности. Однако вы можете обойти обнаружение вторжения брандмауэрами, применив следующие техники.
Запрашиваемое сканирование (включая ping-сканирование) использует крошечные фрагментированные IP-пакеты.
1 | nmap 192.168.1.1 -f |
Задайте свой собственный размер mtu
1 | nmap 192.168.1.1 --mtu 32 |
Отправка сканирования с поддельных IP (decoys)
1 | nmap -D 1.1.1.1.1,2.2.2.2 |
Сканирование Facebook от Microsoft (может потребоваться -e eth0 -Pn)
1 | nmap -S www.microsoft.com www.facebook.com |
Использовать заданный номер порта источника
1 | nmap -g 53 192.168.1.1 |
Подключение через HTTP/SOCKS4 прокси-серверы
1 | nmap --proxies 192.168.1.1 |
Добавляет случайные данные к отправляемым пакетам
1 | nmap --data-length 200 192.168.1.1 |
Изменение вывода
Измените вывод, регистрируемый nmap на консоли. В качестве альтернативы вы можете сохранить вывод в файл, а затем возобновить приостановленное сканирование.
Увеличить уровень многословности (используйте -vv или больше для большего эффекта)
1 | nmap 192.168.1.1 -v |
Нормальный вывод в файл normal.file
1 | nmap 192.168.1.1 -oN normal.file |
Вывод результатов сразу в трех основных форматах
1 | nmap 192.168.1.1 -oA results |
Добавить сканирование к предыдущему файлу сканирования
1 | nmap 192.168.1.1 -oN file --append-output |
Увеличить уровень отладки (для большего эффекта используйте -dd или более)
1 | nmap 192.168.1.1 -d |
Вывести причину, по которой порт находится в определенном состоянии, вывод такой же, как и -vv
1 | nmap 192.168.1.1 --reason |
Показывать только открытые (или возможно открытые) порты
1 | nmap 192.168.1.1 --open |
Показать все отправленные и полученные пакеты
1 | nmap 192.168.1.1 -T4 --packet-trace |
Показывает интерфейсы и маршруты хоста
1 | nmap --iflist |
Возобновление сканирования
1 | nmap --resume results.file |