Учебники

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

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

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

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

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

Модель OSI

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

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

Модель OSI

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

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

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

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

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

  • Решение, является ли соединение симплексным, полудуплексным или дуплексным.

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

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

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

Решение, является ли соединение симплексным, полудуплексным или дуплексным.

Канальный уровень

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Сеансовый слой

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

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

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

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

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

Уровень представления

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

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

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

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

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

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

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

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

Такие функции, как вход в систему или проверка пароля, также выполняются прикладным уровнем.

Модель TCP / IP

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

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

Модель TCP / IP

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

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

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

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

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

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

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

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

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

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

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

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

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

  • TCP также обрабатывает управление потоком.

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

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

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

TCP является надежным и ориентированным на соединение протоколом.

TCP также обрабатывает управление потоком.

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

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

Интернет-слой

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

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

Уровень хост-сеть

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

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

  • ARPANET
  • SATNET
  • ЛВС
  • Пакетное радио

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

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

Архитектура фрейма 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 (начало разделителя кадров)

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

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

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

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

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

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

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

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

Тип – определяет тип протокола внутри фрейма. Например, IPv4 или IPv6. Его размер составляет 2 байта.

Данные – это также называется полезной нагрузкой, и здесь вставляются фактические данные. Его длина должна быть между 46-1500 байтами. Если длина меньше 46 байтов, то добавляется 0 для соответствия минимально возможной длине, то есть 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

Версия

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

МГП

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

DSCP

Код дифференцированной услуги; это тип услуги.

ECN

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

Общая длина

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

Удостоверение личности

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

Флаги

В соответствии с требованиями сетевых ресурсов, если IP-пакет слишком велик для обработки, эти «флаги» сообщают, могут ли они быть фрагментированы или нет. В этом 3-битном флаге MSB всегда установлен в «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 вместе с описанием полей:

IPv6

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

Представляет версию интернет-протокола – 0110.

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

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

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

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

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

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

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

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

Предел прыжка (8 бит)

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

Адрес источника (128 бит)

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

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

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

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

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

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

Шаг 1 – Пакет с установленным флагом SYN

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

Шаг 2 – Пакет с установленным флагом SYN-ACK

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

Шаг 3 – Пакет с установленным флагом ACK

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

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

Пакет TCP с установленным флагом ACK

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

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

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

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

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

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

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

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

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

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

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

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

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

  • NS – явный процесс сигнализации уведомления о перегрузке использует этот бит Nonce Sum.

  • CWR – когда хост принимает пакет с установленным битом ECE, он устанавливает Windows переполнения, уменьшенный, чтобы подтвердить, что ECE получено.

  • ЕЭК – имеет два значения –

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

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

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

  • ACK – указывает, что поле подтверждения имеет значение. Если ACK очищен до 0, это указывает, что пакет не содержит никакого подтверждения.

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

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

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

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

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

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

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

NS – явный процесс сигнализации уведомления о перегрузке использует этот бит Nonce Sum.

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

ЕЭК – имеет два значения –

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

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

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

ACK – указывает, что поле подтверждения имеет значение. Если ACK очищен до 0, это указывает, что пакет не содержит никакого подтверждения.

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

RST – флаг сброса имеет следующие особенности –

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

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

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

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

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

Размер Windows

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

  • Контрольная сумма – это поле содержит контрольную сумму заголовка, данных и псевдо заголовков.

  • Срочный указатель – указывает на байт срочных данных, если флаг URG установлен в 1.

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

Контрольная сумма – это поле содержит контрольную сумму заголовка, данных и псевдо заголовков.

Срочный указатель – указывает на байт срочных данных, если флаг URG установлен в 1.

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

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

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

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

UPD

Порт источника

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

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

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

длина

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

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

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

Чтобы подробно изучить TCP, перейдите по этой ссылке – https://www.tutorialspoint.com/data_communication_computer_network/user_datagram_protocol.htm