17.10.2016 @ 11:57 ARP-spoofing в Kali Linux ARP, arp-poisoning, arpspoof, ettercap, spoofing ARP—spoofing (ARP — poisoning) — разновидность сетевой атаки типа MITM (англ. Man in the middle), применяемая в сетях с использованием протокола ARP. ARP или Address Resolution Protocol — протокол канального уровня, используемый для определения MAC-адреса по заданному IP-адресу в семействе протоколов IPv4. В семействе протоколов IPv6 ARP не существует, его функции возложены на ICMPv6. Однако мы все еще имеем огромное количество сетей, работающих с IPv4. И сегодня мы поговорим об известной атаке arp-spoofing и утилитах Kali Linux , позволяющих ее реализовать. Коротко о работе протокола Рассмотрим ситуацию, когда компьютеры A и B находятся в разных локальных сетях и связаны друг с другом через Интернет. Для передачи данных, компьютер A использует IP-адрес компьютера B в качестве адреса назначения и отправляет пакет в Интернет. Пройдя через серию маршрутизаторов, он попадает на шлюз сети, которой принадлежит компьютер B. В локальной сети компьютера B для адресации используются 6-ти байтные MAC-адреса и, когда пакет достигает шлюза, дальнейшая доставка данных по локальной сети возможна, только если известен MAC-адрес компьютера B. Если шлюзу MAC-адрес не известен, он отправляет в сети широковещательный ARP-запрос, суть которого состоит в следующем «Компьютер с IP-адресом компьютера B, сообщите мне (шлюзу) свой MAC-адрес». Т.к. запрос широковещательный, он достигает компьютера B и в ответ он посылает ARP-ответ со своим MAC-адресом. Остальные компьютеры сети не посылают никаких пакетов на ARP-запрос шлюза, т.к. имеют IP-адреса, отличные от IP-адреса компьютера B. Шлюз, получив MAC-адрес компьютера B, заносит в свою ARP-таблицу (кэш) соответствие IP-адрес и MAC-адрес компьютера B и, затем, отправляет на него данные, полученные через Интернет от компьютера A. В то же время компьютер B заносит в свою ARP-таблицу соответствие IP и MAC адресов шлюза, чтобы иметь возможность посылать данные компьютеру A. На первый взгляд все должно работать просто и надежно, если бы не одна особенность — ARP не проверяет подлинность ARP-запросов и ARP-ответов и позволяет отправлять ARP-ответы узлам сети произвольно, т.е. даже если узел не отправлял в сети никаких ARP-запросов. Самопроизвольные ответы нужны, например для выявления конфликтов IP-адресов в локальной сети. Подробнее можно прочитать здесь Gratuitous_ARP ARP-poison Предположим, что нам нужно прослушивать данные, передаваемые между компьютерами A и B. Наш компьютер находится в одной локальной сети с компьютером B. У нас есть свой MAC-адрес, мы знаем MAC-адрес компьютера B и MAC-адрес шлюза нашей локальной сети. Компьютеры в современных локальных сетях соединены друг с другом через коммутаторы. Коммутатор «помнит» к какому порту подключен хост с каким MAC-адресом. Т.е. получив пакет от компьютера B шлюзу, мы этот пакет не получим, т.к. он не будет отправлен на все порты коммутатора, а лишь на тот, к которому, по мнению коммутатора, сейчас подключен шлюз. Во времена, когда использовались хабы вместо коммутаторов, мы могли бы слушать трафик без каких-либо проблем. Атаку ARP-spoofing часто называют так же ARP-cache poisoning и это название весьма говорящее. Т.к. нам позволено отправлять ARP-ответы любому узлу сети когда нам захочется, мы отправим ARP-ответ шлюзу такого содержания «Я узел сети с IP-адресом компьютера B, и вот мой MAC-адрес [MAC-адрес нашего хоста]» а компьютеру B отправим ARP-ответ такого содержания «Я шлюз и мой MAC-адрес [снова MAC-адрес нашего хоста]». Получив такие пакеты, шлюз и компьютер B обновят свой ARP-кэш. Теперь, если компьютер B захочет отправить данные через Интернет компьютеру A, он пошлет свои данные, как он считает в соответствии со своей ARP-таблицей, на MAC-адрес шлюза, тогда как в действительности данные будут отправлены на наш MAC-адрес, а мы, в свою очередь, отправим их дальше на настоящий MAC-адрес шлюза. Ответ от компьютера А снова пройдет через нашу машину. Реализация атаки в Kali Linux Увидеть содержание ARP-таблицы хоста можно следующим образом. В системах Windows: arp -a В системах Linux: arp Для проведения атаки arp-spoofing в Kali Linux должны быть разрешены транзитные пакеты. Разрешить IPv4 форвардинг можно отредактировав файл /etc/sysctl.conf Нужно раскомментировать строку net.ipv4.ip_forward = 1 После чего выполнить команду sysctl -p /etc/sysctl.conf Если же вы не хотите разрешать это на постоянно основе, можно разрешить форвардинг так echo 1 > /proc/sys/net/ipv4/ip_forward Так же стоит убедиться, что транзитный трафик не блокируется правилами iptables. В Kali Linux Rolling 2016.2 предустановлены следующие инструменты для проведения атаки ARP-spoofing: arpspoof Пример использования: arpspoof -i eth0 -t [ip жертвы] [ip шлюза жертвы] arpspoof -i eth0 -t [ip шлюза жертвы] [ip жертвы] -i — указывает интерфейс, подключенный к локальной сети жертвы -t — указывает IP-адрес хоста, arp-кэш которого требуется «отравить». Если ключ не указан, атака будет проведена по всех хостам в сети, т.е. все участники сети, при попытке отправить пакет шлюзу, будут отправлять его нам. или одной командой arpspoof -i eth0 -t [ip шлюза жертвы] -r [ip жертвы] ключ -r указывает arpspoof «отравлять» arp-кэш обеих хостов. ettercap ettercap -G Выбрать Unified sniffing и интерфейс Просканировать сеть Добавить жертву и шлюз в разные группы целей Выбрать Mitm -> ARP poisoning Отметить sniff remote connections и запустить Фреймворк метасплойт Можно ипользовать акзилари модуль метасплойта auxiliary/spoof/arp/arp_poisoning msfconsole use auxiliary/spoof/arp/arp_poisoning set BIDIRECTIONAL true set INTERFACE eth0 set DHOST [ip-адрес шлюза] set SHOST [ip-адрес жертвы] set LOCALSIP [ip-адрес нашего хоста] exploit Помимо предустановленных инструментов, можно установить и использовать следующие: arpoison Фреймворк mitmf Консольная версия Intercepter-NG Также стоит добавить, что после проведения атаки следует корректно ее завершать, восстановив валидные записи в arp-таблицах атакованных хостов. Что потом? После проведения атаки ARP-spoofing мы можем запускать сниффер и слушать трафик участников сети. В сети могут присутствовать средства обнаружения данной атаки и при проведении пентеста нужно это учитывать. В конце концов arp-poisoning — лишь один из способов оказаться на пути трафика между двумя хостами и целесообразность его применения зависит от условий, в которых проводится тестирование. antgorka 51871 Network security Читать дальше >>