прописать все записи статически (гиморно, но что делать)
и поставить firewall который будет дропить все ARP ответы. Немногие FW умеют работать с ARP. Если памятть не изменят, то Sygate'ом я такое делал
Вобщем ситуцация - есть локалка, есть я регулярно приходящий в гости одного из хозяев компа в этой локалке. Завелся в этой локалке паразит (или даже несколько) занимающийся арп спуфингом ради кражи паролей на инет. Проявляется это в том что при включении promiscuous mode на сетевухе винда (2000) начинает орать что конфиликт адресов задетектен (ну правильно - там почти вся сетка на хабах, и дублированные пакеты с "моей" машины посланные хакером уже с его подставным МАК в пофигистичном режиме ловятся виндой - вот она и ругается). При детальном исследовании выясняется что MAC адрес сервера сети в арп таблице "моей" машины имеет свойство меняется - оно и понятно - он бывает правильный а бывает и паразитский. Ну я решил прописать через arp -s статически мак адрес - и весьма удивился когда он все равно менялся - адрес хоть и статический, но по получении ложных арп ответов винда его "правит" а вся статичность очевидно выражается в том что он просто не удаляется через некоторое время как все остальные динамические записи. Пока проблема решилась (будет решена завтра) путем запуска проги которая регулярно (каждые 300 мсек к примеру) правит АРП запись в таблице на правильную. Вопрос - такое поведение арп таблицы "is by design" или его можно как-нить поправить?
Так задумано.
23.04.04 08:24 Автор: cybervlad <cybervlad> Статус: Elderman
> Вопрос - такое поведение арп таблицы "is by design" или его > можно как-нить поправить? Так задумано.
Для линуксового ядра есть патчик, меняющий поведение:
http://www.securitylab.ru/?ID=33493 Как сделать аналогичное для винды мне неизвестно...
Есть два способа23.04.04 10:14 Автор: amirul <Serge> Статус: The Elderman
> > Вопрос - такое поведение арп таблицы "is by design" > или его > > можно как-нить поправить? > Так задумано. > Для линуксового ядра есть патчик, меняющий поведение: > http://www.securitylab.ru/?ID=33493 > Как сделать аналогичное для винды мне неизвестно... Первый правильный: посмотреть куда лезет CreateIpNetEntry/SetIpNetEntry из iphlpapi.dll (не особо ковыряясь я дошел до вызова MprAdminMIBEntrySet из mprapi.dll - дальше одной IDA-ой не справиться, надо в отладчике). Насколько я понимаю, заканчивается все IOCTL-ом в \Device\TcpIp.
Итак первый метод: написать фильтр для \Device\TcpIp стека, перехватывать данный IOCTL, проверять, а потом, при необходимости, отсылать дальше на обработку или просто выкидывать.
Этот метод хорош тем, что можно смотреть является ли запись, которую хотят изменить статической и блокировать ARP запрос только в этом случае.
Второй: взять пример passthru из NTDDK и встроиться в NDIS-стек на нужном интерфейсе. И обрабатывать ARP-фреймы по мере поступления. Этот метод легче и не требует копания в недокументированных потрохах винды, зато решение о фильтрации пакета надо принимать только лишь на основании содержимого самого пакета (для получения ARP-таблицы все равно придется ковыряться в винде, а если это надо делать, то лучше уж обойтись первым способом).
Хм....а при чем тут ioctl?04.05.04 07:36 Автор: AlexD <Alexander> Статус: Member
прописать все записи статически (гиморно, но что делать)
и поставить firewall который будет дропить все ARP ответы. Немногие FW умеют работать с ARP. Если памятть не изменят, то Sygate'ом я такое делал
Программу то я написал. Но файрволлом резать все ответы не хочеться - компов то в сетке много, народ сетевухи частенько меняет, фактически надо тока резать арп ответы в которых ип роутера - он же по совместительству ирц сервер, и роутер на инет прокси.