Учебник по сетевой коммуникации

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

Эталонная модель

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

У нас есть две эталонные модели, такие как модель OSI и эталонная модель TCP / IP. Однако модель OSI является гипотетической, а TCP / IP - практической моделью.

Модель OSI

Интерфейс открытой системы был разработан Международной организацией по стандартизации (ISO), поэтому его также называют моделью ISO-OSI.

Модель OSI состоит из семи уровней, как показано на следующей диаграмме. Каждый уровень выполняет определенную функцию, однако каждый уровень предоставляет услуги вышестоящему уровню.

Физический слой

Физический уровень отвечает за следующие действия:

  • Активация, поддержание и деактивация физического соединения.

  • Определение напряжений и скоростей передачи данных, необходимых для передачи.

  • Преобразование цифровых битов в электрический сигнал.

  • Выбор типа подключения: симплексное, полудуплексное или полнодуплексное.

Уровень канала передачи данных

Уровень канала данных выполняет следующие функции:

  • Выполняет синхронизацию и контроль ошибок для информации, которая должна передаваться по физическому каналу.

  • Включает обнаружение ошибок и добавляет биты обнаружения ошибок к данным, которые должны быть переданы.

Сетевой уровень

Сетевой уровень выполняет следующие функции -

  • Для маршрутизации сигналов по различным каналам на другой конец.

  • Действовать как сетевой контроллер, решая, какие данные маршрута должны принимать.

  • Чтобы разделить исходящие сообщения на пакеты и собрать входящие пакеты в сообщения для более высоких уровней.

Транспортный уровень

Транспортный уровень выполняет следующие функции -

  • Он решает, должна ли передача данных происходить по параллельным путям или по единственному пути.

  • Он выполняет мультиплексирование, разделение данных.

  • Он разбивает группы данных на более мелкие блоки, чтобы они более эффективно обрабатывались сетевым уровнем.

Транспортный уровень гарантирует передачу данных от одного конца к другому.

Сессионный уровень

Сессионный уровень выполняет следующие функции -

  • Управляет сообщениями и синхронизирует разговоры между двумя разными приложениями.

  • Он контролирует вход и выход, идентификацию пользователя, биллинг и управление сеансами.

Слой презентации

Уровень презентации выполняет следующие функции -

  • Этот уровень гарантирует, что информация доставляется в такой форме, чтобы принимающая система понимала и использовала ее.

Уровень приложения

Уровень приложения выполняет следующие функции -

  • Он предоставляет различные услуги, такие как манипулирование информацией несколькими способами, повторная передача файлов с информацией, распространение результатов и т. Д.

  • Такие функции, как LOGIN или проверка пароля, также выполняются на уровне приложений.

Модель TCP / IP

Модель протокола управления передачей и Интернет-протокола (TCP / IP) - это практическая модель, которая используется в Интернете.

Модель TCP / IP объединяет два уровня (физический уровень и уровень канала передачи данных) в один уровень - уровень хост-сеть. На следующей диаграмме показаны различные уровни модели TCP / IP -

Уровень приложения

Этот уровень такой же, как и в модели OSI, и выполняет следующие функции:

  • Он предоставляет различные услуги, такие как манипулирование информацией несколькими способами, повторная передача файлов с информацией, распространение результатов и т. Д.

  • Уровень приложения также выполняет такие функции, как ВХОД или проверка пароля.

  • Ниже приведены различные протоколы, используемые на уровне приложений.

    • TELNET
    • FTP
    • SMTP
    • DN
    • HTTP
    • NNTP

Транспортный уровень

Он выполняет те же функции, что и транспортный уровень в модели OSI. Обратите внимание на следующие важные моменты, связанные с транспортным уровнем:

  • Он использует протоколы TCP и UDP для сквозной передачи.

  • TCP - надежный протокол, ориентированный на соединение.

  • TCP также управляет потоком данных.

  • UDP не является надежным, а протокол без установления соединения не выполняет управление потоком.

  • На этом уровне используются протоколы TCP / IP и UDP.

Интернет-уровень

Функция этого уровня состоит в том, чтобы позволить хосту вставлять пакеты в сеть, а затем заставлять их независимо перемещаться к месту назначения. Однако порядок получения пакетов может отличаться от последовательности, в которой они были отправлены.

Интернет-протокол (IP) используется на Интернет-уровне.

Уровень от хоста к сети

Это самый нижний уровень в модели TCP / IP. Хост должен подключаться к сети с использованием некоторого протокола, чтобы он мог отправлять IP-пакеты по нему. Этот протокол варьируется от хоста к хосту и от сети к сети.

