На одном из первых внутренних пентестов я запустил ARP-спуфинг в корпоративной сети - и не перехватил ни одного пакета. Сорок минут перебирал настройки инструмента, пока коллега не спросил: «А ты проверил, что цель в одном VLAN с тобой?» Сеть оказалась сегментирована, мои ARP-фреймы не выходили за пределы broadcast-домена. Сорок минут впустую - из-за того, что я не подумал, на каком уровне работаю. С тех пор основы сетей для пентестера - это не «выучить определения из учебника», а понимание: на каком уровне ты находишься прямо сейчас и что на этом уровне вообще возможно.
Модель OSI для хакера: семь уровней - семь поверхностей атаки
Модель OSI - не академическая абстракция из курса CCNA. Для пентестера это карта: «Где я нахожусь и какой инструмент здесь уместен?» Подробнее - в нашем материале про карьера в кибербезопасности.| Уровень | Название | Протоколы | Атаки и применение в пентесте |
|---|---|---|---|
| L7 | Application | HTTP, DNS, SMTP, SSH, FTP | SQLi, XSS, SSRF, подбор credentials |
| L6 | Presentation | TLS/SSL, кодировки | Атаки на слабые шифры, просроченные сертификаты |
| L5 | Session | Управление сессиями | Session hijacking, session fixation |
| L4 | Transport | TCP, UDP | Сканирование портов, SYN flood |
| L3 | Network | IP, ICMP | IP-спуфинг, обход ACL, разведка подсетей |
| L2 | Data Link | Ethernet, ARP, VLAN | ARP-спуфинг, VLAN hopping, MITM |
| L1 | Physical | Кабели, Wi-Fi | Rogue 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 | Ключевые протоколы | Что видит пентестер |
|---|---|---|---|
| Application | L5–L7 | HTTP, DNS, SSH, FTP | Веб-уязвимости, утечка данных |
| Transport | L4 | TCP, UDP | Порты, флаги, состояние соединения |
| Internet | L3 | IP, ICMP | IP-адреса, маршруты, TTL |
| Link | L1–L2 | Ethernet, Wi-Fi, ARP | MAC-адреса, 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 устанавливает соединение через трёхстороннее рукопожатие - три пакета с определёнными флагами:- SYN - клиент: «Хочу подключиться, seq = X»
- SYN-ACK - сервер: «Принял, seq = Y, ack = X+1»
- ACK - клиент: «Подтверждаю, ack = Y+1. Соединение открыто»
Сканирование портов - первый шаг разведки (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
open - пришёл SYN-ACK. closed - RST. filtered - firewall дропнул пакет без ответа. Когда понимаешь эту механику, Nmap перестаёт быть чёрным ящиком и превращается в диагностический инструмент: ты знаешь не только что порт закрыт, но и почему - сервис явно отверг соединение (RST) или между вами стоит firewall (тишина). Разница принципиальная.SYN-скан требует root-привилегий для работы с raw-сокетами. Без них Nmap переключится на TCP connect-скан (
-sT), который завершает рукопожатие полностью. Это работает, но заметнее для IDS и оставляет записи в логах целевого сервиса. Если можете - всегда запускайте от root.Сетевые протоколы для пентеста: порты, которые нужно узнавать мгновенно
Из 65535 портов TCP пентестер регулярно сталкивается с двумя десятками. Вот набор, который надо распознавать без раздумий:| Порт | Сервис | Почему важен для пентестера |
|---|---|---|
| 21 | FTP | Часто допускает anonymous-доступ, передаёт данные cleartext |
| 22 | SSH | Подбор credentials. На Linux - основной вектор удалённого доступа |
| 25 | SMTP | Раскрывает внутреннюю структуру сети, relay для фишинга |
| 53 | DNS | Zone transfer раскрывает все записи домена. DNS tunneling |
| 80/443 | HTTP/HTTPS | Крупнейшая поверхность атаки (Exploit Public-Facing Application, T1190, Initial Access) |
| 88 | Kerberos | Аутентификация в Active Directory. Порт для Kerberoasting (T1558.003) |
| 445 | SMB | Файловые шары Windows, исторически - источник критических уязвимостей |
| 3306 | MySQL | Если доступен снаружи - часто с дефолтными credentials |
| 3389 | RDP | Слабые пароли = полный доступ к рабочей станции |
Внешний 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
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 показывают что делать в первый месяц, от сетей до первых практических задач, без требования предварительных знаний.