Арп спуфинг кали линукс

Инструменты Kali Linux

Список инструментов для тестирования на проникновение и их описание

arpspoof

Описание arpspoof

arpspoof перехватывает пакеты в локальной сети с коммутацией. arpspoof перенаправляет пакеты от целевого хоста (или всех хостов) локальной сети, предназначенные для другого хоста в локальной сети, путём подмены ARP ответов. Это очень эффективный способ сниффинга трафика на коммутаторе.

IP форвардинг ядром (или программой пользовательского окружения, которая выполняет то же самое, например fragrouter) должны быть включены заранее.

Справка по arpspoof

Руководство по arpspoof

Примеры запуска arpspoof

Чтобы сказать хосту жертвы, что теперь мы (наш MAC адрес) является одним из принадлежащих IP шлюза, введите следующую команду:

В отдельном шеле мы запустим соответствующую команду чтобы одурачить шлюз, и чтобы он поверил, что мы — это жертва

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

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

Борьба с arpspoof

Используйте инструменты вроде arpwatch для мониторинга изменений таблиц MAC / IP адресов.

Установка arpspoof

Программа предустановлена в Kali Linux.

Информация об установке в другие операционные системы будет добавлена позже.

Скриншоты arpspoof

Это утилита командной строки.

Инструкции по arpspoof

Ссылки на инструкции будут добавлены позже.

Источник

Арп спуфинг кали линукс

ARPspoofing (ARPpoisoning) — разновидность сетевой атаки типа 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

Читайте также:  Nero для windows 2007

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

Выбрать Unified sniffing и интерфейс

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

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

Читайте также:  Network security toolkit linux

Отметить 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

Помимо предустановленных инструментов, можно установить и использовать следующие:

Также стоит добавить, что после проведения атаки следует корректно ее завершать, восстановив валидные записи в arp-таблицах атакованных хостов.

Что потом?

После проведения атаки ARP-spoofing мы можем запускать сниффер и слушать трафик участников сети.
В сети могут присутствовать средства обнаружения данной атаки и при проведении пентеста нужно это учитывать. В конце концов arp-poisoning — лишь один из способов оказаться на пути трафика между двумя хостами и целесообразность его применения зависит от условий, в которых проводится тестирование.

КОММЕНТАРИИ

Благодарю автора, замечательная познавательная статья. Было бы здорово почитать по SSLStrip(+).

Оставить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Источник

Еще один способ перехвата трафика через ARP Spoofing

На Хабре было уже много статей на тему классического ARP спуфинга, однако все они были похожи тем, что для полноценного перехвата трафика надо было подменять ARP записи у двух машин. Как правило, это жертва и ее шлюз по умолчанию. Однако, идея спуфить шлюз не всегда хороша. Он вполне может иметь на борту детектор атак, который в два счета доложит админу что сеть ломают и халява кончится, не начавшись. В данной статье будет рассмотрен метод перехвата трафика, при котором атака производится только на хост-жертву. Как обычно в таких случаях, статья чисто для ознакомления, использование во вред карается по закону и т.д.
Под катом много букв.

Сразу оговорюсь, что для атак будет использоваться Linux. Профессионалам сетевой безопасности просьба ногами не бить.

Чуть-чуть об ARP

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

Простой вариант атаки

Итак, пусть мы хотим перехватить трафик жертвы, при этом мы можем слать «заведомо паленые» пакеты только на машину жертвы. Решение состоит в том, чтобы поднять у себя на машине NAT и вместо прямой пересылки отправлять трафик на шлюз уже со своего интерфейса. В этом случае мы работаем для жертвы как еще один NAT-шлюз.

Конфигурация сети

Пусть есть в сеть 192.168.0.0/24 со шлюзом 192.168.0.1. Для удобства, пусть MAC адреса адаптеров будут вида 00-00-00-00-00-XX, где XX — последняя цифра IP адреса, то есть MAC шлюза у нас будет 00-00-00-00-00-01.

Читайте также:  Синхронизация времени windows 10 ltsc

В сети есть машины:

192.168.0.1 / 00-00-00-00-00-01 — шлюз
192.168.0.3 / 00-00-00-00-00-03 — жертва

eth0192.168.0.5 / 00-00-00-00-00-05 — наша машина, с которой будем атаковать. В сеть подключен единственный сетевой интерфейс eth0

Утилиты

Для ARP спуфинга будем использовать утилиту arpoison. Она, в отличие, от arpspoof из пакета dsniff, не требует корректной IP конфигурации интерфейса, с которого происходит спуфинг (это нам понадобится чуть позже).

Поехали

Итак, для начала разрешим маршрутизацию пакетов:

теперь запустим ARP спуфинг:

все, машина жертвы теперь уверена, что 192.168.0.1 — это наш eth0. Можно проверить и убедиться (выполняем на жертве):

поднимаем на нашей машине NAT (для простоты будет маскарадить все, что форвардится и отправлено не на localhost):

готово. Проверяем, пингуя шлюз с жертвы, на нашей машине видим примерно такую картину:

видно, что пинг пришел к нам, от нас с нашего IP ушел на шлюз, а вернувшийся ответ ушел отправителю. Словом, обычный NAT.

Усложняем задачу

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

Cоздаем адаптер, он получит случайный MAC, пусть у нас он будет 00-00-00-00-00-06:

пропишем IP адрес или возьмем его по DHCP. Во втором случае после получения адреса не забываем выкинуть все маршруты через virt0:

после таких манипуляций у нас должен появиться адаптер virt0 с MAC 00-00-00-00-00-06 и IP 192.168.0.6 и без единого маршрута через него.

Следующим этапом добавляем правило маршрутизации при котором все пакеты, пришедшие с virt0, будут пересылаться через него же:

Теперь можно запустить спуфинг и посмотреть, что получилось:

на первый взгляд все красиво, однако мы засветили свой настоящий MAC. Произошло это потому, что на ARP запрос, какой MAC у 192.168.0.6 наша машина радостно ответила шлюзу настоящим адресом сетевой карты. Чтобы такого не было, надо сделать следующее:

теперь на ARP запросы будет отзываться только настоящий адаптер. Осталось решить проблему доставки MAC адреса виртуального адаптера шлюзу. Можно это сделать например тем же arpoison, указав настоящие адреса и интервал побольше. В этом случае такие ARP ответы не должны вызвать подозрение:

все, теперь шлюз знает, куда отправить ответ и картинка становится красивой:

Осталась самая малость. Во-первых запретить системе принимать входящие (не пересылаемые) пакеты на виртуальном интерсейсе, чтоб кто-нибудь любопытный не сравнил список сервисов на 192.168.0.6 и 192.168.0.5

Во-вторых (спасибо AEP) выключить отправку ICMP time exceeded in-transit, чтобы в traceroute не появился наш реальный адрес

В третьих (спасибо kay) добавить увеличение TTL, чтобы на пингах и в traceroute не было видно факта маршрутизации через нас

Вместо заключения

В итоге у нас получилось перехватить трафик, атаковав только машину жертвы, не засветив при этом свои реальные IP и MAC. Перехваченные пакеты при этом маршрутизируются стандартными средствами. Также можно настроить более веселые правила маршрутизации, открыть на virt0 80 порт и позаниматься фишингом, но это уже другая история.

UPD: было бы интересно почитать в комментах, как такую схему все таки можно запалить, не имея в сети l3 маршрутизации.

Источник

Оцените статью