Материал просмотрен 5,059 раз(а)

Пришла пора нам разобраться, как выглядит ARP-трафик под микроскопом, имя которому Wireshark. Будучи пакетным сниффером и фильтром, Шарк предоставляет огромные возможности для изучения сетевых протоколов и всего, что происходит “по ту сторону”. Понемногу мы и ликвидируем белые пятна и начинаем лучше разбираться в сетях.

Несмотря на то, что Wireshark можно использовать в различных целях, не всегда благочестивых, мы будем закрывать глаза на “тёмную” сторону, используя этот инструмент только в образовательных целях.

Итак, ARP-протокол. Иначе говоря Adress Resolution Protocol – протокол разрешения адреса.

Немного расскажу о том, для чего предназначен этот протокол.

Передавать фреймы в сети Ethernet можно используя аппаратные (далее MAC) адреса. То есть это не сетевой (IP) адрес вида 192.168.0.1, а нечто более сложное, вида 00:00:00:c1:d9:26.

Существует так же соглашение, по которому первые три байта отводятся под производителя сетевого оборудования, а следующие три байта – под уникальный идентификатор устройства. Такой адрес имеют все сетевые устройства, разработанные для сети Ethernet.

Кстати, загадка. Что имеет порт RJ45, но не имеет MAC-адреса?

ответ: обжимка (патч-панель)

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

ARP

ARP

Who has <IP-addr>? Tell <Self IP-addr>

где спрашивает, “Эй, парни! У кого IP такой-то? Сообщите мне”, и этот пакет посылается на ff:ff:ff:ff:ff:ff (широковещательно), то есть всем узлам в сети. Каждый компьютер в сети получает этот пакет и смотрит, принадлежит ли указанный IP какому-либо из его интерфейсов. Если принадлежит, то на MAC адрес отправителя (он известен из заголовка пакета), отправляется пакет с ответом (reply).

Компьютер, получивший ответ, для передачи на целевой IP будет посылать данные на MAC адрес отправителя пакета ответа.

ARP-ответ

ARP-ответ

Очень распространена, кстати, атака вида MITM (Man in the Middle), когда компьютер злоумышленника отвечает вместо целевого компьютера (раньше его) и обмен между двумя узлами происходит через посредника, прослушивающего весь трафик. Реализацию такой атаки я демонстрировал в ранней статье ARP-Spoofing.

Как видите, протокол весьма прост, базируется на процедуре “Вопрос-Ответ”. Существуют также различные “надстройки” над протоколом, позволяющие предотвращать использование повторяющихся адресов в сети:

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

P.S. В одной из предыдущих статей я писал про Android-эмулятор приложений. Так вот на множестве различных сайтах, например, посвященныхоперационной системе андроид скачать бесплатно программы можно прямо на свой телефон по QR-коду и экспортировать APK-файл в эмулятор