На этом уровне используются различные протоколы:

  • ARPANET
  • SATNET
  • LAN
  • Пакетное радио

Полезная архитектура

Ниже приведены некоторые полезные архитектуры, которые используются в сетевой связи.

Архитектура кадра Ethernet

Инженер по имени Роберт Меткалф впервые изобрел сеть Ethernet, определенную в соответствии со стандартом IEEE 802.3, в 1973 году. Впервые она была использована для соединения и передачи данных между рабочей станцией и принтером. Более 80% локальных сетей используют стандарт Ethernet из-за его скорости, более низкой стоимости и простоты установки. С другой стороны, если мы говорим о кадре, то данные по пути передаются от хоста к хосту. Кадр состоит из различных компонентов, таких как MAC-адрес, IP-заголовок, начальный и конечный разделители и т. Д.

Кадр Ethernet начинается с преамбулы и SFD. Заголовок Ethernet содержит MAC-адреса источника и назначения, после которых присутствует полезная нагрузка кадра. Последнее поле - CRC, которое используется для обнаружения ошибки. Базовая структура кадра Ethernet определена в стандарте IEEE 802.3, который поясняется ниже:

Формат кадра Ethernet (IEEE 802.3)

Пакет Ethernet транспортирует кадр Ethernet в качестве полезной нагрузки. Ниже приводится графическое представление кадра Ethernet вместе с описанием каждого поля.

Имя поля Преамбула SFD (начало разделителя кадра) MAC-адрес назначения Исходный MAC Тип Данные CRC
Размер (в байтах) 7 1 6 6 2 46-1500 4

Преамбула

Фрейму Ethernet предшествует преамбула размером 7 байт, которая информирует принимающую систему о начале фрейма и позволяет отправителю, а также получателю установить битовую синхронизацию.

SFD (начало разделителя кадра)

Это 1-байтовое поле, используемое для обозначения того, что поле MAC-адреса назначения начинается со следующего байта. Иногда поле SFD считается частью преамбулы. Вот почему преамбула во многих местах считается 8-байтовой.

  • Destination MAC - Это 6-байтовое поле, в котором у нас есть адрес принимающей системы.

  • Source MAC - Это 6-байтовое поле, в котором у нас есть адрес отправляющей системы.

  • Type- Он определяет тип протокола внутри кадра. Например, IPv4 или IPv6. Его размер составляет 2 байта.

  • Data- Это также называется полезной нагрузкой, и сюда вставляются фактические данные. Его длина должна быть от 46 до 1500 байт. Если длина меньше 46 байтов, то добавляется заполнение нулями, чтобы соответствовать минимально возможной длине, то есть 46.

  • CRC (Cyclic Redundancy Check) - Это 4-байтовое поле, содержащее 32-битную CRC, что позволяет обнаруживать поврежденные данные.

Формат расширенного кадра Ethernet (кадр Ethernet II)

Ниже приведено графическое представление расширенного кадра Ethernet, с помощью которого мы можем получить полезную нагрузку размером более 1500 байт.

Имя поля MAC-адрес назначения Исходный MAC Тип DSAP SSAP Ctrl Данные CRC
Размер (в байтах) 6 6 2 1 1 1 > 46 4

Описание полей, которые отличаются от кадра Ethernet IEEE 802.3, выглядит следующим образом:

DSAP (конечная точка доступа к услуге)

DSAP - это поле длиной 1 байт, которое представляет логические адреса объекта сетевого уровня, предназначенного для получения сообщения.

SSAP (исходная точка доступа к сервису)

SSAP - это поле длиной 1 байт, которое представляет логический адрес объекта сетевого уровня, создавшего сообщение.

Ctrl

Это 1-байтовое поле управления.

Архитектура IP-пакетов

Интернет-протокол - один из основных протоколов в наборе протоколов TCP / IP. Этот протокол работает на сетевом уровне модели OSI и на интернет-уровне модели TCP / IP. Таким образом, этот протокол отвечает за идентификацию хостов на основе их логических адресов и за маршрутизацию данных между ними по базовой сети. IP обеспечивает механизм однозначной идентификации хостов по схеме IP-адресации. IP использует доставку с максимальной эффективностью, т. Е. Не гарантирует, что пакеты будут доставлены на назначенный хост, но сделает все возможное, чтобы достичь места назначения.

В наших последующих разделах мы узнаем о двух разных версиях IP.

IPv4

Это Интернет-протокол версии 4, в котором используется 32-битный логический адрес. Ниже приведена диаграмма заголовка IPv4 вместе с описанием полей.

