Обнаружьте другой хост с тем же MAC-адресом

Упс! Не волнуйся, друг. Простая ошибка: после того, как пользователь нажал на флажок, по умолчанию будет установлен флажок. Ваш код здесь выполняет это действие «проверить» во второй раз. Таким образом, вы немедленно проверяете, а затем снимаете флажок!

Есть два возможных исправления для вас. Либо вы можете просто прекратить ставить / снимать флажки в вашем коде, другими словами, закомментируйте эту строку здесь:

//$('#row [type="checkbox"]').get(0).checked = !$('#row [type="checkbox"]').get(0).checked;

Или вы можете продолжать делать это, но вы должны отключить действие HTML по умолчанию, используя функцию

`enter code here`event.preventDefault()

К сожалению, я не мог не работает с jQuery ... Я сам не очень хорошо разбираюсь в этом, но уверен, что кто-то еще прокомментирует, как это сделать ниже!

12
задан Daniel Cassidy 4 August 2010 в 17:44
поделиться

4 ответа

Этот вопрос слишком интересен для подавления! После нескольких неудачных начал я начал думать о важных составляющих проблемы и обыскивал RFCs для совета. Я не нашел категорический ответ, но вот мой мыслительный процесс в надежде, что он помогает:

  • Исходный вопрос спрашивает, как обнаружить другое устройство с Вашим MAC-адресом. Принятие Вы находитесь в сети IP, что требуется, чтобы выполнять это?

  • Пассивный метод должен был бы просто слушать трафик и искать любые пакеты, что Вы не передали, но имели свой MAC-адрес. Это может или не может произойти, поэтому хотя это может сказать Вам окончательно, если дубликат существует, это не может сказать Вам окончательно, что не делает.

  • Любой активный метод требует, чтобы Вы передали пакет, который вынуждает самозванца ответить. Это сразу устраняет любые методы, которые зависят от дополнительных протоколов.

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

  • Решение должно быть независимо от IP-адреса и включить только MAC-адрес.

  • Таким образом, ответ, кажется, должен был бы передать или широковещательную передачу (Ethernet) пакет или пакет с Вашим MAC-адресом как его место назначения, которое требует ответа. monkeywrench - то, что IP-адрес обычно включается, и Вы не знаете это.

Какой протокол соответствует этому описанию?

Легкий ответ:

  • Если Ваша сеть поддерживает BOOTP или DHCP, Вы сделаны, потому что это авторитетно связывает MAC-адрес с IP-адресом. Отправьте Запрос BOOTP, получите IP-адрес и попытайтесь говорить с ним. Вы, возможно, должны быть творческими, чтобы вызвать пакет на провод и препятствовать тому, чтобы себя ответили (я думаю разумное использование iptables и NAT).

Not-so-easy отвечает:

  • Протокол это независимо от IP: или тот, который не использует уровень IP или тот, который позволяет широковещательные сообщения. Ни один не приходит на ум.

  • Отправьте любой пакет, который обычно генерировал бы ответ от Вас, препятствовать тому, чтобы себя ответили и искали ответ от другого устройства. Казалось бы разумным использовать Ваш IP-адрес в качестве места назначения, но я не убежден в этом. К сожалению, детали (и, поэтому ответ) оставляют как осуществление для OP..., но я надеюсь, что обсуждение было полезно.

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

Некоторая информация доступна по http://en.wikipedia.org/wiki/ARP_spoofing#Defenses

Если все остальное перестало работать, можно наслаждаться этим: http://www.rfc-editor.org/rfc/rfc2321.txt

Отправьте продолжение со своим решением, поскольку я уверен, что это будет полезно другим.Удачи!

17
ответ дан 2 December 2019 в 07:05
поделиться

Вы могли отправить запрос ARP на каждый возможный IP в подсети. Конечно, исходный адрес запроса ARP должен быть ff:ff:ff:ff:ff:ff, иначе Вы не могли бы видеть ответ.

Я подделал пакет как это с bittwiste и воспроизвел его с PReplay, и все хосты в сети получили ответ. (Я не знаю, подделали ли они пакеты ARP, законны или не... некоторые Ose могли бы проигнорировать их),

Вот то, на что был похож созданный пакет: alt text

Вот то, на что был похож ответ: alt text

Если Вы следите за ответами и видите Ваш MAC-адрес в одном из пакетов (в красном прямоугольнике), чем у кого-то есть тот же MAC-адрес, как Вы делаете...

Unfortuantely я не мог протестировать теорию полностью, потому что ни один из моего (Windows) машины не заботится обо мне пытающийся установить MAC-адрес nic...

3
ответ дан 2 December 2019 в 07:05
поделиться

Два хоста с помощью того же MAC-адреса на сегменте единой сети, вероятно, заставили бы переключатели сойти с ума, и Вы могли, вероятно, обнаружить его при наличии чрезвычайно ненадежного сетевого соединения (поскольку переключатели отправят некоторую часть пакетов, которые принадлежат Вашему хосту второго, в зависимости от которого один из Вас отправил последний пакет в их направлении).

1
ответ дан 2 December 2019 в 07:05
поделиться

Это очень поздно, и пока нет ответа, но я хотел повторить, что именно я сделал, на случай, если кому-то еще будет интересно.

Я работал с очень странным встроенным оборудованием, которому не назначен MAC-адрес при изготовлении. Это означает, что нам нужно было назначить его программно.

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

В конце концов, я прибег к выбору случайного значения по умолчанию в локально управляемом диапазоне, выбранном путем выполнения некоторых аппаратных показаний с умеренной энтропией. Я сознательно исключил начало и конец диапазона, исходя из предположения, что они с умеренной вероятностью будут выбираться вручную. Скорее всего, в любой сети будет только одно из этих устройств и, конечно же, меньше 20, поэтому шансы на конфликт очень низки, хотя и не так низки, как они могли бы быть из-за в некоторой степени предсказуемых случайных чисел.

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

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

Надеюсь, это поможет кому-то еще где-нибудь - но, вероятно, нет!

1
ответ дан 2 December 2019 в 07:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: