Arp a команда что делает
Перейти к содержимому

Arp a команда что делает

  • автор:

Изучаем инструменты для работы с ARP протоколом

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

ARP основные данные

Address Resolution Protocol (ARP) — протокол, который позволяет определить MAC адрес устройства по известному IP адресу, хотя можно используя протокол просто собрать все данные о подсети.

Протокол уже известен почти 40 лет! (Рассматриваем IPv4 версию) Описание протокола находится в RFC 826. У RFC было несколько апдейтов, которые касались различных частей протокола, вот некоторые их них:

RFC 5227 — рекомендации по устранению проблем с конфликтами адресов, если несколько устройств используют один и тот же IP адрес,

RFC 5494 — описание расширений, которые можно использовать для работы с различными протоколами. Среди них: HYPERChannel, DHCP options, ATM ARP, HARP, Dual Mac FDDI, MAPOS, FC, DNS DHCID,

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

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

Все хосты подсети получив запрос должны ответить, если запрашиваемые данные совпадают с их характеристиками (MAC или IP адрес).

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

Полученные данные должны быть сохранены в структуре — ARP таблице . В зависимости от имплементации эта таблица может обновляться, а может быть заполнена один раз и использоваться постоянно, пока устройство подключено к сети. Кстати, таблицу ARP во всех популярных операционных системах можно вывести командами:

Структура пакета, который используется для работы с протоколом:

Инструменты для взаимодействия и проведения атак

Разобьём набор инструментов для работы с протоколом на несколько классов:

Создание и манипуляция параметрами пакетов

Инструменты для проведения атак

Исследование данных

Собрать данные с RFC и теоритически представлять из чего состоит пакет это только половина дела, теперь нужно посмотреть на имплементацию, так как она иногда отличается. Для этого можно использовать инструменты, которые называют снифферами. Самые популярные из них:

Инструменты представляют собой интерфейс, который позволяет посмотреть конкретные данные, которые заполняют участники сети. Ниже приведен вариант разобранного пакета ARP, открытого в WireShark:

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

Создание и манипуляция параметрами пакетов

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

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

Пример созданного пакета в Scapy:

Попробуем сделать кастомный пакет и отправить в сеть, в качестве теста используется сеть 192.168.0.1/24, запрос будем отправлять для несуществующего устройства по адресу 192.168.0.111. Листинг мини приложения будет таким:

Для примера именно готового инструмента приведем nping — инструмент, который позволяет работать с различными протоколами, среди них есть ARP. Чтобы повторить запрос, который делали из Scapy, можно использовать вот такую команду:

Результат работы команды:

Инструменты для проведения атак

Как ни странно, хоть ARP один из самых простых протоколов, он является очень важным в проведении MiTM атак. Причем с помощью этого протокола происходит 90% задачи по перехвату трафика в сети, а уже оставшиеся 10% доделывают остальные инструменты и обработчики более высокоуровневых протоколов.

То есть для проведения ниже перечисленных атак, нужно, чтобы была произведена атака на протокол ARP, а уже далее отправлялись данные, которые приносят пользу от проведенной атаки. К атакам, которые используют ARP в качестве основы можно отнести:

DNSSpoofing (в локальной сети)

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

В ARP протоколе существует всего 2 вида запросов, это запрос, который ищет соответствие MAC и IP адреса и ответ на этот запрос.

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

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

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

(ПЕРЕД ТЕМ КАК НАЧАТЬ ТЕСТИРОВАТЬ РЕАЛЬНЫЕ СЕТИ: сразу пытаться обрабатывать большие сети больше /24 маски может быть проблематично). Чтобы подготовить машину, рекомендуется сделать небольшую настройку:

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

Как запускать инструменты для тестирования:

Scapy — пример скрипта, который может проводить атаки на DNS и ARP можно найти тут

Механизмы защиты

Защита от перенаправления трафика может быть реализована за счет нескольких инструментов:

Само оборудование, которое используется для построения сети. На сегодняшний день практически все устройства позволяют обнаруживать аномалии протокола ARP. Поэтому может быть проблематично редиректить трафик так как устройство просто отключит порт.

Использование стороннего софта, который мониторит трафик сети. Небольшой список таких инструментов можно найти в сети в огромном количестве. К примеру вот такой.

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

Статья подготовлена в рамках старта курса Network Security. Узнать о курсе подробнее и зарегистрироваться на бесплатный урок можно по ссылке ниже.

ARP — описание команды и примеры использования

ARP - описание команды и примеры использования

ARP — Отображает и изменяет вводимые данные в кэше протокола определения адреса ARP (Address Resolution Protocol). Отображает и изменяет вводимые данные в кэше протокола определения адреса ARP (Address Resolution Protocol). Кэш ARP содержит одну или несколько таблиц, которые используются для хранения IP-адресов и их соответствующих физических Ethernet или Token Ring адресов. Для каждого сетевого адаптера Ethernet или Token Ring на вашем компьютере существует отдельная таблица. Если используется без параметров, команда arp отображает справочную информацию.

Синтаксис

Параметры

Параметр Описание
/a [] [/n ] Отображает текущие таблицы кэшей ARP для всех интерфейсов. Параметр /n чувствителен к регистру.
Чтобы отобразить данные кэша ARP для определённого IP-адреса, arp/a следует использовать с параметром Inetaddr, где Inetaddr будет IP-адресом. Если параметр Inetaddr не будет указан, то будет использован первый применимый интерфейс.
Чтобы отобразить данные кэша ARP для определённого интерфейса, вместе с параметром /a следует использовать параметр ifaceaddr, указывающий IP-адрес, назначенный такому интерфейсу.
/g [] [/n ] Идентично /a.
/d [] Удаляет введённые данные по определённому IP-адресу. При этом параметр Inetaddr указывает соответствующий IP-адрес.
Чтобы удалить данные таблицы для определённого интерфейса, следует использовать параметр ifaceaddr, указывающий IP-адрес, назначенный такому интерфейсу.
Чтобы удалить все данные, вместо параметра Inetaddr следует использовать подстановочный знак (*).
/s [] Добавляет статические данные в кэш ARP, которые привязывают параметр IP-адреса Inetaddr к физическому адресу Etheraddr.
Чтобы добавить статические данные кэша ARP в таблицу по определённому интерфейсу, следует использовать параметр ifaceaddr, указывающий IP-адрес, назначенный такому интерфейсу.
/? Выводит справочную информацию в командной строке

Примечания

• IP-адреса для Inetaddr и ifaceaddr являются десятичными представлениями с точками.
• Физический адрес для Etheraddr состоит из шести байтов, выраженных шестнадцатеричным представлением и разделённых дефисами (например, 00-AA-00-4F-2A-9C).
• Вводимые данные, добавляемые с параметром /s,являются статическими и не убираются из кэша ARP по тайм-ауту. Вводимые данные удаляются только в случае остановки или запуска протокола TCP/IP. Чтобы создать постоянные данные кэша ARP, следует поместить соответствующие команды arp в командный файл и воспользоваться запланированными заданиями (Scheduled Tasks), чтобы командный файл активировался при запуске системы.

Примеры использования

Чтобы отобразить список таблиц кэша ARP для всех интерфейсов, необходимо ввести:

Чтобы отобразить список таблиц кэша ARP для всех интерфейсов, назначенных IP-адресу 10.0.0.99, необходимо ввести:

Чтобы добавить статические данные в кэш ARP, которые привязывают IP-адрес 10.0.0.80 к физическому адресу 00-AA-00-4F-2A-9C, необходимо ввести:

Команда Arp

Предназначается для организации вывода, а также дальнейшего изменения информации в кэше. Протокол включает в себя таблицы в количестве одной ил нескольких штук. Их задачей является записывание IP адресов и непосредственных физических типов адресов. Предполагается создание специальной таблицы для каждого всех сетевых адаптеров Ethernet и Token Ring, которые использованы на устройстве. Если выполнить запуск без каких-либо параметров, будет выдана справочная нформация.

