ARP-spoofing в Kali Linux [часть 1]

ARP-spoofing в Kali Linux [часть 1]

Security

ARPspoofing (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 2022 предустановлены следующие инструменты для проведения атаки 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 и интерфейс

1


Просканировать сеть

0


Добавить жертву и шлюз в разные группы целей

0-1


Выбрать Mitm -> ARP poisoning

3


Отметить sniff remote connections и запустить

4


Фреймворк метасплойт

Можно использовать акзилари модуль метасплойта 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 — лишь один из способов оказаться на пути трафика между двумя хостами и целесообразность его применения зависит от условий, в которых проводится тестирование.

⚡️ Канал - ссылка

📺 YouTube - ссылка

Report Page