Основы понимания сетей для начинающего хакера. Часть 2. TCP/IP
Ну что, продолжим изучать работу сетей.
В прошлом уроке по этой теме мы уже обсудили что такой ip, dhcp, net. Если пропустил, он ЗДЕСЬ. А сегодня, давай, поговорим про протоколы. Ты ведь наверняка слышал или видел такое название как TCP/IP. И именно об этом мы сегодня будем разговаривать. Хочу заметить, что рассказать всё о TCP/IP в одном уроке невозможно физически, поэтому сегодня мы разберем основы, что это такое и как работает. Причем ты должен понимать, что именно эти знания лежат в основе искусства взлома, ну или теста на проникновение, называй как хочешь и именно эти знания дадут тебе возможность изучить и понять практически любую атаку, или придумать свою.
В интернете используется очень много разных протоколов, но наиболее распространенные это IP и TCP. Теперь, как я уже говорил, давай, рассмотрим их более подробно.
TCP — Transmission Control Protocol — это протокол управления передачей, а IP — межсетевой протокол, но прежде чем разбирать их, давай, для начала разберемся что такое вообще протокол. На самом деле всё просто, протокол — это всего навсего согласованный способ общения, как, допустим, английский язык в международном сообществе. Т.е. по сути, протокол определяет способ связи со всеми его правилами. А правила определяются RFC, это Request for Comments, что можно перевести как запрос на отзывы — это документ, который содержит технические спецификации и стандарты применяемые в интернете.
IP или интернет-протокол, он же межсетевой протокол — это протокол, который используется для определения IP-адреса источника и получателя пакета при прохождении через Интернет. Так как он часто используется в сочетании с другими протоколами, такими как TCP, поэтому мы и видим название TCP / IP.
Теперь давай посмотрим на header, т.е заголовок IP-пакета и разберемся, какая информация в нем содержится:
1 ряд
- version : определяет версию IP, v4 или v6.
- IHL : определяет длину заголовка.
- Type of Service (TOS) : определяет тип обслуживания этого пакета. К ним относятся минимизация задержки, максимизация пропускной способности, максимизация надежности и минимизация затрат.
- Total Length : определяет общую длину дейтаграммы IP (включая данные) или фрагмента. Его максимальное значение составляет 65 535.
2 ряд
- Identification : идентифицирует каждый пакет. Может иметь важное значение при повторной сборке фрагментированных пакетов.
- IP Flag: определяет, является ли пакет фрагментированным (M) или нет (D). Манипулирование этим полем может быть использовано для обхода межсетевых экранов.
- Fragment Offset : это поле используется, когда пакеты фрагментированы. Определяет, где пакеты должны быть повторно собраны.
3 ряд
- TTL : это «время жизни». Определяет, сколько прыжков до истечения срока действия пакета. Это зависит от операционной системы, что делает его полезным для определения ОС отправителя.
- Protocol : это поле определяет, какой протокол используется с IP. Чаще всего это 6 т.е. TCP, 1 это ICMP, 17 это UDP.
- Header checksum: это поле проверки ошибок, вычисляет контрольную сумму, чтобы определить целостность данных в заголовке.
4 и 5 ряд
- Source / Destination . Эти строки заголовка IP, пожалуй, наиболее важная часть заголовка, потому что они содержат IP-адрес источника и получателя.
6 ряд
- Options: Это поле переменной длины, и его использование не является обязательным
Теперь рассмотрим заголовок TCP пакета:
1 ряд
- Source Port / Destination Port : Это порт источника и порт назначения. Эти поля определяют, с какого порта пришло сообщение и куда оно идет.
Ряд 2
- Sequence Number: Порядковый номер, генерируется стеком TCP исходного компьютера и используется для обеспечения того, чтобы пакеты располагались в правильной последовательности при поступлении.
Ряд 3
- Acknowledgment Number : это эхо порядкового номера, отправленного обратно принимающей системой. Благодаря ему, отправитель знает, что пакет прибыл. Если отправитель не получает номер подтверждения обратно в фиксированный промежуток времени, он повторно отправит пакет, чтобы убедиться, что получатель получит пакет. Таким образом, TCP надежен (например, UDP не делает этого и поэтому ненадежен).
Ряд 4
- Data offset указывает значение длины заголовка, измеренное в 32-битовых словах
- CWR : Поле «Окно перегрузки уменьшено» — флаг установлен отправителем, чтобы указать, что получен пакет с установленным флагом ECE
- ECE : Поле «Эхо ECN» — указывает, что данный узел способен на ECN (явное уведомление перегрузки) и для указания отправителю о перегрузках в сети
Четвертый ряд содержит очень важную информацию, а именно флаги. Эти флаги используются TCP для связи;
- SYN : открытие нового соединения.
- FIN : нормальное, мягкое закрытие соединения.
- ACK : подтверждение пакета. У всех пакетов после трехстороннего рукопожатия должен быть установлен этот бит.
- RST : аппаратное закрытие соединения, которое обычно используется для сообщения о том, что пакет поступил не на тот порт или IP.
- URG : этот флаг указывает, что данные являются срочными.
- PSH : протолкнуть данные за буфер в приложение.
- Window Size : на некоторых диаграммах это просто описывается как поле окна . Его роль заключается в сообщении размера окна, которое стек TCP должен выполнять для буферизации пакетов. Именно так TCP управляет потоком. С точки зрения хакера, одного этого поля может быть достаточно для идентификации ОС, отправившей пакет.
Ряд 5
- Checksum : в этом поле используется простой алгоритм проверки на наличие ошибок. По сути, это проверка целостности.
- Urgent Pointer: в этом поле указывается последний байт порядкового номера срочных данных. Чтобы активировать это поле должен быть установлен флаг URG
Ряд 6
- Options: Как и заголовок IP, заголовок TCP имеет поле параметров, которое можно использовать при необходимости, и его длина варьируется.
- Padding: заполнение необходимо, чтобы заголовок TCP был кратным 32 битам.
Продолжение следует…..
YouTube: https://www.youtube.com/channel/UCojEUrPvEvkUXEU3QWwhCwg
Telgram: https://t.me/Pulsechanel