Версия

Это версия используемого Интернет-протокола; например IPv4.

МГП

Длина заголовка Интернета; длина всего IP-заголовка.

DSCP

Кодовый пункт дифференцированных услуг; это Тип обслуживания.

ECN

Явное уведомление о перегрузке; он несет информацию о заторах, замеченных на маршруте.

Общая длина

Длина всего IP-пакета (включая IP-заголовок и полезную нагрузку IP).

Идентификация

Если IP-пакет фрагментирован во время передачи, все фрагменты содержат один и тот же идентификационный номер.

Флаги

В соответствии с требованиями сетевых ресурсов, если IP-пакет слишком велик для обработки, эти «флаги» сообщают, могут ли они быть фрагментированы или нет. В этом 3-битном флаге старший бит всегда установлен в «0».

Смещение фрагмента

Это смещение сообщает точное положение фрагмента в исходном IP-пакете.

Время жить

Чтобы избежать зацикливания в сети, каждый пакет отправляется с некоторым установленным значением TTL, которое сообщает сети, сколько маршрутизаторов (переходов) может пересечь этот пакет. На каждом шаге его значение уменьшается на единицу, и когда значение достигает нуля, пакет отбрасывается.

Протокол

Сообщает сетевому уровню на хосте назначения, какому протоколу принадлежит этот пакет, т. Е. Протоколу следующего уровня. Например, номер протокола ICMP - 1, TCP - 6, а UDP - 17.

Контрольная сумма заголовка

Это поле используется для хранения значения контрольной суммы всего заголовка, которое затем используется для проверки того, получен ли пакет без ошибок.

Адрес источника

32-битный адрес отправителя (или источника) пакета.

Адрес назначения

32-битный адрес Получателя (или места назначения) пакета.

Параметры

Это необязательное поле, которое используется, если значение IHL больше 5. Эти параметры могут содержать значения для таких параметров, как Безопасность, Маршрут записи, Отметка времени и т. Д.

Если вы хотите подробно изучить IPv4, перейдите по этой ссылке - www.tutorialspoint.com/ipv4/index.htm

IPv6

Интернет-протокол версии 6 является самым последним протоколом связи, который, как и его предшественник IPv4, работает на сетевом уровне (уровень-3). Наряду с огромным объемом логического адресного пространства, этот протокол имеет множество функций, устраняющих недостатки IPv4. Ниже приведена диаграмма заголовка IPv4 вместе с описанием полей.

Версия (4 бита)

Он представляет собой версию Интернет-протокола - 0110.

Класс трафика (8 бит)

Эти 8 бит разделены на две части. Старшие 6 битов используются для типа обслуживания, чтобы маршрутизатор знал, какие услуги должны быть предоставлены этому пакету. Два младших бита используются для явного уведомления о перегрузке (ECN).

Этикетка потока (20 бит)

Эта метка используется для поддержания последовательного потока пакетов, принадлежащих связи. Источник маркирует последовательность, чтобы помочь маршрутизатору определить, что конкретный пакет принадлежит определенному потоку информации. Это поле помогает избежать изменения порядка пакетов данных. Он предназначен для потоковой передачи мультимедиа в реальном времени.

Длина полезной нагрузки (16 бит)

Это поле используется, чтобы сообщить маршрутизаторам, сколько информации содержит конкретный пакет в своей полезной нагрузке. Полезная нагрузка состоит из заголовков расширений и данных верхнего уровня. С 16 битами можно указать до 65535 байт; но если заголовки расширений содержат заголовок расширения "шаг за шагом", то полезная нагрузка может превышать 65535 байт, и это поле установлено в 0.

Следующий заголовок (8 бит)

Либо это поле используется для указания типа заголовка расширения, либо, если заголовок расширения отсутствует, он указывает PDU верхнего уровня. Значения для типа PDU верхнего уровня такие же, как у IPv4.

Предел скачка (8 бит)

Это поле используется для остановки бесконечного цикла пакета в сети. То же, что и TTL в IPv4. Значение поля Hop Limit уменьшается на 1 при прохождении ссылки (маршрутизатор / переход). Когда поле достигает 0, пакет отбрасывается.

Исходный адрес (128 бит)

В этом поле указывается адрес отправителя пакета.

Адрес назначения (128 бит)

В этом поле указан адрес предполагаемого получателя пакета.

Если вы хотите подробно изучить IPv6, перейдите по этой ссылке - www.tutorialspoint.com/ipv6/index.htm

Архитектура заголовка TCP (протокол управления передачей)

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

Step 1 − Packet with SYN flag set

