Цель работы: Научиться работать с программой Wireshark. Изучить работу протокола ARP.
Необходимые материалы: ПК с установленной программой Wireshark.
Для определения физического адреса по IP-адресу используется протокол разрешения адреса Address Resolution Protocol (ARP).
Протокол ARP работает различным образом в зависимости от того, какой протокол канального уровня работает в данной сети с возможностью широковещательного доступа одновременно ко всем узлам сети.
Протокол ARP позволяет динамически определить МАС-адрес по IP-адресу. Протокол ARP работает в пределах одной подсети и автоматически запускается, когда возникает необходимость преобразования IP-адреса в аппаратный адрес.
Узел, которому нужно выполнить отображение IP-адреса на локальный адрес, формирует ARP-запрос, вкладывает его в кадр протокола канального уровня, указывая в нем известный IP-адрес, и рассылает запрос широковещательно. Все узлы локальной сети получают ARP запрос и сравнивают указанный там IP-адрес с собственным. В случае их совпадения узел формирует ARP-ответ, в котором указывает свой IP-адрес и свой локальный адрес и отправляет его уже направленно, так как в ARP запросе отправитель указывает свой локальный адрес.
Для того чтобы уменьшить количество посылаемых запросов ARP, каждое устройство в сети, использующее протокол ARP, должно иметь специальную буферную память. В ней хранятся пары адресов (IP-адрес, физический адрес) устройств в сети. Всякий раз, когда устройство получает ARP-ответ, оно сохраняет в буферной памяти соответствующую пару. Если адрес есть в списке пар, то нет необходимости посылать ARP-запрос. Эта буферная память называется ARP-таблицей.
В ARP-таблице могут содержаться как статические, так и динамические записи. Динамические записи добавляются и удаляются автоматически, статические заносятся вручную.
Так как большинство устройств в сети поддерживает динамическое разрешение адресов, то администратору, как правило, нет необходимости вручную указывать записи протокола ARP в таблице адресов.
Каждая запись в ARP-таблице имеет свое время жизни. Политики очистки ARP-таблицы продиктованы используемой операционной системой. При добавлении записи для нее активируется таймер.
Сообщения протокола ARP при передаче по сети инкапсулируются в поле данных кадра. Они не содержат IP-заголовка. В отличие от сообщений большинства протоколов, сообщения ARP не имеют фиксированного формата заголовка. Это объясняется тем, что протокол был разработан таким образом, чтобы он был применим для разрешения адресов в различных сетях.
ARP-запросы и ответы используют один и тот же формат пакета. Так как локальные адреса могут в различных типах сетей иметь различную длину, то формат пакета протокола ARP зависит от типа сети. Пример запроса и ответа ARP
А так выглядит ARP запрос. На втором уровне мы видим заголовок Ethernet где указаны MAC адреса отправителя и получателя а также какой протокол используется на следующем уровне (ARP). Далее идет служебная информация. А после нее информация о том кому направлен запрос а также IP адрес и мак адрес который необходимо узнать.
Вы можете заметить что mac выражен в 0-лях потому что роутер его не знает. На данном скрине роутер хочет узнать какой MAC адресс у устройства с IP 192.168.1.12.
Протокол ARP может быть очень полезен в рамках сетевой разведки. Сканирование ARP позволяет провести перечисление активных хостов и имеет небольшое преимущество перед ICMP-сканированием, поскольку трафик ICMP в корпоративной сети может быть ограничен, а то и вовсе выключен.
Как пример использование утилиты arp-scan в Linux:
Протокол arp имеет ряд уязвимостей о которых вы узнаете на 4 курсе.
Таблица Ethernet.
Тип сообщения | Mac Адрес отправителя | MAC адрес получателя |
---|---|---|
Аrp запрос | mac адресс | mac адресс |
Аrp ответ | mac адресс | mac адресс |
Таблица ARP.
Тип сообщения | MAC отправителя | IP адресс отправителя | Target MAC | Target IP |
---|---|---|---|---|
Аrp запрос | text | text | text | text |
Аrp ответ | text | text | text | text |
Ответы на некоторые вопросы вы можете найти тут: https://hackmd.io/@erikguru/HyZA5oYdo