Основы работы сетей для начинающего хакера. IP, DHCP, NAT, port. TCP/IP

Spread the love

Если ты хочешь стать хакером, пентестером или просто системным администратором, то понимать как работает сеть, это как выучить алфавит, чтоб научиться писать. Именно поэтому я решил сделать серию уроков на эту тему, и сегодня я постараюсь максимально просто и понятно объяснить базовые основы работы компьютерных сетей.

IP-address

Internet Protocol Address — уникальный сетевой адрес узла в компьютерной сети. По сути, чтоб тебе было понятней это твой домашний адрес. Каждому цифровому устройству (компьютеру, ноутбуку, телефону, планшету и т.д.) назначается IP-адрес, без этого адреса невозможно найти устройство и обратиться к нему.

Существует две системы ip адресов: IPv4 и IPv6 (IPv6 мы разберем в другом уроке, чтобы не распыляться) а сегодня IPv4.

В 4 версии IP адрес представляет собой 32-х битовое число, однако видим мы его в десятичном представлении, так банально удобней, а если быть точнее IP состоит из 4 групп по 8 битов каждая, разделенных точками, каждая группа может представлять числа в диапазоне от 0 до 255.

IP-адреса обычно делятся на три класса, каждому из которых соответствует свой диапазон:

  • Класс А : 0.0.0.0 — 127.255.255.255
  • Класс B : 128.0.0.0 — 191.255.255.255
  • Класс C : 192.0.0.0 — 223.255.255.255

в одном из следующих уроков мы рассмотрим подсети и маски подсетей которые отличаются в зависимости от класса ip адреса

Публичные и частные IP-адреса

Система ip адресов имеет свои ограничения и самое основное из них связано с тем что адресов банально не хватает для всех устройств. Система IPv4, имеет только 4,3 миллиарда IP-адресов. А людей на планете более 7 миллиардов, а устройств еще больше и постоянно появляются новые. В результате, что бы решить эту проблему, была разработана система для повторного использования группы IP-адресов, которые будут использоваться в локальной сети, и которые нельзя будет использовать в сети Интернет. Эти адреса можно использовать снова и снова в каждой локальной сети.

Эти частные адреса включают в себя диапазоны ip-адресов:

192.168.0.0 — 192.168.255.255

10.0.0.0 — 10.255.255.255

172.16-.0.0 — 172.16.255.255

если ты наберешь в командной строке ipconfig (для linux это ifconfig) то сможешь узнать свой частный ip. При этом если тебе нужно узнать ip адрес сайта, т.е. доменного имени, нужно написать nslookup и адрес сайта

Для связи через Интернет его необходимо преобразовать в общедоступный IP-адрес с помощью устройства NAT, к этому мы ещё вернемся

DHCP

(англ. Dynamic Host Configuration Protocol — протокол динамической настройки узла)

Отвечает за динамическое назначает IP-адреса. Это означает, что у тебя не один и тот же IP-адрес все время. Как правило эти назначения IP-адресов происходят в локальной сети. Когда устройство подключено к локальной сети, оно должно запросить IP-адрес. Это устройство отправляет запрос на сервер DHCP, который затем назначает IP-адрес этой системе на фиксированный период времени, это период времени называется «аренда».

NAT

(Network Address Translation — «преобразование сетевых адресов») — это механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса транзитных пакетов. Что это означает?

Другими словами, это протокол, посредством которого внутренние частные IP-адреса «транслируются» на внешний общедоступный IP-адрес, который можно направить через Интернет к пункту назначения.

Устройство NAT принимает запросы с внутренней машины. Затем оно записывает IP-адрес этого устройства в таблицу и преобразует IP-адрес во внешний IP-адрес маршрутизатора. Когда пакет возвращается из пункта назначения, устройство NAT просматривает свою сохраненную таблицу исходных запросов и перенаправляет пакет на внутренний IP-адрес системы, которая сделала исходный запрос в локальной сети. При правильной работе пользователи не видят весь этот процесс, а многие и не знают что он вообще существует.

Порты

Порты это своего рода подадрес, если ip — это название улицы и номер дома, то порт — это номер квартиры.Точно также ip адрес приводит нас к нужному компьютеру, а порт к нужной службе.

Всего существует 65 535 портов. Первые 1024 из них обычно называют общие порты. Врядли ты сможешь запомнить их все, да и нет в этом особой необходимости, но толковый системный администратор (или хакер должен знать основные):

  • 20 FTP
  • 21 FTP
  • 22 SSH
  • 23 Telnet
  • 25 SMTP
  • 53 DNS
  • 69 TFTP
  • 80 HTTP
  • 88 Kerberos
  • 110 POP3
  • 123 NTP
  • 135 Microsoft’s RPC
  • 137-139 Microsoft’s NetBIOS
  • 143 IMAP
  • 161 SNMP
  • 389 LDAP
  • 443 HTTPS or HTTP over SSL
  • 445 SMB
  • 500 IKE
  • 514 syslog
  • 3389 RDP

Теперь немного о применяемых терминах относительно портов:

Если процесс постоянно использует один номер порта, то такой порт называют «открытым», примером может быть если вэб-сервер использует 80 порт для приема-передачи данных, то соответственно 80 порт считается открытым

Если процесс получил номер порта у ОС («открыл порт») и «держит его открытым» для приёма и передачи данных, это называется «прослушивание» порта.

Ты ведь наверняка слышал или видел такое название как 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 битам.

Добавить комментарий

WP2Social Auto Publish Powered By : XYZScripts.com