Прежде всего, система, которая пытается инициировать соединение, запускается с пакета, для которого установлен флаг SYN.

Step 2 − Packet with SYN-ACK flag set

Теперь, на этом этапе целевая система возвращает пакет с установленными флагами SYN и ACK.

Step 3 − Packet with ACK flag set

Наконец, инициирующая система вернет пакет исходной целевой системе с установленным флагом ACK.

Ниже приведена диаграмма заголовка TCP вместе с описанием полей -

Исходный порт (16 бит)

Он определяет исходный порт процесса приложения на отправляющем устройстве.

Порт назначения (16 бит)

Он определяет порт назначения процесса приложения на принимающем устройстве.

Порядковый номер (32 бита)

Порядковый номер байтов данных сегмента в сеансе.

Номер подтверждения (32 бита)

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

Смещение данных (4 бита)

Это поле подразумевает как размер заголовка TCP (32-битные слова), так и смещение данных в текущем пакете во всем сегменте TCP.

Зарезервировано (3 бита)

Зарезервировано для использования в будущем и по умолчанию установлено на ноль.

Флаги (1 бит каждый)

  • NS - Процесс сигнализации явного уведомления о перегрузке использует этот бит суммы nonce.

  • CWR - Когда хост получает пакет с установленным битом ECE, он устанавливает «Окна перегрузки» «Уменьшена», чтобы подтвердить получение ECE.

  • ECE - Имеет два значения -

    • Если бит SYN установлен в 0, то ECE означает, что в IP-пакете установлен бит CE (перегрузка).

    • Если бит SYN установлен в 1, ECE означает, что устройство поддерживает ECT.

  • URG - Это указывает на то, что поле Urgent Pointer содержит важные данные и должно быть обработано.

  • ACK- Это означает, что поле подтверждения имеет значение. Если ACK сброшен в 0, это означает, что пакет не содержит подтверждения.

  • PSH - Когда установлено, это запрос к принимающей станции на PUSH-данные (как только они поступают) в принимающее приложение без их буферизации.

  • RST - Флаг сброса имеет следующие особенности -

    • Используется для отказа от входящего соединения.

    • Используется для отклонения сегмента.

    • Он используется для перезапуска соединения.

  • SYN - Этот флаг используется для установки соединения между хостами.

  • FIN- Этот флаг используется для освобождения соединения, и после этого обмен данными больше не производится. Поскольку пакеты с флагами SYN и FIN имеют порядковые номера, они обрабатываются в правильном порядке.

Размер окна

Это поле используется для управления потоком между двумя станциями и указывает объем буфера (в байтах), который приемник выделил для сегмента, т. Е. Сколько данных ожидает приемник.

  • Checksum - Это поле содержит контрольную сумму заголовка, данных и псевдозаголовков.

  • Urgent Pointer - Указывает на байт срочных данных, если флаг URG установлен в 1.

  • Options- Это облегчает дополнительные опции, которые не охватываются обычным заголовком. Поле опции всегда описывается 32-битными словами. Если это поле содержит данные менее 32-битных, используется заполнение, чтобы закрыть оставшиеся биты для достижения 32-битной границы.

Если вы хотите подробно изучить TCP, перейдите по этой ссылке - https://www.tutorialspoint.com/data_communication_computer_network/transmission_control_protocol.htm

Архитектура заголовка UDP (User Datagram Protocol)

UDP - это простой протокол без установления соединения, в отличие от TCP, ориентированного на установление соединения. Это требует минимального количества коммуникационного механизма. В UDP получатель не генерирует подтверждение приема пакета, и, в свою очередь, отправитель не ожидает подтверждения отправленного пакета. Этот недостаток делает этот протокол ненадежным, а также упрощает обработку. Ниже приведена диаграмма заголовка UDP вместе с описанием полей -

Исходный порт

Эта 16-битная информация используется для идентификации порта источника пакета.

Порт назначения

Эта 16-битная информация используется для идентификации службы уровня приложения на конечном компьютере.

Длина

Поле длины указывает полную длину пакета UDP (включая заголовок). Это 16-битное поле, минимальное значение - 8 байт, то есть размер самого заголовка UDP.

Контрольная сумма

В этом поле хранится значение контрольной суммы, созданное отправителем перед отправкой. IPv4 имеет это поле как необязательное, поэтому, когда поле контрольной суммы не содержит никакого значения, оно устанавливается в 0 и все его биты устанавливаются в ноль.

Чтобы подробно изучить TCP, перейдите по этой ссылке - Протокол дейтаграмм пользователя.