• [ Регистрация ]Открытая и бесплатная
  • Tg admin@ALPHV_Admin (обязательно подтверждение в ЛС форума)

Статья Nmap с самого начала. Осваиваем разведку и сканирование сети

stihl

bot
Moderator
Регистрация
09.02.2012
Сообщения
1,517
Розыгрыши
0
Реакции
888
Deposit
0.228 BTC
stihl не предоставил(а) никакой дополнительной информации.
В этой статье я расскажу, как пользоваться одной из топовых утилит для хакеров и пентестеров. Ты узнаешь, как происходит сканирование разными методами, и научишься собирать информацию о таргете перед атакой на сервер. Nmap в строю уже 28 лет, но актуальности не теряет.
Nmap — инструмент разведки, который поможет тебе собрать информацию о сети и конкретных серверах и компьютерах. Ты увидишь, какие хосты живые, какие у них открыты порты и какие сервисы отвечают на этих портах. В некоторых случаях удается собрать максимально подробную информацию, включая конкретное ядро операционной системы.

info​


У специалистов по защите Nmap тоже всегда под рукой: нужно знать, что «торчит наружу», то есть какие части инфраструктуры доступны извне периметра сети.

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

info​


В Debian и Ubuntu пиши

sudo apt install nmap
В Fedora:

sudo dnf install nmap
В Arch:

sudo pacman -S nmap
Если пользуешь Windows, качай Для просмотра ссылки Войди или Зарегистрируйся.

На macOS можно поставить так же, но лучше воспользоваться пакетным менеджером Для просмотра ссылки Войди или Зарегистрируйся. Установив его, пиши в консоли

brew install nmap
Давай запустим первое сканирование.

