Методы сканирования портов
SYN, connect и UDP
«Методы сканирования портов» — бесплатный урок Ethical Hacking Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Ethical Hacking Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Ethical Hacking Academy содержит 4 уроков всего.
Зачем сканировать порты
Открытые порты показывают, какие службы запущены на узле, то есть дают карту поверхности атаки. Сканирование портов определяет, какие порты TCP и UDP открыты, закрыты или фильтруются.
Nmap предлагает несколько методов сканирования, различающихся скоростью, скрытностью и требуемыми правами.
Состояния портов
Nmap сообщает о каждом порте одно из следующих состояний:
- открыт: служба активно принимает соединения.
- закрыт: порт доступен, но служба его не прослушивает.
- фильтруется: брандмауэр блокирует зонды, поэтому Nmap не может определить состояние.
- открыт|фильтруется и закрыт|фильтруется: неоднозначные результаты.
Трёхэтапное рукопожатие TCP
Для понимания сканирования необходимо разобраться в рукопожатии TCP:
- Клиент отправляет SYN.
- Если порт открыт, сервер отвечает SYN-ACK.
- Клиент отправляет ACK, завершая соединение.
Закрытый порт отвечает RST. Методы сканирования различаются тем, насколько далеко они проходят в этом рукопожатии.
SYN-сканирование
SYN-сканирование (-sS) используется по умолчанию при запуске от имени root. Nmap отправляет SYN, получает SYN-ACK (порт открыт) или RST (порт закрыт), а затем отправляет RST, чтобы не завершать рукопожатие.
Это «полуоткрытое» сканирование выполняется быстро и сравнительно незаметно, поскольку полное соединение не устанавливается. Для него нужны права на необработанные сокеты.
sudo nmap -sS 192.168.1.10Сканирование подключением
Сканирование подключением (-sT) завершает полное трёхэтапное рукопожатие с помощью сетевого API операционной системы. Специальные права не нужны, поэтому это запасной вариант для пользователей без соответствующих прав.
Поскольку соединение устанавливается полностью, такой способ заметнее и с большей вероятностью будет записан в журналах служб цели.
nmap -sT 192.168.1.10Сканирование UDP
Сканирование UDP (-sU) обнаруживает службы, такие как DNS, SNMP и DHCP, использующие UDP. UDP не устанавливает соединение, поэтому сканирование медленное и сложное:
- Отсутствие ответа часто означает «открыт|фильтруется».
- Сообщение ICMP о недоступности порта означает, что порт закрыт.
О службах UDP часто забывают, поэтому они могут скрывать важные результаты.
sudo nmap -sU --top-ports 50 192.168.1.10Скрытное сканирование
Некоторые методы используют необычные сочетания флагов, чтобы обходить простые брандмауэры и избегать записи SYN в журналы:
- FIN (
-sF): установлен только флаг FIN. - NULL (
-sN): флаги не установлены. - Xmas (
-sX): установлены FIN, PSH и URG — пакет «сияет, как рождественская ёлка».
Эти методы опираются на поведение, описанное в RFC, и часто работают только в некоторых реализациях сетевого стека.
sudo nmap -sX 192.168.1.10Выбор портов
Управляйте списком сканируемых портов, чтобы соблюсти баланс между скоростью и охватом:
-p 80,443— определённые порты.-p 1-1000— диапазон.-p-— все 65535 портов.--top-ports 100— 100 наиболее распространённых портов.-F— быстрое сканирование 100 наиболее распространённых портов.
nmap -p- 192.168.1.10
nmap --top-ports 100 192.168.1.10Шаблоны темпа
Флаг -T задаёт темп от 0 (параноидальный) до 5 (безумный):
- -T0/-T1: очень медленно, чтобы уклоняться от IDS.
- -T3: сбалансированный вариант по умолчанию.
- -T4: быстрее, обычно используется в надёжных сетях.
- -T5: агрессивно, возможна потеря результатов.
Более быстрое сканирование заметнее и повышает риск неточностей.
nmap -sS -T4 -p- 192.168.1.10Основы обхода брандмауэров
Nmap предлагает параметры для проверки устойчивости брандмауэров и IDS:
-fфрагментирует пакеты.-Dиспользует ложные адреса источника.--source-portподменяет доверенный порт источника, например 53.
Используйте эти параметры только в разрешённых проверках, чтобы оценивать возможности обнаружения.
Составление практического сканирования
На практике эти параметры комбинируют. Распространённое тщательное сканирование TCP выбирает метод сканирования, все порты, повышенный темп и сохранение результатов.
Начните с широкого сканирования, чтобы найти открытые порты, а затем выполните целевые дополнительные проверки (определение версий, скрипты) только для действительно открытых портов. Такой двухэтапный подход быстрее и незаметнее, чем выполнение всех действий сразу.
sudo nmap -sS -p- -T4 -oA tcp_all 192.168.1.10
# Then deep-scan only the open ports foundБыстрая проверка
Сопоставьте метод сканирования с его поведением.
Итоги
Вы изучили методы сканирования портов:
- Состояния портов: открыт, закрыт, фильтруется и неоднозначные варианты.
- SYN-сканирование (-sS) — скрытный вариант по умолчанию; подключение (-sT) не требует прав, но заметнее.
- UDP (-sU) работает медленно, но обнаруживает службы, о которых часто забывают.
- Сканирование FIN/NULL/Xmas обходит простые брандмауэры.
- Управляйте портами с помощью
-p, скоростью — с помощью-T, а обход проверяйте с помощью -f/-D.
Далее: определение служб и операционной системы.
Часто задаваемые вопросы
Урок «Методы сканирования портов» бесплатный?
Да — полный текст урока «Методы сканирования портов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Ethical Hacking Academy, подпишись на CoddyKit PRO. Курс Ethical Hacking Academy содержит 4 уроков всего.
Чему я научусь в уроке «Методы сканирования портов»?
SYN, connect и UDP Ты практикуешь Ethical Hacking Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Ethical Hacking Academy?
Предыдущий опыт не требуется. Ethical Hacking Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Методы сканирования портов»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Ethical Hacking Academy?
Да. Каждый урок Ethical Hacking Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Обнаружение узлов
- Методы сканирования портов
- Определение служб и OS
- Механизм скриптов Nmap