Сетевой коммутатор на тёмном антистатическом коврике, семь портов подсвечены разноцветными светодиодами. На дисплее — техническая надпись, рядом тянется патч-корд в мягком боке.


На одном из первых внутренних пентестов я запустил ARP-спуфинг в корпоративной сети - и не перехватил ни одного пакета. Сорок минут перебирал настройки инструмента, пока коллега не спросил: «А ты проверил, что цель в одном VLAN с тобой?» Сеть оказалась сегментирована, мои ARP-фреймы не выходили за пределы broadcast-домена. Сорок минут впустую - из-за того, что я не подумал, на каком уровне работаю. С тех пор основы сетей для пентестера - это не «выучить определения из учебника», а понимание: на каком уровне ты находишься прямо сейчас и что на этом уровне вообще возможно.

Модель OSI для хакера: семь уровней - семь поверхностей атаки​

Модель OSI - не академическая абстракция из курса CCNA. Для пентестера это карта: «Где я нахожусь и какой инструмент здесь уместен?» Подробнее - в нашем материале про карьера в кибербезопасности.

УровеньНазваниеПротоколыАтаки и применение в пентесте
L7ApplicationHTTP, DNS, SMTP, SSH, FTPSQLi, XSS, SSRF, подбор credentials
L6PresentationTLS/SSL, кодировкиАтаки на слабые шифры, просроченные сертификаты
L5SessionУправление сессиямиSession hijacking, session fixation
L4TransportTCP, UDPСканирование портов, SYN flood
L3NetworkIP, ICMPIP-спуфинг, обход ACL, разведка подсетей
L2Data LinkEthernet, ARP, VLANARP-спуфинг, VLAN hopping, MITM
L1PhysicalКабели, Wi-FiRogue AP, физическое подключение

Сканируете порты Nmap - работаете на L3-L4: отправляете IP-пакеты с TCP-сегментами. Запускаете Responder для перехвата NTLM-хешей - действуете на L2–L7 одновременно: подмена ответов DNS/LLMNR (L7) опирается на широковещание (L2). Эксплуатируете SQL-инъекцию через Burp Suite - чисто L7. Один и тот же пентестер, три разных уровня - и три разных набора ограничений.

Зачем это пентестеру на практике​

Первое - выбор вектора. ARP-спуфинг работает строго внутри одного broadcast-домена - ограничение уровня L2. Если цель за маршрутизатором, ARP-фреймы до неё не дойдут. Нужно либо попасть в тот сегмент, либо атаковать на L3 и выше. Применимость: внутренний пентест, плоская (несегментированная) сеть или сеть с мисконфигурацией trunk-портов.

Второе - содержание отчёта. Указание уровня OSI помогает инженерам клиента понять, где внедрять защиту. Уязвимость на L2 - port security и Dynamic ARP Inspection на коммутаторах. На L7 - WAF или исправление кода. Без контекста уровня рекомендация «поставьте защиту» бесполезна - всё равно что сказать врачу «у меня болит» без указания где.

Стек протоколов TCP/IP: четыре уровня реального интернета​

Модель OSI - теоретический фреймворк для объяснений. Реальные сети - маршрутизаторы, firewall'ы, ОС - работают на стеке TCP/IP с четырьмя уровнями:

TCP/IPСоответствие OSIКлючевые протоколыЧто видит пентестер
ApplicationL5–L7HTTP, DNS, SSH, FTPВеб-уязвимости, утечка данных
TransportL4TCP, UDPПорты, флаги, состояние соединения
InternetL3IP, ICMPIP-адреса, маршруты, TTL
LinkL1–L2Ethernet, Wi-Fi, ARPMAC-адреса, broadcast

Откройте Wireshark - и увидите эту модель в каждом пакете: Ethernet-заголовок (Link), IP-заголовок (Internet), TCP-заголовок (Transport), данные протокола приложения (Application). Каждый уровень оборачивает данные предыдущего - инкапсуляция. Такая себе матрёшка из заголовков. На приёмной стороне заголовки снимаются в обратном порядке - декапсуляция. Атакующий манипулирует заголовками на конкретном уровне: поддельный MAC - Link, поддельный IP - Internet, модифицированные TCP-флаги - Transport, вредоносный HTTP-запрос - Application.

Пентестеры используют обе модели: OSI - для коммуникации с клиентом и структурирования отчётов, TCP/IP - для работы с инструментами и анализа трафика. На практике чаще думаешь в терминах TCP/IP, а пишешь в терминах OSI.

TCP-рукопожатие: почему SYN-скан работает именно так​

TCP устанавливает соединение через трёхстороннее рукопожатие - три пакета с определёнными флагами:
  1. SYN - клиент: «Хочу подключиться, seq = X»
  2. SYN-ACK - сервер: «Принял, seq = Y, ack = X+1»
  3. ACK - клиент: «Подтверждаю, ack = Y+1. Соединение открыто»
Четыре флага, которые нужно запомнить: SYN (начало), ACK (подтверждение), RST (сброс), FIN (завершение). Этого хватит за глаза для понимания 90% того, что происходит при сканировании.

Сканирование портов - первый шаг разведки (Scanning IP Blocks, T1595.001, Reconnaissance), и оно построено на манипуляции этим рукопожатием. SYN-скан в Nmap (-sS) отправляет SYN и анализирует ответ:
  • SYN-ACK → порт открыт. Nmap немедленно шлёт RST, не завершая рукопожатие
  • RST → порт закрыт, сервис не слушает
  • Тишина → порт фильтруется, firewall дропает пакет
