Способы оплаты Abuse

ARP сканирование локальной сети Linux

08.06.2024, 15:00

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

Что такое ARP

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

В Linux ARP-таблица хранится в оперативной памяти и содержит соответствия IP-адресов и MAC-адресов других устройств в сети. Вы можете просмотреть содержимое ARP-таблицы в Linux с помощью команды arp -a. Linux предоставляет инструменты для выполнения ARP-операций, таких как добавление статических записей ARP или очистка ARP-кэша. ARP является важным элементом функционирования сетей TCP/IP и играет решающую роль в обмене данными между устройствами в локальной сети.

Сканирование при помощи ARP

У любой компьютерной сети есть свой IP-адрес - это известно каждому. Задавались ли вы вопросом, какой компьютеру присваивается конкретный адрес? Известно, что есть разные сети - проводные, беспроводные, ppp. В каждой сети аппаратный адрес вычислительной машины имеет свой формат, что зависит от конструктивных особенностей локальной сети.

Объясним, все на деле очень просто. Для преобразования физического адреса в IP предусмотрен ARP, Проще говоря, это протокол разрешения адресов. Когда компьютер выходит в сеть, он делает запрос остальным ПК, и задает вопрос - ""У кого IP адрес XXX.XXX.X.X". Его ответ не остается без внимания, но выглядит он несколько иначе - "У меня, мой адрес xx:xx:xx:xx:xx". То есть в ответ посылается физический адрес. Этот адрес заносится в специальную таблицу.

Нужно сказать, что формат сообщений ARP крайнее прост. В сообщении скрывается или запрос с IP адресом, или ответ. Размер сообщения зависит от протокола - IPv4 или IPv6, типа оборудования сети. В заголовке сообщения указаны типы и размеры этих сообщений. Заголовок заканчивается кодом сообщения. Для запроса код 1, а для ответа - 2. В теле сообщения указаны четыре адреса, аппаратные и сетевые адреса, принадлежащие отправителю и получателю.

Устанавливаем утилиту

Утилиту ARP Scan еще называют MAC Scanner - удобный, функциональный инструмент для сканирования локальной сети Linux с помощью ARP. Программа отображает Pv4 адреса устройств сети. Особенность ARP в том, что она не задействует маршрутизацию. Такой вид сканирования подходит только для локальной сети. Программа обнаруживает активные устройства, компьютеры не могут скрыться от ARP. Если компьютер нужно обнаружить за пределами локальной сети, используется ping сканирование.

Сканер сети доступен для следующих OS:

  1. Debian;
  2. Ubuntu;
  3. Fedora;
  4. RedHat;
  5. Gentoo;
  6. ArchLinux.

Для установки выполним:

$ sudo apt install arp-scan

Сканирование

При помощи программы вы сможете найти все активные компьютеры, как в проводных сетях ethernet, так и в беспроводных Wifi сетях. предусмотрен функционал для работы с Token Ring и FDDI. Не последовательность соединений PPP и SLIP не предусмотрена, так как в них нет ARP. Работать с утилитой стоит под правами суперпользователя. 

В начале узнаем сетевой интерфейс, используя программу ip:

$ ip addr list

APR сканирование

Мы видим здесь enp24s0. Наиболее просто это сделать с ARP, выполнив сканирование и выйти каждый подключенный к сети PC - запустить программу, задав параметры:

$ sudo arp-scan --interface=enp24s0 --localnet

APR сканирование

Видим параметр --interface, задающий интерфейс сканирования, а --localnet, указывает на то, что нужно применять все возможные IP адреса для текущей сети.

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

Вместо параметра --localnet, можно указать маску сети:

$ sudo arp-scan --interface=enp24s0 10.0.1.0/24

ARP подходит и в том случае, если у интерфейса нет собственного IP адреса. В таком случае в качестве исходящего адреса подходит 0.0.0.0. Но далеко не все системы ответят на такой запрос Поэтому в такой ситуации сканер будет неэффективен. 

Почему не работает ARP

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

  1. Конфликт IP-адресов: Если два устройства в сети используют один и тот же IP-адрес, это может вызвать конфликт ARP.
  2. Неправильная конфигурация сети: Неправильные настройки IP-адресации, подсетей или шлюзов могут привести к неработоспособности ARP.
  3. Проблемы с сетевым оборудованием: Неисправности коммутаторов, маршрутизаторов или сетевых карт могут привести к неполадкам в работе ARP.
  4. Настройки безопасности или фильтрации на сетевых устройствах могут блокировать ARP-пакеты.
  5. Злоумышленники могут использовать атаки типа ARP-отравление или ARP-флуд, что также может вызвать проблемы с работой ARP в сети.

Для диагностики и устранения проблем с ARP рекомендуется проверить настройки сетевого оборудования, провести анализ конфигурации IP-адресации, а также использовать инструменты для отслеживания и анализа сетевого трафика.