Я когда-то давно уже показывал небольшую подборку как раз из своих заметок. Решил обновить и актуализировать. В интернете есть популярный материал по этой теме:
⇨ Nmap Cheat Sheet 2024: All the Commands & Flags
Он как раз недавно обновился. Там наглядно и аккуратно структурированы команды для Nmap. Он у меня давно в закладках, иногда пользуюсь. Для удобства, решил его в сокращённой форме подготовить здесь, плюс добавить свои примеры и комментарии.
✅ Простое и быстрое сканирование только открытых портов до 1024 без подробностей:
nmap 192.168.1.1nmap 192.168.1.1 192.168.2.1nmap 192.168.1.1-254nmap 192.168.1.0/24✅ Полное сканирование всех открытых портов:
nmap 192.168.1.1 -p- Ключ
-p позволяет задавать диапазон портов в различных форматах. Например -p 21 или -p 21-100, -p http,https В примере выше сканируются абсолютно все порты. Проверка получается значительно дольше предыдущего примера без указания полного диапазона.✅ Скан хоста, не отвечающего на пинг. Без этого ключа не отвечающий на пинг хост игнорируется в сканировании, как находящийся вне сети.
nmap 192.168.1.1 -Pn✅ Основные техники сканирования:
nmap 192.168.1.1 -sS - TCP SYN, значение по умолчаниюnmap 192.168.1.1 -sT - TCP connectnmap 192.168.1.1 -sU - UDP сканированиеОбычно полное сканирование TCP и UDP портов запускают так (будет очень долго длиться):
nmap 192.168.1.1 -sS -sU -p- ✅ Обнаружение хостов в сети, без скана портов. Поиск с помощью пинга. Постоянно использую, когда надо получить список живых хостов в сети:
nmap 192.168.1.1/24 -snЕсли используете сложные списки хостов, или просто хотите быстро получить текстовый список какого-то набора IP адресов, то можно воспользоваться nmap:
nmap 192.168.1.1-15 -sLВыведет список всех IP адресов в текстовом виде.
✅ Поиск хостов ARP запросами в локальной сети:
nmap 192.168.1.1/24 -PRВ локальной сети поиск хостов ARP запросами проходит в разы быстрее обычных. Подробно об этом и других техниках поиска хостов рассказано на сайте nmap. ❗️Данный метод используется принудительно в локальных сетях, даже если указать другой.
✅ Определение сервисов и их версий на открытых портах. Быстрая проверка с наглядным выводом всей информации, где 1 порт - одна строка. Удобно для визуального восприятия глазами:
nmap 192.168.1.1 -sVКомбинированный ключ, который вызывает проверки ОС, версий сервисов, сканирование скриптами и использование traceroute. Более подробная и долгая проверка по сравнению с той, что выше. Вывод не очень нагляден для беглого просмотра:
nmap 192.168.13.1 -AКоманда выше универсальная и подойдёт для комплексного анализа хоста по портам до 1024. Это позволяет ей отрабатывать относительно быстро. Если запускать её по всем портам, то будет долго выполняться. Но можно сделать небольшой трюк, который я применяю на практике. Сначала ищем открытые порты, а потом на них выполняем полную проверку с ключом
-A. Это значительно быстрее полной проверки по всем портам.#!/bin/bashports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)nmap -p$ports -A $1Использовать:
./nmap.sh 192.168.1.1✅ Различные скорости и интенсивности проверок:
-T0 - paranoid (паранойдный)
-T1 - sneaky (хитрый)
-T2 - polite (вежливый)
-T3 - normal (обычный)
-T4 - aggressive (агрессивный)
-T5 - insane (безумный)
Описание этих шаблонов сканирования есть в документации. По умолчанию используется
-T3, в локалке иногда повышают до -T4. Чем ниже режим, тем меньше потоков, меньше пакетов, ниже скорость сканирования, но и заметность меньше. По факту получилось, что из статьи ничего и не взял. Все примеры свои привёл, а подробности смотрел в man и на сайте nmap.
⇨ Полная шпаргалка по nmap в формате PDF.
#nmap