Синтаксис

arp [-a [интернет_адрес] [-N адрес_интерфейса]] [-g [интернет_адрес] [-N адрес_интерфейса]] [-d интернет_адрес [адрес_интерфейса]] [-интернет_адрес е_адрес [адрес_интерфейса]]

Используемые параметры

-a [интернет_адрес] [-N адрес_интерфейса]

Предполагается необходимость выдать таблицы используемого на данный момент протокола ARP для полного списка интерфейсов. Если требуется получить информацию о конкретном IP адресе, следует вписать arp –a и следующие параметры интернет_адрес (нужный IP адрес). Для осуществления вывода таблиц с информацией для установленного интерфейса, указывается [-N адрес_интерфейса. Следует сказать о том, что N должен вводиться в заданном регистре.

-g [интернет_адрес] [-N адрес_интерфейса]

Особенности указанных значений и параметров полностью совпадают с вариантом -а.

-d интернет_адрес [адрес_интерфейса]

Позволяет удалить конкретную запись на основании указанного IP адреса. Если требуется осуществить одновременное удаление сразу всех записей, требуется только поставить символ звездочки (*) на место «интернет_адрес».

-интернет_адрес е_адрес [адрес_интерфейса]

Производит добавку статической записи. Её задачей считается сопоставление IP адреса (интернет_адрес) с используемым физическим адресом (е_адрес ).

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

Заметки

  • Для записи всех IP адресов требуется применять точечно-десятичный вариант.
  • Для физического адреса (е_адрес ) предполагается использование специальной формы записи. Он должен занимать 6 байт, а его запись осуществляется 16-тиричном формате.
  • Если запись обладает параметром S, то не предусматривается дальнейшего удаления из кэша компьютера. Подобные действия происходят в тех ситуациях, когда произошел запуск TCP/IP протоколов.
  • Допускается использовать ARP команду при установке особых свойств сетевого адаптера. Предполагается в сетевых подключениях задавать протокол TCP/IP.

Примеры использования команды

Достаточно ввести в командную строку arp –a и результатом станет вывод таблиц кэша для полного списка интерфейсов. Следует рассмотреть варианты для конкретных запросов. Для IP адреса 12.0.0.22 следует осуществлять ввод arp -a -N 12.0.0.22. Если нужно выполнить сопоставление физического адреса 11-BB-11-5A-FF-8C и указанного ранее IP адреса, производится ввод arp — 12.0.0.22 11-BB-11-5A-FF-8C.

MS-DOS and Windows command line arp command

The arp command displays, adds, and removes arp information from network devices.

Availability

Arp is an external command accessed through the C:\Windows or C:\Winnt\System32 directory, and is available for the following Microsoft operating systems as arp.exe.

Arp syntax

-a Displays current ARP entries by interrogating the current protocol data. If inet_addr is specified, the IP and physical addresses for only the specified computer are displayed. If more than one network interface uses ARP, entries for each ARP table are displayed.
-g Same as -a
inet_addr Specifies an Internet address.
-N if addr Displays the ARP entries for the network interface specified by if_addr.
-d Deletes the host specified by inet_addr.
-s Adds the host and associates the Internet address inet_addr with the physical address eth_addr. The physical address is given as 6 hexadecimal bytes separated by hyphens. It should be noted that the entry is permanent.
eth_addr Specifies a physical address.
if_addr If present, this command specifies the Internet address of the interface whose address translation table should be modified. If not present, the first applicable interface will be used.

Arp examples

The physical address or MAC address as shown above in the format aa-bb-cc-dd-ee-ff is the unique manufacturer identification number. This number should always be a unique address.

Above, is an example of how to change the above IP address 220.0.0.160 to 220.0.0.161.

If an IP address has already been assigned to the specific network adapter, it is not possible to change that assigned IP address to a new address. DHCP, BOOTP or RARP networks automatically assign the card an IP address. Therefore, this command would not be utilized.

Related information

  • See our ARP definition for further information and related links on this term.

Ezoic

report this ad

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *