1. Основы компьютерных сетей и протоколов передачи данных для задач пентестинга
Основы компьютерных сетей и протоколов передачи данных для задач пентестинга
Представьте, что вы стоите перед запертой дверью современного банка. Чтобы проникнуть внутрь незамеченным, вам не обязательно ломать замок кувалдой. Гораздо эффективнее изучить, как работает система вентиляции, по каким трубам подается вода, где проходят кабели связи и как охранники обмениваются сообщениями по рации. В цифровом мире роль этих коммуникаций играют компьютерные сети. Без понимания того, как данные перемещаются от вашего ноутбука к серверу на другом конце планеты, хакинг превращается в бездумное нажатие кнопок в готовых программах. Настоящий специалист по безопасности видит не «интернет», а бесконечный поток пакетов, каждый из которых может стать ключом к системе или уликой для защитника.
Модель OSI: Семь уровней абстракции хаоса
Для новичка сетевой трафик выглядит как неструктурированный шум. Чтобы навести в нем порядок, инженеры создали модель взаимодействия открытых систем (Open Systems Interconnection, OSI). Это теоретический фундамент, который позволяет разделить процесс передачи данных на семь логических этапов. Пентестеру важно понимать эту иерархию, потому что атаки всегда нацелены на конкретный уровень.
В реальности чаще используется упрощенная модель 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.0 — 10.255.255.255
* 172.16.0.0 — 172.31.255.255
* 192.168.0.0 — 192.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:
На стороне получателя происходит обратный процесс — деинкапсуляция. Каждое устройство «снимает» только тот слой, который оно понимает. Коммутатор смотрит только на кадр, маршрутизатор — на пакет, а ваш браузер — на данные прикладного уровня.
Для пентестинга это означает, что мы можем манипулировать данными на любом этапе. Мы можем создать «битый» пакет, где в 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») или сложными (анализ поведения). Существуют два основных типа фильтрации:
ACK, но до этого не было SYN, такой пакет будет отброшен.Понимание того, как работают эти системы, позволяет хакеру использовать техники обхода: туннелирование (упаковка запрещенного трафика внутрь разрешенного, например, DNS или ICMP) или фрагментацию пакетов (разрезание пакета на такие мелкие части, что фильтр не может распознать в них атаку).
Практическая значимость основ для будущего обучения
Многие новички пытаются перескочить этот этап, считая его скучным. Они хотят сразу запускать эксплойты. Но без базы они сталкиваются с непреодолимыми трудностями: * Почему мой сканер не видит цель, хотя она в сети? (Неверная маска или блокировка ICMP). * Почему я перехватил трафик, но он выглядит как абракадабра? (Нужно понимать кодировки и TLS). * Как мне закрепиться в системе, если порт закрыт снаружи? (Использование обратного соединения — Reverse Shell).
Сетевые протоколы — это правила игры. Зная их, вы понимаете не только то, как взломать систему, но и как выстроить эшелонированную оборону. Безопасность — это не установка антивируса, это правильная сегментация сети, настройка прав доступа на уровне портов и постоянный мониторинг аномалий в трафике.
В следующих главах мы перейдем к практике: научимся управлять этими процессами через командную строку Linux и использовать специализированные инструменты для автоматизации разведки. Но каждый раз, когда вы будете видеть в терминале строчку IP 10.0.2.15.443 > 192.168.1.1.53210: Flags [P.], в вашей голове должна всплывать эта картина: уровни OSI, тройное рукопожатие и путь пакета через кабели и роутеры. Это и есть техническое зрение этичного хакера.