Или же отравление протокола arp


Заражение протокола разрешения адресов (Address Resolution Protocol (ARP)) - это атака, которая включает в себя отправку поддельных сообщений ARP по локальной сети. Она также известна как ARP спуфинг, отравление/заражение ARP и отравление/заражение кэша ARP.

Эти атаки пытаются перенаправить трафик с первоначально запланированного хоста на злоумышленника. ARP отравление делает это, связывая адрес Media Access Control (MAC) злоумышленника с IP-адресом цели. Это работает только против сетей, которые используют ARP.

Что такое протокол разрешения адресов (Address Resolution Protocol (ARP))?

ARP - это протокол, который связывает данный IP-адрес с адресом канального уровня соответствующей физической машины. Поскольку

по-прежнему является наиболее часто используемым интернет-протоколом, ARP обычно устраняет разрыв между 32-разрядными адресами IPv4 и 48-разрядными MAC-адресами. Он работает в обоих направлениях.

Связь между данным MAC-адресом и его IP-адресом хранится в таблице, известной как кэш ARP. Когда пакет, направляемый к узлу в

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

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

Что такое ARP отравление/заражение?

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

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

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

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

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

Злоумышленники могут использовать эту информацию для организации дальнейших атак, таких как DoS атаки (denial-of-service) или захват сеанса (session hijacking):

(DoS атака) – эти атаки могут связать несколько отдельных IP-адресов с MAC-адресом цели. Если достаточное количество адресов отправляет запросы к цели, она может быть перегружена трафиком, что нарушает ее службы и делает её непригодным для использования.

  • Session Hijacking (Перехват сеанса) – спуфинг ARP можно использовать для кражи идентификаторов сеансов, которые хакеры используют для получения доступа к системам и учетным записям. Как только они получат доступ, они могут нанести ущерб своим целям.
  • Как определитьARPзаражение

    Отравление/заражение ARP может быть обнаружено несколькими различными способами. Вы можете использовать командную строку Windows, анализатор пакетов с открытым исходным кодом, такой как

    Это выведет вам на экран таблицу ARP:


    * Адреса на изображении выше были частично затемнены из соображений конфиденциальности.*

    В таблице показаны IP-адреса в левом столбце и MAC-адреса в середине. Если таблица содержит два разных IP-адреса с одинаковым MAC-адресом, то вы, вероятно, подвергаетесь атаке отравления ARP.

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

    Интернет адрес Физический адрес

    Как видите, совпадают как первый, так и третий MAC-адреса. Это указывает на то, что владелец IP-адреса 192.168.0.106, скорее всего, является злоумышленником.

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

    Коммерческие детекторы ARP отравления, такие как XArp, облегчают процесс. Они могут предупредить вас, когда начинается заражение ARP, что означает, что атаки обнаруживаются раньше, и ущерб может быть сведен к минимуму.

    Каким образом можно предотвратить ARP отравление/заражение

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

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

    Сопоставление компьютеров с наборами статических IP-адресов и MAC-адресов помогает предотвратить спуфинговые атаки (spoofing attacks), поскольку компьютеры могут игнорировать ответы ARP. К сожалению, это решение может защитить вас только от простых атак.

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

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

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

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

    Защитите свою сеть от отравления/заражения ARP

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

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

    В данной статье я расскажу как, используя пакет утилит arp-sk в операционной системе GNU/Linux реализовать атаку man-in-the-middle на протокол arp.

    Для чего вообще нужна такая атака:
    На хабре достаточно много статей например для взлома Wi-Fi. Но что делать после того, как ключ взломан? Тут можно увидеть один из вариантов действий.

    Протокол arp необходим для передачи в среде Ethernet. Потому как передача осуществляется по mac-адресам. Подробнее о mac-адресе можно почитать в википедии.
    ru.wikipedia.org/wiki/MAC-%D0%B0%D0%B4%D1%80%D0%B5%D1%81
    Для того, чтобы сообщение было передано от одного сетевого устройства к другому, в частности от Victim к Router компьютеру необходимо осуществить сопоставление IP-адрес — mac-адрес. Рассмотрим этот процесс с помощью утилиты tcpdump
    # tcpdump -i eth1 -vvv
    21:11:14.076068 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.4.1 tell 192.168.4.17, length 28
    21:11:14.077852 ARP, Ethernet (len 6), IPv4 (len 4), Reply 192.168.4.1 is-at 00:50:ba:46:5d:92 (oui Unknown), length 46

    первый пакет — компьютер отправляет широковещательное сообщение с целью узнать mac-адрес, который принадлежит ip-адресу 192.168.4.1 и просьбой отослать ответ на 192.168.4.11. Здесь не видно, но компьютер 192.168.4.11 при отправлении данного запроса указывает свой mac-адрес в качестве источника и широковещательный mac-адрес(FF:FF:FF:FF:FF:FF) в качестве адреса получателя. Сетевое устройство, получив данный пакет должно произвести сравнение ip-адреса со своим, и в случае совпадения послать следующий пакет.
    второй пакет — устройство с адресом 192.168.4.1 отвечает на mac-адрес, который был указан в запросе со своего mac-адреса, что адрес 192.168.4.1 находится на 00:50:ba:46:5d:92.

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

    Наша задача: получить траффик компьютера Victim с помощью компьютера Attacker.
    Для этого мы будем использовать самопроизвольный arp-ответ. В протоколе arp предусмотрена возможность отправления устройством arp-запроса или ответа в случае, если такое не требуют другие устройства. Для чего это надо — например, если изменился mac-адрес маршрутизатора. В случае, если компьютер поддерживает самопроизвольный arp то он перезапишет легитимный адрес на адрес атакующего.

    Arp-sk:
    # wget sid.rstack.org/arp-sk/files/arp-sk-0.0.16.tgz
    # tar xvzf arp-sk-0.0.16.tgz
    # cd arp-sk-0.0.16/
    # ./configure
    # make
    В случае успешной компиляции пакета, устанавливаем его
    # make install
    Варианты запуска команды можно посмотреть с помощью
    # arp-sk --help
    нам понадобятся следующие ключи:
    Usage: arp-sk
    -r --reply отправлять ARP ответ

    -d --dst получатель в link layer ( )
    -s --src источник в link layer ( )

    -D --arp-dst получатель в ARP сообщении ([hostname|hostip][:MAC])
    -S --arp-src источник в ARP сообщении ([hostname|hostip][:MAC])

    -i --interface указать интерфейс (eth0)

    Мы должны отправить роутеру и компьютеру arp-сообщения о том, что mac-адрес другого устройства наш.
    перед этим мы настроим компьютер Attacker для перенаправления траффика. Для этого включим перенаправление трафика в ядре:
    # echo 1 > /proc/sys/net/ipv4/ip_forward
    Теперь разрешим перенаправление траффика в пакетном фильтре. У меня используется iptables, поэтому я добавляю разрешающие политики в цепочку FORWARD. Так как у меня сеть для атаки используется тестовая, то я могу добавить следующие правила:
    # iptables -I FORWARD 1 -s 192.168.4.17 -j ACCEPT
    # iptables -I FORWARD 2 -d 192.168.4.17 -j ACCEPT
    Эти 2 правила разрешают перенаправление траффика атакующим компьютером для адреса 192.168.4.17.
    Внимание! Данные правила являются потенциально опасными, особенно, если у вас несколько сетевых интерфейсов. В таком случае рекомендую использовать более точные правила.

    Посмотрим адреса
    Наш адрес:
    # ifconfig eth1 | grep HW
    eth1 Link encap:Ethernet HWaddr 00:13:CE:5C:11:34

    Адреса других устройств
    # arp -an
    ? (192.168.4.1) at 00:50:ba:46:5d:92 [ether] on eth1
    ? (192.168.4.17) at 00:1c:bf:41:53:4b [ether] on eth1

    Посмотрим таблицу маршрутизации компьютера Victim:

    Теперь отправляем устройствам следующие arp-пакеты: подставляем в качестве mac-адреса другого устройства свой.
    Первый от имени 192.168.4.17 о том, что его mac-адрес теперь 00:13:CE:5C:11:34 отправляем на 192.168.4.1 (00:50:ba:46:5d:92)
    Второй от имени 192.168.4.1 о том, что его mac-адрес теперь 00:13:CE:5C:11:34 отправляем на 192.168.4.17 (00:1c:bf:41:53:4b)

    # arp-sk -i eth1 -r -s 00:13:CE:5C:11:34 -S 192.168.4.17 -d 00:50:ba:46:5d:92 -D 192.168.4.1
    # arp-sk -i eth1 -r -s 00:13:CE:5C:11:34 -S 192.168.4.1 -d 00:1c:bf:41:53:4b -D 192.168.4.17

    У нас будет следующий вывод:
    + Initialization of the packet structure
    + Running mode "reply"
    + Ifname: eth1
    + Source MAC: 00:13:ce:5c:11:34
    + Source ARP MAC: 00:13:ce:5c:11:34
    + Source ARP IP : 192.168.4.1
    + Target MAC: 00:1c:bf:41:53:4b
    + Target ARP MAC: 00:1c:bf:41:53:4b
    + Target ARP IP : 192.168.4.17

    --- Start classical sending ---
    TS: 21:30:44.338540
    To: 00:1c:bf:41:53:4b From: 00:13:ce:5c:11:34 0x0806
    ARP For 192.168.4.17 (00:1c:bf:41:53:4b):
    192.168.4.1 is at 00:13:ce:5c:11:34

    Посмотрим теперь на компьютере Victim arp-таблицу:

    Собственно все. Теперь можно запустить свой любимый сниффер и получить необходимые пакеты. Например ping до яндекса

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


    • 9 Янв 2018
    • 190
    • 122
    • 43

    В этом уроке мы узнаем:

    • Что такое адрес IP и Mac?
    • Что такое отравление протокола разрешения адресов (ARP)?
    • Hacking Activity: настройка статического ARP в Windows.

    1. Что такое IP и MAC-адреса?
    IP-адрес - это аббревиатура для адреса интернет-протокола. Адрес интернет-протокола используется для уникальной идентификации компьютера или устройства, такого как принтеры, диски хранения в компьютерной сети. В настоящее время существуют две версии IP-адресов. IPv4 использует 32-битные номера. Из-за огромного роста Интернета, IPv6 был разработан и использует 128-битные номера.

    Адреса IPv4 отформатированы в четырех группах номеров, разделенных точками. Минимальное число равно 0, а максимальное число - 255. Пример IPv4-адреса выглядит следующим образом:

    А вот, IPv6 отформатированы подгруппами из шести номеров, разрезанных двоеточиями. Номера подгрупп записываются как четыре 16-теричные цифры. Пример выглядит следующим образом:

    Чтобы упростить представление IP-адресов в текстовом формате, ведущие нули опущены, а группа нулей завершена пропущена. Вышеприведенный адрес в упрощенном формате отображается как:

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

    MAC-адрес похож на серийный номер телефона, в то время как IP-адрес соответствует номеру телефона.

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

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



    2. Что такое отравление ARP?
    ARP является аббревиатурой для протокола разрешения адресов . Он используется для преобразования IP-адреса в физические адреса [MAC-адрес] на коммутаторе. Хост отправляет широковещательную передачу ARP в сети, а компьютер-получатель отвечает своим физическим адресом [MAC-адрес]. Затем разрешенный IP / MAC-адрес используется для связи. Отравление ARP отправляет поддельные MAC-адреса коммутатору, чтобы он мог связывать поддельные MAC-адреса с IP-адресом подлинного компьютера в сети и захватывать трафик .

    Контракт отравления ARP

    Статические записи ARP : они могут быть определены в локальном кэше ARP, а коммутатор настроен на игнорирование всех автоматических ответных пакетов ARP. Недостатком этого метода является то, что его трудно поддерживать в больших сетях. Отображение IP / MAC-адресов должно распространяться на все компьютеры в сети.

    Программное обеспечение обнаружения отравления ARP : эти системы могут использоваться для перекрестного контроля разрешения IP-адреса и MAC-адреса и удостоверения их, если они аутентифицированы. После этого могут быть заблокированы несертифицированные разрешения IP / MAC-адресов.

    Безопасность операционной системы : эта мера зависит от используемой операционной системы. Ниже приведены основные методы, используемые различными операционными системами.

    • На основе Linux они работают, игнорируя нежелательные ARP-ответы.
    • Microsoft Windows : поведение кэша ARP можно настроить через реестр. В следующем списке представлено некоторое программное обеспечение, которое может использоваться для защиты сетей от сниффинга;
    • AntiARP - обеспечивает защиту от пассивного и активного сниффинга;
    • Agnitum Outpost Firewall - обеспечивает защиту от пассивного сниффинга;
    • XArp - обеспечивает защиту от пассивного и активного сниффинга;
    • Mac OS : ArpGuard можно использовать для обеспечения защиты. Он защищает от активного и пассивного сниффинга;

    3. Hacking Activity: настройка записей ARP в Windows

    Мы используем Windows 7 для этого упражнения, но команды также должны работать и с другими версиями окон.
    Откройте командную строку и введите следующую команду:


    Примечание:Динамические записи добавляются и удаляются автоматически при использовании сеансов TCP / IP с удаленными компьютерами.

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

    Добавление статических записей
    Откройте командную строку, затем используйте команду ipconfig / all, чтобы получить IP-адрес и MAC-адрес


    MAC-адрес представлен с использованием физического адреса, а IP-адрес - IPv4Address

    Введите следующую команду:


    Примечание: IP-адрес и MAC-адрес будут отличаться от используемых здесь. Это потому, что они уникальны.

    Используйте следующую команду для просмотра кеша ARP:

    Вы получите следующие результаты:


    Обратите внимание, что IP-адрес был разрешен на указанный нами MAC-адрес и имеет статический тип.

    Удаление записи кэша ARP
    Используйте следующую команду для удаления записи:

    Большое количество существующих сетевых протоколов не обеспечивают конфиденциальность передаваемой информации. Авторизационные данные
    зачастую передаются в открытом виде, без криптографических средств их защиты. К таким протоколам относятся широко распространённые Telnet,
    FTP, SNMP, SMTP, POP3, IMAP, NNTP и другие. Некоторые из них имеют возможность использования технологии SASL (Simple Authentication and
    Security Layer), обеспечивая достаточный уровень безопасности авторизации в большинстве случаев. При использовании других, таких как
    HTTP, FTP, SNMPv2, Telnet, данные достаточные для повторной авторизации третьим лицом могут быть легко получены.

    В статье рассматривается атака вида “человек-посередине” для перехвата авторизационных данных на примере протокола Telnet (RFC 15, RFC 854).

    Выбор данного протокола продиктован тем, что многие сетевые устройства для первоначального конфигурирования предоставляют удалённый доступ именно по этому протоколу и зачастую такой доступ остаётся в качестве основного.

    Базовая структура Telnet-а проста. Он обеспечивает двустороннюю передачу текстовых данных между клиентом и сервером. В качестве транспорта используется Transmission Control Protocol (TCP), TCP-порт по умолчанию 23. В большинстве случаев использование Telnet ничем не отличается от посылки текстовых данных (ASCII) по TCP-соединению.

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

    Программы-клиенты Telnet имеются в любой современной операционной системе. Всё это делает данный протокол чрезвычайно популярным и
    широкоиспользуемым для управления сетевыми устройствами. Однако, работая в среде Ethernet сетей это чревато возможными проблемами с
    безопасностью.

    Ethernet не являясь соединением точка-точка допускает ситуации когда к каждому устройству подключенному к сегменту сети могут приходить пакеты ему не адресованные:

    • широковещательные пакеты;
    • пользователь “вклинен” в линию связи (физически подключен к проводнику);
    • пользователь является некой транзитной точкой связи: его два сетевых адаптера реализуют так называемый “мост”.

    Каждый сетевой адаптер имеет уникальный идентификатор (адрес): Media Access Control (MAC). Обычно это MAC-48 — 48-битная адресация. Обязательными полями пакета являются:

    • MAC-адрес отправителя;
    • MAC-адрес получателя (широковещательные адреса позволят каждому из присутствующих в сегменте сети во время рассылки (отсутствует принцип store-and-forward) получить пакет).

    Проблемы с безопасностью Telnet-а в среде Ethernet:

    • среда обмена не является точка-точка;
    • не используются средства шифрования на канальном уровне.

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

    Методы перехвата данных зависят от особенностей среды. Для Ethernet были названы три. Рассмотрим поподробнее.

    Первый вариант применим в сетях, в которых сетевое оборудование осуществляет некоммутируемую доставку пакетов. Например при
    использовании концентраторов (хабов). В этом случае для перехвата не нужно предпринимать никаких действий. Информация доставляется всем
    устройствам сети. Такое оборудование является устаревшим и повсеместно заменено на коммутаторы. К тому же, TCP является взаимодействием типа точка-точка, что означает чётко заданные конечные адреса получателя в инкапсулирующих IP (Internet Protocol — протокол третьего уровня) пакетах. Ethernet фреймы передающие эти IP пакеты аналогично будут содержать конечные MAC-адреса пользователей.

    “Прослушать” таким образом Ethernet трафик в современных сетях при точка-точка соединениях не получится.

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

    Вариант с транзитной точкой связи не пассивен (атакующего можно обнаружить). Злоумышленник должен “обмануть” устройства сети и
    “заставить” отправлять свои пакеты конкретно ему.

    Являясь участником Ethernet сети, наименее трудозатратно и достаточно эффективно применять третий метод. А конкретнее — совершить атаку на протокол ARP (Address Resolution Protocol — протокол разрешения/урегулирования адреса): “отравить” RP-кэш сетевых устройств.

    ARP протокол связывает адресацию канального и сетевого уровней сети (Ethernet и IP). Такая “прослойка” необходима ввиду того, что
    программное обеспечение пользователей работает по протоколу IP, но фактический обмен данными возможен только Ethernet-фреймами.

    Отправитель IP-пакета посылает широковещательный Ethernet пакет с вопросом (ARP-request) о принадлежности конкретного (целевого
    получателя) IP-адреса к какому-либо из участников. Отправитель ожидает получить ответ (ARP-reply) рода “этот IP-адрес обрабатывается мной
    (адаптером с таким вот MAC-адресом)”.

    Смена устройства обрабатывающего конкретный IP-адрес редка, поэтому ARP-ответы сохраняются в кэше для предотвращения постоянных запросов, уменьшающих пропускную способность полезных данных в сети.

    ARP-пакет имеет следующие поля (в контексте Ethernet и IP сетей):

    • Sender hardware address (SHA) — MAC-адрес адаптера отправителя;
    • Sender protocol address (SPA) — IP-адрес отправителя;
    • Target hardware address (THA) — MAC-адрес адаптера получателя;
    • Target protocol address (TPA) — IP-адрес получателя.

    ARP-запрос имеет широковещательный THA и TPA содержащий IP-адрес с которым необходимо связаться.


    Пакеты трафика при ICMP ping-е (с 192.168.10.203) компьютера (192.168.10.145) с изначально неизвестным MAC-адресом:

    Злоумышленник, сфальсифицировав ARP-ответ (подменив настоящий MAC-адрес получателя), будет получать IP-пакеты не предназначенные для него. Если “обмануть” пользователя (подменив для него, например, шлюз атакующим компьютером), а шлюз заставить думать что атакующий является обманутым пользователем, то двусторонний трафик между шлюзом и пользователем будет идти через атакующего. Произошло активное “вклинивание” в линию передачи пакетов. В контексте безопасности атакующий является человеком-посередине.

    Подмена ARP-трафика это активное воздействие на Ethernet-среду: трудоёмкое и сложное занятие. Поэтому на практике используется пассивная атака: “отравление” ARP-кэша. Её суть заключается в посылке ARP-ответов или запросов в заведомо большем количестве чем от “настоящего” устройства и с фальсифицированными данными о MAC и IP адресах.

    Большинство современных операционных систем никак не обработают ответ на мнимый запрос, ранее не отправленный ими. Поэтому применяют посылку ARP-запросов: будто шлюз (с указанным IP-адресом) уже с другого MAC-адреса интересуется кто имеет определённый IP-адрес. Операционная система расценит данное как смену “местоположения” шлюза и она обновит свою таблицу закэшированных ARP-адресов.

    Принятие (то есть обработка) ARP-пакетов когда в этом нет необходимости является штатной ситуацией. Такая рассылка называется самопроизвольной рассылкой ARP-ответов/запросов (gratuitous ARP). Её производят устройства сети с целью:

    • информирования коммутаторов и маршрутизаторов о присутствии/появления устройства в сети;
    • информирования устройств сети о смене сетевых интерфейсов на компьютере;
    • помощи в нахождении конфликтов IP-адресов;
    • обновления ARP-таблиц (например в кластерах).

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

    Это легко произвести на практике.

    В качестве основного инструментария примеров из статьи используется программа Scapy, написанная на языке программирования Python. Предоставляющая среду для высокоуровневого манипулирования пакетами второго и третьего сетевых уровней, их отправку и приём. Все приведённые примеры исполняются внутри данной среды.

    Отравление ARP-кэша

    Чтобы стать транзитной точкой переправки трафика между маршрутизатором и администратором необходимо обоим (трафик же двусторонний) отравить ARP-кэш.

    Посылаемые ARP-запросы имеют настоящий адрес отправителя (то есть сетевой идентификатор адаптера атакующего), но вместо широковещательного адреса получателя указывается конкретное устройство для “отравления”. В качестве IP-адреса источника указывается IP-адрес того, кого необходимо фальсифицировать (то есть для “отравления” кэша администратора необходимо указывать IP-адрес маршрутизатора). В качестве IP-адреса получателя указываются настоящие IP-адреса атакуемого.


    Запускаются две среды Scapy с бесконечным циклом рассылки ARP-запросов:

    начальные необходимые настройки:

    • MAC_ROUTER — MAC-адрес маршрутизатора;
    • MAC_ADMIN — MAC-адрес администратора;
    • IP_ROUTER — IPv4-адрес маршрутизатора;
    • IP_ADMIN — IPv4-адрес администратора.

    Таблица ARP администратора до атаки:

    запуск цикличного (с интервалом 200мс) процесса посылки ARP-запросов на
    маршрутизатор. Теперь трафик предназначающийся для администратора будет
    направляться к атакующему.

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

    Пакеты трафика генерируемого данной командой:

    Таблица ARP администратора после атаки (YY:YY совпадают):

    Получение аутентификационных данных

    Тривиальный пример программы анализа проходящего сквозь сетевой интерфейс Ethernet трафика в целях сбора аутентификационных Telnet
    данных. Цифры слева показывают номер строки исходного кода программы. Пропущенные номера строк остаются пустые.

    Подключение библиотеки Scapy.

    • SEQ_AUTH — байтовая последовательность обозначающая готовность клиента к авторизации на сервере (по
      RFC 1416);
    • SEQ_NEWLINE — байтовая последовательность обозначающая передачу символа перевода строки.
    • AUTHORIZING_IP — IPv4 адрес администратора;
    • ROUTER_IP — IPv4 адрес маршрутизатора.

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

    Данная функция используется для удобочитаемой и обрабатываемой компьютером выдачи собранных авторизационных данных. Выдача производится
    в виде строк формата "login"@"password".

    Это основа всей программы. Данная функция вызывается после принятия каждого пакета и ей в качестве аргумента передаётся “пойманный” Ethernet-пакет. Только небольшая доля трафика является полезной. В следующих строках происходит отсечение ненужных пакетов данных:

    • 26 — не содержащие IPv4 в качестве полезной нагрузки;
    • 28 — идущие не на маршрутизатор;
    • 29 — идущие не от администратора;
    • 30 — не содержащие TCP в качестве полезной нагрузки;
    • 32 — TCP без полезной нагрузки (пустые).

    Данная часть кода в целом не обязательна — она всего-лишь помогает человеку сразу же привести авторизационные данные в удобочитаемый вид. Во время набора пароля, каждый символ сразу же отправляется по TCP-протоколу на сервер. Здесь производится конкатенирование текстовых данных.

    • 34 — началась ли авторизация;
    • 37 — в процессе авторизации;
    • 38 — логин уже введён;
    • 39 — пароль уже введён. Когда ввод пароля заканчивается, то вызывается функция печати авторизационных данных (auth_print()) и производится обнуление состояния программы (state_reset());
    • 43 — закончен ввод пароля;
    • 46 — происходит ввод пароля;
    • 49 — закончен ввод логина;
    • 51 — происходит ввод логина.

    Запуск процесса анализа всех проходящих Ethernet-пакетов по интерфейсу eth0. При этом указывается что каждый пакет необходимо “обработать” функцией telneter().

    Выводы

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

    Противостоять данной атаке можно следующими способами:

    • Не использовать ARP-протокол вообще и ограничиться только статическими записями в локальной ARP-таблице участников сети. Операционная
      система игнорирует ARP запросы и ответы относящиеся к статическим записям;
    • Использовать специализированное программное обеспечение следящее за изменениями MAC-адресов (судя по ARP-пакетам) и обнаруживающее
      неподобающее поведение участников сети. Примером программы-мониторинга может быть следующая (она запоминает все встречающиеся ей пары SHA-SPA и выдаёт сообщение если какой-либо ARP-пакет изменяет их):

    • Настроить работу ядра и демонов операционных систем на игнорирование не ожидаемых ARP-ответов и доверие, например, только первому входящему
      ARP-запросу/ответу;
    • Использование VLAN-ов для разграничения сетевых сегментов второго уровня между собой;
    • Использование виртуальных частных сетей (IPsec, OpenVPN, SSH) для создания изолированной, криптографически защищённой от атак человек-посередине, сети;
    • Использование “умных” коммутаторов и маршрутизаторов, имеющих возможность управления поведением ARP-трафика в сети (например запрет ARP-пакетов у которых SPA совпадает с адресом шлюза/маршрутизатора).

    Защититься от утечки в протоколах пересылающих данные в открытом виде можно следующими способами (Telnet — собирательный образ таких
    протоколов):

    • Физически ограничивать доступ к каналу связи предоставляющему Telnet;
    • Ограничивать доступ на канальном уровне (например VLAN-ами) к порту предоставляющему Telnet;
    • Ограничивать доступ брандмауэром на сетевом уровне к Telnet серверу;
    • Вместо чистого TCP-соединения использовать TLS (Transport Layer Security — безопасность транспортного уровня);
    • Использовать виртуальные частные криптографически защищённые сети для доступа к Telnet серверу;
    • Использовать другой протокол удалённого доступа, криптографически защищённый, такой как Secure Shell (SSH) версии 2 или выше.

    Читайте также:

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

    Copyright © Иммунитет и инфекции