Bash:
# SYN-скан с определением версий сервисов
# Требует root. Контекст: внутренний пентест
nmap -sS -sV -p 21,22,80,443,445,3389 10.10.10.0/24
Каждая строка вывода Nmap - результат рукопожатия. open - пришёл SYN-ACK. closed - RST. filtered - firewall дропнул пакет без ответа. Когда понимаешь эту механику, Nmap перестаёт быть чёрным ящиком и превращается в диагностический инструмент: ты знаешь не только что порт закрыт, но и почему - сервис явно отверг соединение (RST) или между вами стоит firewall (тишина). Разница принципиальная.

SYN-скан требует root-привилегий для работы с raw-сокетами. Без них Nmap переключится на TCP connect-скан (-sT), который завершает рукопожатие полностью. Это работает, но заметнее для IDS и оставляет записи в логах целевого сервиса. Если можете - всегда запускайте от root.

Сетевые протоколы для пентеста: порты, которые нужно узнавать мгновенно​

Из 65535 портов TCP пентестер регулярно сталкивается с двумя десятками. Вот набор, который надо распознавать без раздумий:

ПортСервисПочему важен для пентестера
21FTPЧасто допускает anonymous-доступ, передаёт данные cleartext
22SSHПодбор credentials. На Linux - основной вектор удалённого доступа
25SMTPРаскрывает внутреннюю структуру сети, relay для фишинга
53DNSZone transfer раскрывает все записи домена. DNS tunneling
80/443HTTP/HTTPSКрупнейшая поверхность атаки (Exploit Public-Facing Application, T1190, Initial Access)
88KerberosАутентификация в Active Directory. Порт для Kerberoasting (T1558.003)
445SMBФайловые шары Windows, исторически - источник критических уязвимостей
3306MySQLЕсли доступен снаружи - часто с дефолтными credentials
3389RDPСлабые пароли = полный доступ к рабочей станции

Внешний vs внутренний пентест: разный набор целей

На внешнем пентесте обычно видны 80, 443, 22, 25 - остальное закрыто периметровым firewall'ом. Цель - найти порт, который администратор забыл прикрыть, или уязвимость в экспонированном сервисе.

На внутреннем картина противоположная: 445, 3389, 88, 53 открыты по всей подсети. Здесь атака строится через сетевые протоколы Windows - от обнаружения SMB-шар с некорректными ACL до Kerberoasting через SPN-записи в Active Directory. Без понимания, зачем Impacket отправляет TGS-запрос на порт 88, вся атака остаётся магией чужих скриптов. А магия - плохой фундамент для пентеста.

Совет по разведке: первые три октета MAC-адреса указывают на вендора оборудования. 00:50:56 и 00:0C:29 - VMware (по данным IEEE OUI). Увидели такие MAC'и - значит, инфраструктура виртуализирована, и это влияет на выбор вектора post-exploitation.

Что видит IDS при сканировании сети​

Сканирование портов - не невидимая операция. Современные системы обнаружения и SIEM фиксируют характерные паттерны:
📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме

Первый практический шаг: от пакетов к пониманию​

Требования к окружению​

  • ОС: Kali Linux (текущий релиз) или Ubuntu/Debian с установленными Nmap и Wireshark
  • RAM: от 4 ГБ для одной VM, 8 ГБ для связки Kali + Metasploitable 2
  • Виртуализация: VirtualBox или VMware Workstation. Сеть - Host-Only или Internal Network
  • Права: root/sudo для SYN-скана (raw-сокеты)
  • Интернет: не требуется, всё работает offline
Поднимите Kali и Metasploitable 2 в одной виртуальной сети. Просканируйте цель через nmap -sS -sV <IP>, затем откройте Wireshark на интерфейсе Kali и примените фильтр tcp.flags.syn == 1. Вы увидите каждый SYN-пакет и каждый SYN-ACK - рукопожатие в реальном трафике, не на картинке из учебника. Соотнесите вывод Nmap с пакетами в Wireshark: open = SYN-ACK, closed = RST, filtered = тишина.

Когда эта связь станет очевидной, сетевые инструменты перестанут быть чёрными ящиками. А это уже уровень, с которого начинается настоящий анализ сетевого трафика и настоящий пентест.

Я начинал с желания побыстрее запустить Metasploit и «что-нибудь сломать». Сети казались скучной прослойкой между мной и shell'ом. Реальность оказалась жёстче: каждый инструмент пентестера - обёртка над сетевым взаимодействием. Когда обёртка не работает, остаётся два пути - вслепую перебирать другие инструменты или открыть Wireshark и понять, что происходит на уровне пакетов. Второй путь экономит часы. Первый - нервы.

Часто спрашивают: нужно ли сдавать CCNA, прежде чем лезть в пентест? Нет. Но на уровне рефлекса нужно различать TCP и UDP, понимать broadcast-домен, CIDR-нотацию подсетей, знать, что TTL в IP-заголовке - основа работы traceroute. Это не «учить сети ради сетей». Это навык, который определяет, поймёте ли вы результаты собственного сканирования. Без него CTF-площадки вроде HackTheBox вызывают фрустрацию вместо прогресса - writeup'ы описывают действия, но не объясняют, почему они работают. Если непонятно, с какого конца подступиться - на IB Basics показывают что делать в первый месяц, от сетей до первых практических задач, без требования предварительных знаний.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab