Получение MAC-адреса IP из-за маршрутизатора

Я хочу знать, если возможно, как получить MAC-адрес IP-адреса, если я нахожусь за маршрутизатором.

Я попытался выполнить пинг до IP и проверить таблицу arp, но единственной записью является MAC-адрес маршрутизатора.

Есть идеи?

Спасибо за прочтение.

9 ответов

Решение

MAC-адреса не передаются маршрутизаторами. Вам нужно взглянуть на таблицу ARP роутера.

Редактировать:

Если у вас нет другой формы доступа к машине, да, это невозможно. Если вы можете войти в сеть, в которой он включен (VNC, RDP, SSH), то вы можете сделать это, но в противном случае нет.

Если ваш маршрутизатор не предоставляет вам таблицу ARP в своем веб-интерфейсе, вы можете посмотреть, можете ли вы подключиться через telnet: многие домашние маршрутизаторы имеют более продвинутые функции, которые они скрывают от веб-интерфейса.

Нельзя гарантировать, что вы видите MAC-адрес машин за маршрутизатором. Но есть некоторые протоколы, которые могут помочь вам найти MAC-адрес из любой точки сети. Например, чтобы найти MAC-адрес ПК с Windows в другой сети, когда вы знаете его IP-адрес, вы можете использовать команду

nbtstat -A <IP Address>

Чтобы сделать то же самое с Linux-машины (с установленной samba), используйте команду

nmblookup -R -S -A <IP Address>

Если рассматриваемая машина не является машиной Windows, и нет возможности стать частью другой подсети. Тогда единственными вариантами являются просмотр таблицы MAC-адресов в маршрутизаторе или, если есть общий DHCP-сервер в сети, вы можете увидеть MAC-адрес в журналах DHCP. Но я думаю, вы должны быть администратором для доступа к маршрутизатору или DHCP-серверу.

Следовательно, если в вашей сети много машин с Windows, вы можете найти MAC-адрес для них, даже если они не находятся в их подсети. Но если в сети много Linux-машин, то нет хорошего очень распространенного способа найти MAC из других сетей.

Вышеуказанная техника не будет работать на серверах Linux Samba. Они всегда будут возвращать MAC-адрес как 00-00-00-00-00-00.

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

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

Я думаю, что вы хотите знать, это -

Как вы можете найти MAC для определенного IP(компьютера), который не является частью вашей подсети?

Для всех компьютеров /IP-адресов в вашей подсети таблица IP-MAC хранится в кэше ARP локально на вашем компьютере. Это тот же кеш, который выдает "конфликты разрешения IP". сделать простой

$ arp -a | grep specialIP

Теперь для машины за пределами вашей подсети - нет стандартного приложения полки, которое делает это, я пытался подумать, может ли это сделать какое-нибудь сообщение ICMP, но на данный момент я думаю, что его нет. То, как устроена сеть, а не многоуровневая структура, это намеренно нежелательное поведение. Для экранирования или удаления информации, которая относится к уровням ниже настоящего, и, поскольку мы по сетям, используется IP, поэтому нет MAC.

Посмотрите, есть ли у вас сотрудничество на другом компьютере, вы можете написать небольшое приложение, которое инкапсулирует заголовок mac и отправляет вам... конечно, если у вас есть сотрудничество с другого компьютера, почему это так много усилий, простой ifconfig -a делает работу для всех интерфейсов на этой машине.

Вы можете только "видеть" mac-адреса хостов, находящихся в одной подсети. Затем вы можете перечислить все mac-адреса с помощью команды arp:

arp -a

или для одного IP-адреса:

arp -a 192.168.0.1

Хорошо, как сказали ребята в другом ответе, ARP является протоколом второго уровня и не маршрутизируется, поэтому сканирование обычными методами не вернет вам MAC-адреса. пример

nmap -sn target

будет давать только MAC-адреса устройств, которые находятся в одном сегменте сети. Есть два сценария nmap, которые используют такие помощники, как nbtstat и snmp

NBTSTAT для этого необходимо, чтобы UDP-порт 137 был открыт на целевом объекте, команда nmap

nmap -sU --script nbtstat.nse -p 137 target

SNMP, этот протокол должен функционировать, он открыт, чтобы дать нам любую информацию о MAC-адресе цели. Также UDP порт 161

nmap -sU -p 161 --script=snmp-interfaces target

Адреса IPV6 работают при извлечении MAC-адресов из IPv6 или аналогичных (teredo, 6 - 4 и т. Д.) Адресов. Я только попробовал это на адресе IPv6, на котором есть часть Mac

nmap -sV -sC target

(это команда из nmap https://nmap.org/nsedoc/scripts/address-info.html), но при тестировании (на внутренних хостах fe80) требовалось -6, поэтому

nmap -sV -sC -6 target 

Если у вас есть доступ к удаленному ПК или любому ПК в удаленной сети, вы можете использовать WMI или запускать различные приложения, чтобы получить MAC-адрес. Я не могу придумать другой способ получить MAC-адрес.

JR

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

http://aruljohn.com/mac.pl

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

https://tools.ietf.org/html/rfc7348

Я не знаю о роутере, но если у вас есть ip-адрес, вы можете использовать nmap для получения mac-адреса даже на вашем локальном хосте, вы также можете это сделать, так почему, черт возьми, вы хотите получить это от роутера или чего-то в этом роде? Если ваша ОС Linux, вы можете использовать Macchanger или множество других приложений, поэтому у меня нет никаких идей, почему вы хотите сделать это так.

Попробуйте Namp Intense Scan: nmap -T4 -A -v IP-address

Другие вопросы по тегам