ret0x2a@kali:~$ sudo nmap localhost --reason
Starting Nmap 7.95 ( Для просмотра ссылки Войди или Зарегистрируйся ) at 2025-12-17 00:14 EST
Nmap scan report for localhost (127.0.0.1)
Host is up, received localhost-response (0.0000060s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 997 closed tcp ports (reset)
PORT STATE SERVICE REASON
22/tcp open ssh syn-ack ttl 64
5432/tcp open postgresql syn-ack ttl 64
8000/tcp open http-alt syn-ack ttl 64
Nmap done: 1 IP address (1 host up) scanned in 0.14 seconds
Изучив результат, ты можешь увидеть, что на компьютере три полностью открытых порта без фильтрации. На них висит SSH, СУБД PostgreSQL и что‑то, что обрабатывает HTTP-запросы. Это может быть API, админка или какой‑то сервер. Значит, есть три вектора для атаки.

Можно попытаться получить более подробную информацию по этим трем конкретным портам, добавив в команду параметры -p22,5432,8000 и -sV, который пытается определить вид и версии ПО.

Я добавил параметр --reason, чтобы Nmap давал пояснения к своим выводам. Остальные параметры по дефолту. В этот раз Nmap использовал тип сканирования TCP SYN. Утилита в этом случае сама формирует «сырой» TCP-запрос и анализирует ответ сервера. На трех портах сервер вернул SYN-ACK, что означает «порт открыт». Остальные порты вернули RST или сброс соединения — эти порты закрыты.

info​

Полученный RST не всегда обозначает, что порт закрыт. Это актуально для сканирования вида TCP SYN. Nmap интерпретирует RST, исходя из типа сканирования.
Команду мы запускали от имени суперпользователя, через sudo. В ином случае Nmap не смог бы полноценно работать с «сырыми» запросами и сбрасывать соединение без завершения рукопожатия. Сброс соединения в некоторых случаях помогает не оставлять следов сканирования в логах и делает сканы менее шумными.

«Сырые», или RAW, запросы позволяют Nmap установить нестандартные флаги в TCP-пакете. Операционная система не разрешает обычным пользователям такое поведение, требуя корректные пакеты и выполнение всего процесса соединения. Без прав root Nmap сканировал бы с полным рукопожатием (-sT).

Запуск сканирования с дефолтными параметрами равносилен такому запуску:

sudo nmap -sS -T3 localhost
Эти параметры указывают:

  • sS — тип сканирования TCP SYN. Стелс, который обеспечивается частичным рукопожатием;
  • по дефолту — сканировать только 1000 наиболее часто используемых портов. Для сканирования отдельных портов используй -p<PORT_NUMBER> (без пробела и треугольных скобок). Чтобы проверить все 65 536 портов, вбивай -p-. Быстрая проверка топ-100 наиболее часто используемых портов — -F;
  • T3 — определяет временные задержки между запросами. Доступны значения от T0 (Paranoid) с отправкой одного запроса каждые пять минут, до T5 (Insane) — мегаагрессивное сканирование.

warning​

Запуск без прав root равносилен команде sudo nmap -sT -T3 localhost.

Порты, сервисы, рукопожатия​

Перед тем как углубляться в типы сканирования и параметры Nmap, разберемся с базовыми понятиями. Ты явно встречал запись вида 192.168.0.1:8080, которая указывает на порт 8080 у машины с IP-адресом 192.168.0.1. Чтобы снять все вопросы, используем аналогию. Представь офисное здание. IP-адрес — это его адрес, а порты — это номера кабинетов.

В каждом кабинете находится фирма, которая выполняет какую‑то работу, — это и есть сервис. В 21-м кабинете канцелярия здания, которая отвечает за работу с документами. Через них ты можешь передать файлы или получить согласно своему доступу. Кабинет 110 принимает почтовые отправления, а 25-й отвечает за исходящую почту. В 3306-м расположен архив — база данных MySQL.

В одном здании может быть несколько похожих фирм. Например, в кабинете 80 раньше обрабатывали HTTP-запросы, выдавая каждому посетителю красивые страницы. Но с недавнего времени все перешли на более безопасный HTTPS, поэтому из 80-го кабинета тебя отправят в кабинет 443.

В кабинете 3000 тоже принимают HTTP, но там сидят любители JavaScript и работают на Node.js. Этот кабинет обрабатывает только запросы, построенные по определенной схеме, и представляет собой сервис API. В кабинете 8080 любители Python разместили админку. Все это сервисы работают с вебом, но выполняют разную работу.

Кабинеты могут быть в разных состояниях. Один открыт для свободного посещения любым желающим — он находится в состоянии open. В другом пусто, и он в состоянии closed. Третий может быть сегодня closed, а завтра в нем появится новая фирма и он станет open.

Есть кабинеты, в которые просто так не попасть. Доступ в них жестко фильтруется, для портов это значит, что они filtered. Чтобы каждый праздно шатающийся гражданин не узнал, какие конкретно кабинеты работают и что в них находится, администрация здания настроила файрвол. Его задача — догадаться, что идет сканирование, и максимально скрыть информацию. Чтобы обмануть фильтр, придуманы разные варианты сканирования.

Получилось не очень приветливое здание, но именно так и выглядит сервер для случайного посетителя. Администраторы не хотят, чтобы мамкины хакеры знали, что и где работает. Есть четко разрешенные кабинеты, к ним и обращайся.

Для просмотра ссылки Войди или Зарегистрируйся
Теперь подумай: как ты обычно входишь в неизвестный тебе кабинет? Стучишь, спрашивают «Кто там?», представляешься и входишь. В сетях этот процесс называется «рукопожатие». При работе с протоколом TCP твоя машина отправляет пакет SYN. В ответ прилетает либо сброс RST (значит, никого нет и кабинет, скорее всего, закрыт), либо ответное приветствие SYN-ACK, вроде «Кто там? Проходи!». После чего с твоей стороны летит подтверждающий пакет ACK — «я вхожу». Это весь процесс трехэтапного рукопожатия.

Для просмотра ссылки Войди или Зарегистрируйся
Иногда на твой SYN нет никакого ответа, даже RST. Это один из маркеров того, что порт фильтруется. Если внутри кто‑то есть, он тихонько передал информацию о твоем стуке в службу безопасности.

Для просмотра ссылки Войди или Зарегистрируйся
Сканировать можно не только TCP, но и UDP (параметр -sU). В этом случае стучать в дверь бесполезно. На такой двери есть ящик для писем. Ты бросаешь в него датаграмму и уходишь.

info​

Датаграмма — это пакет данных, который, кроме самих данных, содержит информацию об источнике и получателе, плюс в нем указана длина самих данных и чек‑сумма.
Никаких рукопожатий в UDP нет, как и гарантий, что твои данные дойдут. Если порт открыт, в ответ может прилететь датаграмма от сервера. Но не факт, чаще всего в ответ не приходит ничего, и Nmap помечает порт как open|filtered. Закрытый порт отдаст пакет ICMP Unreachable.


Виды сканирований​

Ты уже знаешь основные типы сканирований:

  • -sT — полное соединение по TCP;
  • -sS — сканирование TCP SYN со сбросом соединения;
  • -sU — сканирование по UDP.
На практике ты будешь чаще использовать -sS. Это быстрое, надежное и более‑менее «бесшумное» сканирование. Если все закрыто, есть смысл пробежаться по портам с -sU. Если ничего не найдено, попробуй выполнить скан с полным рукопожатием -sT.

Вот как выглядит стелс‑сканирование стандартных портов баз данных (MySQL, PostgreSQL, MongoDB и прочих) на хосте 10.10.10.10:

sudo nmap -sS -p 3306,5432,6379,27017,1433,1521,9200,9042 10.10.10.10
Сканирование по UDP тысячи самых популярных портов на таргете 192.168.1.180:

sudo nmap -sU -F 192.168.1.180
Доменные имена Nmap воспринимает, но при таком сканировании ты не всегда будешь работать с конечным сервером. Многие домены указывают на IP CDN. Читай, скрыты за Cloudflare или подобными сервисами.

ret0x2a@kali:~$ sudo nmap -sS -p443 google.com
Starting Nmap 7.95 ( Для просмотра ссылки Войди или Зарегистрируйся ) at 2025-12-17 05:03 EST
Nmap scan report for google.com (64.233.163.102)
Host is up (0.045s latency).
Other addresses for google.com (not scanned): 64.233.163.113 64.233.163.138 64.233.163.100 64.233.163.139 64.233.163.101 2a00:1450:4010:c06::65 2a00:1450:4010:c06::71 2a00:1450:4010:c06::8b 2a00:1450:4010:c06::66
rDNS record for 64.233.163.102: lj-in-f102.1e100.net
PORT STATE SERVICE
443/tcp open https
Nmap done: 1 IP address (1 host up) scanned in 0.28 seconds
При перечислении домена google.com Nmap просканировал 64.233.163.102 и показал другие серверы, которые связаны с доменом. Следующий твой шаг — просканировать каждый из указанных серверов. Чтобы упростить задачу, скопируй IP в текстовый файл (каждый IP в новой строке) и запусти:

sudo nmap -sT -p- -iL /home/ret0x2a/google_ips.txt
Этой командой скажешь Nmap просканировать все хосты из файла в режиме полного рукопожатия -sT, проверить все порты -p-. Параметр -iL сообщает, что нужно взять хосты из файла.

Ищем реальный IP домена​

Что, если известен домен, но таргет скрыт за Cloudflare или подобной системой? Один из способов добраться до конечного IP — посмотреть историю на сервисе Для просмотра ссылки Войди или Зарегистрируйся. Открываешь раздел IP History и вбиваешь искомый домен. Твоя задача — найти как можно более свежие IP, не относящиеся к Cloudflare.
Для просмотра ссылки Войди или Зарегистрируйся
У доменов с продолжительной историей, скорее всего, всплывут адреса серверов, на которых хостился домен. Нет гарантий, что сейчас IP актуальные, но шансы есть. Чтобы проверить, выполни запрос через curl к IP с указанием заголовка Host. Если получил ответ, ищи информацию, указывающую на принадлежность к домену. Это может быть сам домен в HTML-коде, ссылки на искомый домен или значение тега title.
Пример для HTTP:
curl Для просмотра ссылки Войди или Зарегистрируйся -H 'Host: site.com'
Для HTTPS укажи параметр -k, чтобы игнорировать проблемы с сертификатом.
Поиск реальных IP — это обширная тема со своими нюансами. Если интересно, напиши в комментариях, что хочешь гайд. Но помни, что такую информацию можно использовать только в законных целях и с разрешения владельца ресурса.

Сканирование кривыми TCP-пакетами​

В каждом пакете TCP есть блок с флагами, которые указывают на разные этапы взаимодействия устройств. У флагов есть своя логика, которую можно нарушить, отправляя полную ерунду. Это приводит в замешательство некоторые файрволы и позволяет обходить фильтрацию. Nmap поддерживает сразу три вида сканирований с неожиданными флагами: FIN (-sF), Xmas (-sX) и Null (-sN).

Разница между этими тремя видами только в том, какие флаги установлены:

  • FIN (-sF) — флаг FIN установлен в 1, остальные в 0. Такой пакет используется при закрытии соединения. Когда соединение не было установлено, но пришел пакет FIN, принимающая сторона может отмолчаться или прислать пакет RST (сброс). Если пришел RST, Nmap считает порт закрытым. Когда сервер отмалчивается, Nmap помечает порт как open|filtered (открыт, фильтруется файрволом);
  • Null (-sN) — не установлен ни один флаг. При нормальной работе TCP такой пакет не может существовать. Он не делает ничего. Не открывает соединения, не закрывает, не подтверждает и не сбрасывает. Nmap интерпретирует ответы так же, как при FIN;
  • Xmas (-sX) — установлены три флага: FIN (закрыть соединение), PSH (передай данные приложению сейчас), URG (есть срочные данные). Это полная чушь для TCP. Как подбежать к незнакомому человеку и сказать: «У меня есть срочные данные, быстро передай их, пока». И убежать, ничего больше не сказав.
Плохая новость в том, что сторона защиты хорошо изучила такие способы сканирования и научилась на них реагировать. Но в случаях, когда другие методы не дали ничего, есть смысл пробовать эту тройку.

info​

Стандарт RFC 793 прямо предписывает отвечать на некорректные пакеты пакетом RST TCP, чтобы сбрасывать соединение. На практике Windows и большинство устройств Cisco всегда возвращает RST TCP. Другие ОС, а также устройства других фирм могут вести себя иначе.

Как получить больше информации​

Просто узнать, какие порты открыты, — относительно ценно. Еще лучше, если знаешь, какие именно службы отвечают на этих портах. Тогда можно найти что‑то интересное. Например, где‑то может быть публичный ресурс или пароль по умолчанию, а где‑то устаревшая версия с известной уязвимостью.

Для просмотра ссылки Войди или Зарегистрируйся
Вернувшись к сканированию своего localhost, я добавил параметр -sV, чтобы Nmap попытался определить сервисы и их версии. Теперь обезличенные порты 22, 5432 и 8000 превратились в «OpenSSH 10.0p2 Debian 8 (protocol 2.0)», «PostgreSQL DB 16.0 - 16.2» и «Uvicorn».

При использовании параметра -sV Nmap определил, что на хосте работает Linux. Давай попробуем узнать больше информации об операционной системе. Добавь в команду параметр -O:

sudo nmap -sV -O localhost
В ответе появились такие строки:

Device type: general purpose
Running: Linux 2.6.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:2.6.32 cpe:/o:linux:linux_kernel:5 cpe:/o:linux:linux_kernel:6
OS details: Linux 2.6.32, Linux 5.0 - 6.2
Network Distance: 0 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Nmap пытается угадывать версию операционной системы. Процесс неточный, так как гадает он по сетевому поведению. Но ты получаешь хотя бы неплохих кандидатов. Чтобы понять, насколько точно все получилось, выполни на своем хосте

ret0x2a@kali:~$ uname -a
Linux kali 6.12.38+kali-amd64 #1 SMP PREEMPT_DYNAMIC Kali 6.12.38-1kali1 (2025-08-12) x86_64 GNU/Linux
Более агрессивный метод — использовать вместо -O и -sV параметр -A:

sudo nmap -A localhost
Параметр -A — это короткий эквивалент -O -sV -sC --traceroute. Команду выше можно было бы записать как

sudo nmap -O -sV -sC --traceroute localhost
С -O и -sV ты уже знаком. Опция --traceroute добавляет к скану трассирование пути до цели. Ты увидишь, какой маршрут проходят пакеты от тебя до таргета. В случае localhost увидишь свой роутер:

TRACEROUTE
HOP RTT ADDRESS
1 3.48 ms TPL-G-9 (192.168.0.1)
Интереснее параметр -sC. Это еще один тип сканирования — при помощи скриптов. У Nmap есть свой движок для пользовательских скриптов, называется он NSE, Nmap Scripting Engine. Скрипты могут выполнять собственные запросы, например классические HTTP GET и POST. Но помни, что сканирование скриптами может сильно изменить вывод. Просканировав localhost с -sC, я не увидел портов 22, 5432 и 8000, как было при других видах сканирования. Вместо них я увидел порты 53, 80 и 443.

Такое поведение не говорит о том, что прошлое сканирование было ошибочным. Оно было неполным. Так же как если бы я просканировал порты с -sU и не увидел бы ни одного открытого порта на UDP. Просто у механизма сканирования не было подходящих инструментов определения — сканирование скриптами не заменяет сканирование портов, а дополняет его.

warning​

Сканируя localhost, можно получить не очень корректные данные. Например, NSE отправил GET на мои порты 80 и 443. Получив ответы, он решил, что порты открыты. В реальности он получил ответы от роутера, а не от самой машины. Это особенность моей сети.

Обман защиты и фильтрации​

Есть еще один способ, который иногда помогает обойти фильтры, — фрагментация пакетов. Пакет IP может быть не доставлен целым куском, а разбит на части. На сервере фрагменты собираются обратно в один пакет и уже тогда обрабатываются. Некоторые фильтры не собирают пакеты на своей стороне, и это дает лазейку.

Используй -mtu, чтобы задать размер фрагмента. Это может быть 8, 16, 24 или 32 байта. Размер обязательно должен быть кратен 8 и находиться в разумных пределах. В большой фрагмент может поместиться весь TCP-заголовок, и смысл разбиения потеряется.

Пример команды:

sudo nmap -sS -mtu 8 localhost
Альтернативная запись — sudo nmap -sS -f localhost. Параметр -f включает фрагментацию пакетов и эквивалентен использованию --mtu 8.

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

SYN Stealth Scan Timing: About 86.70% done; ETC: 05:32 (0:02:13 remaining)
Для просмотра ссылки Войди или Зарегистрируйся
Как бы мы ни хотели сканировать скрытно, в логи попадем однозначно. Но есть два хороших варианта замести следы. Опцией -D (Decoy) ты имитируешь сканирование сразу с нескольких машин. Указываешь параметр, через пробел перечисляешь левые IP. Среди них указываешь макрос ME. Например:

sudo nmap -sS -D 1.1.1.1,ME,8.8.8.8,192.168.0.1 10.10.10.10
Это попытка внести путаницу. Nmap выполнит запросы от имени разных хостов в указанной последовательности. Например, сначала будет 1.1.1.1, потом твой реальный IP, следом 8.8.8.8 и 192.168.0.1.

Если хочешь рандомизировать, используй макрос RND:<num>. Пример: -D RND:5, чтобы Nmap сам сгенерировал пять подставных адресов.

Для просмотра ссылки Войди или Зарегистрируйся
Другой способ скрыть свое присутствие — использование зомби‑машины. В этом случае Nmap отправляет все запросы от имени другой машины и твой IP не фиксируется. Это не прокси в привычном понимании. Вся работа основана на поле IP Identificator, вернее на предсказуемом IPID. Некоторые ОС используют IPID в виде глобального счетчика с обычным инкрементом. Произошло взаимодействие на уровне TCP/IP — счетчик увеличился.

Для просмотра ссылки Войди или ЗарегистрируйсяДля просмотра ссылки Войди или ЗарегистрируйсяДля просмотра ссылки Войди или ЗарегистрируйсяДля просмотра ссылки Войди или Зарегистрируйся
Nmap запоминает текущий IPID зомби‑машины. После чего отправляет пакет с подделкой отправителя. Целевая машина получает пакет и отправляет ответ на «отправителя», которым указана зомби‑машина. Зомби‑машина получает пакет от цели. Удивляется и, например, шлет RST. Это приводит к увеличению IPID. Nmap обращается к зомби‑машине и видит, что IPID изменился. Значит, целевая машина что‑то отправляла на зомби. Схема сложная, но может оказаться вполне рабочей.

Основная проблема — это найти подходящую зомби‑машину. У нее должен быть предсказуемый IPID, и она должна простаивать. Если машина активно работает, то предсказать IPID не получится. Найти машину с глобальным счетчиком тоже становится все сложнее.

Запустить сканирование через зомби:

sudo nmap -sS -sI <zombie_ip> <target>

info​

Запустить сканирование через зомби можно только с правами root и типом сканирования -sS (TCP SYN).

Скрипты и NSE​

Nmap поддерживает пользовательские скрипты. Чтобы запустить сканирование со скриптом, добавь параметр --script [<script>,<script>]. Например: --script vuln. Такой запуск дополнит сканирование проверкой на известные уязвимости. Обрати внимание, что vuln — это не один скрипт. NSE поддерживает как вызов отдельного скрипта, так и вызов целой группы скриптов.

У тулзы есть большая библиотека предустановленных скриптов. Посмотреть полный список с категориями можно в файле script.db. Дефолтный путь в Linux: /usr/share/nmap/scripts/script.db.

Не обращай внимания на расширение, это обычный текстовый файл. В поле filename хранится название скрипта (при запуске указывай без .nse), в categories — к каким группам относится. Как я писал выше, можешь передать в --script как название самого скрипта из filename, так и название группы.

sudo nmap -sS --scrip discovery localhost
Командой выше ты просишь Nmap запустить скрипты из группы discovery после сканирования портов.

info​

Вижу, что ты уже потираешь руки в надежде найти кучу уязвимостей, выполнив --script vuln. Да, этот набор скриптов находит уязвимости, и находит их много. Часто дает ссылку на готовый эксплоит. Но не всегда эти уязвимости эксплуатируются просто так. Для многих CVE условия оказываются невыполнимыми. Например, когда требуется какой‑то серьезный доступ по SSH.
Некоторые скрипты требуют входящие аргументы. Аргументы передаются при помощи --script-args.

sudo nmap --script http-auth --script-args http-auth.path=/login -p80 <target>
Если используешь несколько скриптов, аргументы могут запутаться. На этот случай разработчики Nmap предусмотрели специальный синтаксис для аргументов. Все аргументы перечисляются через запятую. Каждый аргумент состоит из двух частей, разделенных точкой. Первая часть — скрипт, к которому относится аргумент. Вторая — сам аргумент.

sudo nmap -p 80 --script http-put --script-args http-put.url='/files/web-shell.php',http-put.file='./web-shell.php'
Чтобы лучше разобраться, посмотри в файле script.db, какие скрипты относятся к категории default. Именно эта категория скриптов выполняется, когда запускаешь Nmap с опцией -sC.

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


Сетевое сканирование​

Есть еще один вид массового сканирования Nmap — сканирование подсетей. Если тебе нужно понять, какие хосты в подсети живы, используй -sn и укажи диапазон адресов. Nmap принимает как CIDR-формат (192.168.0.0/24), так и диапазон через дефис 192.168.0.1-254. Пример запуска:

sudo nmap -sn 192.168.0.1-254

warning​

Не путай -sn и -sN. Вариант с маленькой n — это сканирование подсетей. С большой буквой — это NULL Scan, когда пакеты TCP отправляются с нулевыми флагами.
Если сканируешь локальную сеть и запустил Nmap с правами root, каждому хосту сначала отправятся пакеты ARP. В других случаях сканер шлет ICMP Echo. От хоста пришел ответ? Сканер пометит его как up и больше не будет проверять. К остальным хостам будут применены другие способы определения, жив ли хост. Эти способы в терминологии Nmap называются probe. По дефолту после ICMP Echo будет отправлен TCP SYN на порт 443. После — TCP ACK на порт 80. Завершающая проверка по дефолту — ICMP Timestamp.

Ты можешь указать конкретные варианты проверок. Для этого в Nmap есть параметры типа -P<type>, где P — сокращение от probe, а <type> указывает конкретный тип проверок. Команду выше можно было бы написать так:

sudo nmap -sn -PE -PS443 -PA80 -PP 192.168.0.1-254
Здесь

  • -PE — классический ping при помощи ICMP Echo. Не очень надежный метод, многие файрволы блокируют ICMP;
  • -PS443 — скан TCP SYN на порт 443. Можешь указать несколько портов через запятую (без пробелов);
  • -PA80 — аналог PS , но используется пакет TCP ACK;
  • -PP — обычный ICMP Timestamp. Часто срабатывает лучше, чем простой эхо‑запрос.
Подробнее познакомиться со всеми вариантами -P<type> можешь в официальной документации. Это довольно специфичные знания, в которые новичку не всегда есть смысл углубляться.


Заключение​

Если внимательно читал и запоминал, то поздравляю: у тебя есть 90% всех знаний о Nmap, которые пригодятся в работе. Если хочешь углубиться в доступные параметры, смотри Для просмотра ссылки Войди или Зарегистрируйся. Знаний из статьи хватит, чтобы спокойно проходить обучающие машины HTB, THM и других сервисов, а также для первых практических опытов в белом законном пентесте. Тебе остается только практиковаться, практиковаться и практиковаться.

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

Если хочешь дальше углубиться в Nmap, есть смысл разбираться с движком скриптов NSE. Сообщество пользователей уже собрало внушительную базу скриптов, но ты всегда можешь вооружиться Lua и написать свои уникальные.
 
Activity
So far there's no one here