Этичный хакинг и основы тестирования на проникновение: от сетевых протоколов до комплексной защиты

Комплексный курс по кибербезопасности, обучающий методологии поиска уязвимостей и защите информационных систем. Студенты пройдут путь от настройки Linux-окружения до эксплуатации веб-уязвимостей и анализа психологии злоумышленников.

1. Основы компьютерных сетей и протоколов передачи данных для задач пентестинга

Основы компьютерных сетей и протоколов передачи данных для задач пентестинга

Представьте, что вы стоите перед запертой дверью современного банка. Чтобы проникнуть внутрь незамеченным, вам не обязательно ломать замок кувалдой. Гораздо эффективнее изучить, как работает система вентиляции, по каким трубам подается вода, где проходят кабели связи и как охранники обмениваются сообщениями по рации. В цифровом мире роль этих коммуникаций играют компьютерные сети. Без понимания того, как данные перемещаются от вашего ноутбука к серверу на другом конце планеты, хакинг превращается в бездумное нажатие кнопок в готовых программах. Настоящий специалист по безопасности видит не «интернет», а бесконечный поток пакетов, каждый из которых может стать ключом к системе или уликой для защитника.

Модель OSI: Семь уровней абстракции хаоса

Для новичка сетевой трафик выглядит как неструктурированный шум. Чтобы навести в нем порядок, инженеры создали модель взаимодействия открытых систем (Open Systems Interconnection, OSI). Это теоретический фундамент, который позволяет разделить процесс передачи данных на семь логических этапов. Пентестеру важно понимать эту иерархию, потому что атаки всегда нацелены на конкретный уровень.

  • Физический уровень (Physical): Это кабели, радиоволны Wi-Fi и электрические импульсы. Здесь данные — это просто биты ( и ). Атаки на этом уровне включают физическое подключение к кабелю или глушение частот.
  • Канальный уровень (Data Link): Здесь появляются MAC-адреса. Данные упаковываются в кадры (фреймы). Основное устройство здесь — коммутатор (свитч). Типичная атака — ARP-spoofing, позволяющая перехватить трафик соседа по локальной сети.
  • Сетевой уровень (Network): Уровень IP-адресов и маршрутизации. Здесь данные называются пакетами. Маршрутизаторы решают, по какому пути отправить пакет, чтобы он достиг цели.
  • Транспортный уровень (Transport): Отвечает за доставку данных между конкретными приложениями. Здесь работают протоколы TCP и UDP, а также появляются порты.
  • Сеансовый уровень (Session): Управляет установкой, поддержанием и разрывом соединений.
  • Уровень представления (Presentation): Преобразует данные в понятный формат (кодировки, шифрование SSL/TLS).
  • Прикладной уровень (Application): То, что видит пользователь: HTTP (браузеры), FTP (файлы), SMTP (почта).
  • В реальности чаще используется упрощенная модель TCP/IP, состоящая из четырех уровней (Канальный, Сетевой, Транспортный, Прикладной), но модель OSI остается «золотым стандартом» для диагностики и классификации уязвимостей. Если коллега говорит вам: «У нас проблема на третьем уровне», вы сразу понимаете, что нужно проверять настройки IP или маршрутизации, а не искать ошибку в коде сайта.

    Анатомия IP-адресации и маски подсети

    Каждое устройство в сети должно иметь уникальный идентификатор. В протоколе IPv4 это 32-битное число, которое мы привыкли видеть в десятичном формате, например 192.168.1.15. Однако для компьютера это выглядит как четыре октета по 8 бит: 11000000.10101000.00000001.00001111.

    Для пентестера критически важно понимать разделение адреса на «адрес сети» и «адрес узла». Это определяется маской подсети. Маска — это фильтр, который говорит устройству, какая часть IP-адреса относится к его «дому» (локальной сети), а какая — к нему лично.

    Рассмотрим пример с маской 255.255.255.0 (или /24 в нотации CIDR). Это означает, что первые 24 бита зарезервированы под адрес сети. Если ваш адрес 192.168.1.15, то 192.168.1.0 — это идентификатор вашей сети, а .15 — ваш номер в ней.

    > Почему это важно для хакинга? > > Когда вы попадаете в корпоративную сеть, ваша первая задача — провести разведку. Зная маску подсети, вы понимаете диапазон адресов, которые нужно просканировать. Если вы видите маску /16 (), это означает, что в сети может быть до потенциальных целей. Если же маска /24, то целей всего .

    Существуют также «серые» (частные) IP-адреса, которые не видны из глобального интернета: * 10.0.0.010.255.255.255 * 172.16.0.0172.31.255.255 * 192.168.0.0192.168.255.255

    Большинство атак внутри компании происходят именно в этих диапазонах. Злоумышленник, находясь снаружи, не может напрямую отправить пакет на 192.168.1.5, но он может заставить компьютер внутри этой сети «постучаться» наружу.

    Протоколы транспортного уровня: TCP vs UDP

    Если IP-адрес — это адрес дома, то порт — это номер квартиры. На одном сервере могут одновременно работать веб-сайт (порт 80), почта (порт 25) и база данных (порт 5432). Чтобы данные попали к нужному приложению, используются протоколы транспортного уровня.

    TCP (Transmission Control Protocol)

    Это протокол с установкой соединения. Представьте его как телефонный звонок: вы набираете номер, ждете ответа («Алло?»), и только потом начинаете говорить. TCP гарантирует, что:
  • Данные дойдут в полном объеме.
  • Пакеты соберутся в правильном порядке.
  • Если пакет потеряется, он будет отправлен повторно.
  • Процесс установки соединения называется «Тройное рукопожатие» (Three-way Handshake):

  • Клиент отправляет пакет SYN (Synchronize).
  • Сервер отвечает SYN-ACK (Synchronize-Acknowledge).
  • Клиент отправляет ACK (Acknowledge).
  • Для этичного хакера этот процесс — кладезь информации. Сканеры портов (например, Nmap) часто используют «полуоткрытое» сканирование: отправляют SYN, получают SYN-ACK (значит, порт открыт) и тут же обрывают связь, не отправляя финальный ACK. Это позволяет обнаружить активные службы, не создавая полноценного соединения, которое легче заметить в логах.

    UDP (User Datagram Protocol)

    Это протокол без установки соединения. Он похож на отправку обычных бумажных писем: вы просто кидаете их в ящик, не зная, дошли они или нет. UDP быстрее, потому что не тратит время на «рукопожатия» и проверки. Он используется там, где скорость важнее точности: видеосвязь, онлайн-игры, DNS-запросы. С точки зрения пентестинга, UDP сканировать сложнее. Если порт закрыт, сервер может прислать ошибку ICMP, но если порт открыт, он может просто проигнорировать ваш пакет, не дав никакого ответа.

    Служебные протоколы: ARP, DNS и DHCP

    Сеть не могла бы функционировать без «невидимых» помощников, которые автоматизируют настройку. Именно в этих помощниках часто кроются самые опасные уязвимости.

    ARP (Address Resolution Protocol)

    Компьютеры в локальной сети общаются не по IP-адресам, а по MAC-адресам (физическим адресам сетевых карт). ARP — это протокол, который сопоставляет IP с MAC. Когда ваш компьютер хочет отправить данные на 192.168.1.1, он кричит на всю сеть: «У кого IP 192.168.1.1? Сообщите свой MAC!». Проблема в том, что ARP был придуман в эпоху доверия. Любой компьютер может отправить поддельный ответ: «Это я 192.168.1.1, отправляй данные мне!». Это основа атаки Man-in-the-Middle (MITM). Злоумышленник встает между жертвой и роутером, читая или изменяя весь трафик.

    DNS (Domain Name System)

    Это «телефонная книга» интернета. Мы вводим google.com, а DNS превращает это в IP-адрес. Для хакера DNS — это инструмент разведки. Изучая DNS-записи компании, можно найти скрытые поддомены (например, dev-test.company.com), на которых часто забывают обновить защиту. Также существует атака «отравление кэша DNS», когда пользователю подсовывается IP-адрес фальшивого сайта вместо настоящего.

    DHCP (Dynamic Host Configuration Protocol)

    Протокол, который выдает вашему устройству IP-адрес, маску и адрес шлюза при подключении к сети. Атака «DHCP Starvation» позволяет злоумышленнику занять все свободные IP-адреса в сети, вызвав отказ в обслуживании (DoS) для новых пользователей, или поднять свой фальшивый DHCP-сервер, чтобы стать шлюзом для всех устройств и перехватывать их трафик.

    Протокол HTTP и основы веб-коммуникаций

    Поскольку большинство современных атак нацелено на веб-приложения, понимание HTTP (HyperText Transfer Protocol) обязательно. Это текстовый протокол, работающий по принципу «запрос-ответ».

    Типичный запрос клиента выглядит так:

    Основные методы запросов: * GET — запрашивает данные (параметры передаются прямо в URL). * POST — отправляет данные на сервер (например, логин и пароль в теле запроса). * PUT/DELETE — создание или удаление ресурсов (часто отключены из соображений безопасности).

    Сервер отвечает кодом состояния: * 200 OK — все хорошо. * 301/302 — перенаправление. * 403 Forbidden — доступ запрещен (вызов для пентестера!). * 404 Not Found — страница не найдена. * 500 Internal Server Error — ошибка на сервере (часто признак того, что ваши действия вызвали сбой в базе данных, что может быть ключом к SQL-инъекции).

    В контексте безопасности критически важен переход на HTTPS. Это тот же HTTP, но обернутый в слой шифрования TLS (Transport Layer Security). Без него любой человек в вашей Wi-Fi сети или провайдер может видеть ваши пароли в открытом виде. Этичный хакер должен понимать, как работают сертификаты и почему браузер выдает предупреждение «Соединение не защищено».

    Инкапсуляция: матрешка из данных

    Чтобы понять, как все эти протоколы работают вместе, нужно разобрать процесс инкапсуляции. Когда вы отправляете сообщение в мессенджере, оно проходит путь сверху вниз по модели OSI:

  • На Прикладном уровне создаются данные сообщения.
  • На Транспортном уровне к ним добавляется TCP-заголовок с номерами портов. Получается сегмент.
  • На Сетевом уровне добавляется IP-заголовок с адресами отправителя и получателя. Получается пакет.
  • На Канальном уровне добавляется заголовок с MAC-адресами и контрольная сумма. Получается кадр.
  • На Физическом уровне все это превращается в электрические сигналы.
  • На стороне получателя происходит обратный процесс — деинкапсуляция. Каждое устройство «снимает» только тот слой, который оно понимает. Коммутатор смотрит только на кадр, маршрутизатор — на пакет, а ваш браузер — на данные прикладного уровня.

    Для пентестинга это означает, что мы можем манипулировать данными на любом этапе. Мы можем создать «битый» пакет, где в IP-заголовке указан неверный размер данных, чтобы вызвать сбой в операционной системе (атака Ping of Death), или подделать адрес отправителя (IP Spoofing), чтобы обойти фильтры безопасности.

    Анализ трафика: зачем нужен Wireshark

    Теория протоколов оживает, когда вы начинаете видеть их в реальности. Основной инструмент для этого — анализатор пакетов (сниффер), такой как Wireshark. Он переводит сетевую карту в «промискуитетный» режим (promiscuous mode), позволяя ей ловить вообще все пакеты, пролетающие мимо, а не только те, что адресованы лично вам.

    Изучая дамп трафика (pcap-файл), пентестер может: * Найти учетные данные, передаваемые через незащищенные протоколы (Telnet, HTTP, FTP). * Восстановить файлы, которые передавались по сети. * Обнаружить следы работы вредоносного ПО (например, странные запросы к неизвестным серверам в Китае или Восточной Европе). * Понять логику работы проприетарного протокола, который использует какое-нибудь специфическое устройство (например, промышленный контроллер или «умная» лампочка).

    Работа с трафиком — это детективное расследование. Например, если вы видите в Wireshark длинную серию пакетов SYN от одного IP к разным портам другого IP, вы с уверенностью можете сказать: «Кто-то проводит сканирование портов».

    Сетевые заграждения: NAT и Firewall

    В современной сети вы редко встретитесь с целью «лицом к лицу». Обычно на пути стоят защитные механизмы.

    NAT (Network Address Translation) — технология, которая позволяет целой квартире или офису выходить в интернет через один публичный IP-адрес. Ваш домашний роутер заменяет ваш внутренний адрес 192.168.1.15 на свой внешний адрес. Для пентестера это означает, что он не может просто так «постучаться» к вам извне — роутер не поймет, кому именно в локальной сети предназначен пакет, если соединение не было инициировано изнутри. Это создает естественный барьер.

    Firewall (Межсетевой экран) — это охранник с журналом правил. Он анализирует заголовки пакетов и решает: пропустить их или сбросить. Правила могут быть простыми («запретить всё с порта 80») или сложными (анализ поведения). Существуют два основных типа фильтрации:

  • Stateless (без учета состояния): Проверяет каждый пакет отдельно. Легко обмануть, подделав флаги TCP.
  • Stateful (с учетом состояния): Помнит, было ли открыто соединение. Если пришел пакет ACK, но до этого не было SYN, такой пакет будет отброшен.
  • Понимание того, как работают эти системы, позволяет хакеру использовать техники обхода: туннелирование (упаковка запрещенного трафика внутрь разрешенного, например, DNS или ICMP) или фрагментацию пакетов (разрезание пакета на такие мелкие части, что фильтр не может распознать в них атаку).

    Практическая значимость основ для будущего обучения

    Многие новички пытаются перескочить этот этап, считая его скучным. Они хотят сразу запускать эксплойты. Но без базы они сталкиваются с непреодолимыми трудностями: * Почему мой сканер не видит цель, хотя она в сети? (Неверная маска или блокировка ICMP). * Почему я перехватил трафик, но он выглядит как абракадабра? (Нужно понимать кодировки и TLS). * Как мне закрепиться в системе, если порт закрыт снаружи? (Использование обратного соединения — Reverse Shell).

    Сетевые протоколы — это правила игры. Зная их, вы понимаете не только то, как взломать систему, но и как выстроить эшелонированную оборону. Безопасность — это не установка антивируса, это правильная сегментация сети, настройка прав доступа на уровне портов и постоянный мониторинг аномалий в трафике.

    В следующих главах мы перейдем к практике: научимся управлять этими процессами через командную строку Linux и использовать специализированные инструменты для автоматизации разведки. Но каждый раз, когда вы будете видеть в терминале строчку IP 10.0.2.15.443 > 192.168.1.1.53210: Flags [P.], в вашей голове должна всплывать эта картина: уровни OSI, тройное рукопожатие и путь пакета через кабели и роутеры. Это и есть техническое зрение этичного хакера.