Материал: Логико-лингвистические модели атак на компьютерные системы. Остапенко Г.А., Дмитриева Е.Ю

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Таблицу ARP можно посмотреть, используя команду arp в командной строке: >arp -a

ARP-таблица заполняется автоматически. Перед тем, как создать подключение к какому-либо устройству в сети, IP-протокол проверяет свою ARP-таблицу, чтобы выяснить, не зарегистрирована ли в нём уже нужная для подключения информация о хосте-получателе. Если такой записи в ARP-таблице нет, то выполняется широковещательный ARP-запрос (рисунок 4.2). Все сетевые интерфейсы получают этот запрос, но отвечает только владелец адреса (рисунок 4.3). При этом существует два способа отправки IP-пакета, для которого ищется адрес: пакет ставится в очередь на отправку или уничтожается. В первом случае за отправку отвечает модуль ARP, а во втором случае модуль IP, который повторяет посылку через некоторое время [6].

Если искомого IP-адреса нет в локальной сети и сеть не соединена с другой сетью шлюзом, то разрешить запрос не удается. IP-модуль будет уничтожать такие пакеты, обычно по time-out (превышен лимит времени на разрешение запроса).

Записи в ARP-кеше могут быть статическими и динамическими. Пример, данный выше, описывает динамическую запись кеша. Хост-отправитель автоматически послал запрос получателю, не уведомляя при этом пользователя. Записи в ARP-кеш можно добавлять вручную, создавая статические записи кеша. Это можно сделать при помощи команды: arp -s <IP адрес> <MAC адрес>

Например:

Интерфейс: 10.137.0.30 --- 0x10003

Адрес IP Физический адрес Тип

10.137.0.120 00-0f-ea-65-f9-c8 статический

10.137.0.177 00-80-48-45-a8-ba динамический

Структура пакета. В сетях Ethernet пакеты используют EtherType 0x0806, и рассылаются широковещательно MAC-адрес - FF:FF:FF:FF:FF:FF. Отметим, что в структуре пакета, показанной ниже (таблица 4.2) в качестве SHA, SPA, THA, & TPA условно используются 32-битные слова — реальная длина определяется физическим устройством и протоколом.

Таблица 4.2. Структура ARP-пакета

+

Bits 0 - 7

8 - 15

16 - 31

0

Hardware type (HTYPE)

Protocol type (PTYPE)

32

Hardware length (HLEN)

Protocol length (PLEN)

Operation (OPER)

64

Sender hardware address (SHA)

 ?

Sender protocol address (SPA)

 ?

Target hardware address (THA)

 ?

Target protocol address (TPA)

Hardware type (HTYPE) - каждый транспортный протокол передачи данных имеет свой номер, который хранится в этом поле. Например, Ethernet имеет номер 1.

Protocol type (PTYPE) - код протокола. Например, для IPv4 будет записано 0x0800.

Hardware length (HLEN) - длина физического адреса в байтах. Ethernet адреса имеют длину 6 байт.

Protocol length (PLEN) - длина логического адреса в байтах. IPv4 адреса имеют длину 4 байта.

Operation - код операции отправителя: 1 в случае запроса и 2 в случае ответа.

Sender hardware address (SHA) - физический адрес отправителя.

Sender protocol address (SPA) - логический адрес отправителя.

Target hardware address (THA) - физический адрес получателя. Поле пусто при запросе.

Target protocol address (TPA) - логический адрес получателя.

Пример запроса. Если хост с IPv4 адресом 10.137.0.123 и MAC адресом 00:09:58:D8:11:22 хочет послать пакет другому хосту с адресом 10.137.0.140, но не знает его MAC адрес, то он должен послать ARP запрос для разрешения адреса.

Пакет, изображенный ниже (таблица 4.3), изображает широковещательный запрос. Если хост с IP 10.137.0.140 присутствует в сети и доступен, то он получает этот ARP-запрос и возвращает ответ.

Таблица 4.3. ARP-запрос

+

Bits 0 - 7

8 - 15

16 - 31

0

Hardware type = 1

Protocol type = 0x0800

32

Hardware length = 6

Protocol length = 4

Operation = 1

64

SHA (first 32 bits) = 0x000958D8

96

SHA (last 16 bits) = 0x1122

SPA (first 16 bits) = x0A0A

128

SPA (last 16 bits) =0x0A7B

THA (first 16 bits) =0x0000

160

THA (last 32 bits) = 0x00000000

192

TPA = 0x0A0A0A8C

Пример ответа. По сценарию, описанному выше, если хост с адресом 10.137.0.140 имеет MAC адрес 00:09:58:D8:33:AA, то он пошлет в ответ пакет, проиллюстрированный ниже (таблица 4.4). Заметим, что блоки адресов отправителя и получателя теперь поменяли значения (отправитель ответа теперь получатель запроса; получатель ответа - отправитель запроса). Кроме того, хост 10.137.0.140 заполнил свой MAC адрес в поле физического адреса отправителя.

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

Таблица 4.4. ARP-ответ

+

Bits 0 - 7

8 - 15

16 - 31

0

Hardware type = 1

Protocol type = 0x0800

32

Hardware length = 6

Protocol length = 4

Operation = 2

64

SHA (first 32 bits) = 0x000958D8

96

SHA (last 16 bits) = 0x33AA

SPA (first 16 bits) = 0x0A0A

128

SPA (last 16 bits) = 0x0A8C

THA (first 16 bits) = 0x0009

160

THA (last 32 bits) = 0x58D81122

192

TPA = 0x0A0A0A7B

ARP оповещение. ARP Announcement - это пакет (обычно ARP запрос) содержащий корректную SHA и SPA хоста-отправителя, с TPA равной SPA. Это не разрешающий запрос, а запрос на обновление ARP-кеша других хостов, получающих пакет.

Большинство операционных систем посылают такой пакет при включении хоста в сеть, это позволяет предотвратить ряд проблем. Например, при смене сетевой карты (когда необходимо обновить связь между IP и MAC адресами), такой запрос исправит записи в ARP-кеше других хостов в сети.

Протокол ARP является абсолютно незащищённым. Он не обладает никакими способами проверки подлинности пакетов: как запросов, так и ответов. Ситуация становится ещё более сложной, когда может использоваться самопроизвольный ARP (gratuitous ARP).

Самопроизвольный ARP - такое поведение ARP, когда ARP-ответ присылается, когда в этом (с точки зрения получателя) нет особой необходимости. Самопроизвольный ARP-ответ это пакет-ответ ARP, присланный без запроса. Он применяется для определения конфликтов IP-адресов в сети: как только станция получает адрес по DHCP или адрес присваивается вручную, рассылается ARP-ответ gratuitous ARP.

Самопроизвольный ARP может быть полезен в следующих случаях:

  • обновление ARP-таблиц, в частности, в кластерных системах;

  • информирование коммутаторов;

  • извещение о включении сетевого интерфейса.

Несмотря на эффективность самопроизвольного ARP [35], он является особенно небезопасным, поскольку с его помощью можно уверить удалённый узел в том, что MAC-адрес какой-либо системы, находящейся с ней в одной сети, изменился и указать, какой адрес используется теперь.

4.2.1.2 Техника выполнения arp-spoofing

До выполнения атаки в ARP-таблице хостов 1 и 2 существуют записи с IP- и MAC-адресами друг друга. Обмен информацией производится непосредственно между узлами 1 и 2 (рисунок 4.4). В ходе выполнения атаки, нарушитель отправляет ARP-ответы узлам сети на которые будет производиться атака (рисунок 4.5 и рисунок 4.6).

Таким образом после получения хостами указанных пакетов, в ARP-таблицах появятся следующие элементы:

хост1: IP2:MAC3

хост2: IP1:MAC3

Вследствие этого первый хост все пакеты, предназначенные для второго хоста будет направлять по MAC-адресу MAC3 (атакующему хосту) [8], тоже самое будет делать и второй хост с пакетами для первого (рисунок 4.7).

Рисунок 4.4 - Нормальное функционирование сети

Рисунок 4.5 - Отправка ложного ARP-ответа хосту

Рисунок 4.6 - Отправка ложного ARP-ответа серверу

Рисунок 4.7 - Функционирование сети во время атаки

Теперь атакующему хосту необходимо «слушать» весь траффик и следующим образом обрабатывать такие пакеты:

- получив (Ethernet) пакет с MAC1->MAC3(IP1->IP2) сменить в этом пакете MAC3->MAC2(IP1->IP2) и отправить пакет;

- получив (Ethernet) пакет с MAC2->MAC3(IP2->IP1) сменить в этом пакете MAC3->MAC1(IP2->IP1) и отправить пакет.

Кроме того, необходимо периодически посылать ложные ARP-ответы хостам - для чтобы созданные записи в ARP-таблице не «устаревали» [24].

Программная реализация ARP-spoofinga. Для выполнения ARP-spoofing’а была использована программа под windows - ettercapNG. Это сетевой сниффер с большим количеством модулей, в том числе и для осуществления отравления ARP-таблиц атакуемых хостов сети. Запускаем консольный вариант программы. И входим в Ettercap –help:

C:\Program Files\EttercapNG>ettercap --help

ettercap NG-0.7.3 copyright 2001-2004 ALoR & NaGA

Usage: ettercap [OPTIONS] [TARGET1] [TARGET2]

TARGET is in the format MAC/IPs/PORTs (see the man for further detail)

Sniffing and Attack options:

-M, --mitm <METHOD:ARGS> perform a mitm attack

-o, --only-mitm don't sniff, only perform the mitm attack

-B, --bridge <IFACE> use bridged sniff (needs 2 ifaces)

-p, --nopromisc do not put the iface in promisc mode

-u, --unoffensive do not forward packets

-r, --read <file> read data from pcapfile <file>

-f, --pcapfilter <string> set the pcap filter <string>

-R, --reversed use reversed TARGET matching

-t, --proto <proto> sniff only this proto (default is all)

User Interface Type:

-T, --text use text only GUI

-q, --quiet do not display packet contents

-s, --script <CMD> issue these commands to the GUI

-C, --curses use curses GUI

Источник: https://studfile.net/preview/16563007/