Петухов Олег, юрист в области международного права и защиты персональных данных, специалист в области информационной безопасности, защиты информации и персональных данных. Телеграм-канал: https://t.me/zashchitainformacii Группа в Телеграм: https://t.me/zashchitainformacii1 Сайт: https://legascom.ru Электронная почта: online@legascom.ru #защитаинформации #информационнаябезопасность ARP spoofing (ARP Cache poisoning) - это атака, используемая для прослушивания сети, построенной на коммутаторах. ARP (англ. Address Resolution Protocol - протокол определения адреса) – использующийся в компьютерных сетях протокол низкого уровня, предназначенный для определения адреса канального уровня по известному адресу сетевого уровня. Суть этой атаки заключается в следующем. Злоумышленник посылает ложные ARP-пакеты, для того чтобы убедить компьютер жертвы в том, что прослушивающий компьютер и есть конечный адресат. Далее пакеты с компьютера жертвы перехватываются и пересылаются реальному получателю, MAC-адрес отправителя в них подменяется, чтобы ответные пакеты тоже шли через прослушивающий компьютер. Прослушивающий компьютер становится «шлюзом» для трафика жертвы, и злоумышленники получают возможность прослушивать трафик, осуществляя атаку «человек посередине». Стоит отметить, что при попытке прослушать трафик нескольких активно общающихся компьютеров и, соответственно, возникающем при этом переполнении APR-таблиц возможна перегрузка и, как следствие, падение сети. Это, помимо прочего, чревато обнаружением атаки. Также стоит отметить, что данная атака может быть реализована только при наличии доступа в локальную сеть. То есть злоумышленнику, находящемуся за пределами локальной сети, не удастся осуществить ARP Spoofing. Для реализации этой атаки ему придется сначала захватить контроль над одной из машин, находящейся в корпоративной локальной сети, а уже потом с этой машины осуществлять отравление ARP-кеша. Согласитесь, не самый простой способ реализации атаки. Проведем небольшую практическую работу по реализации ARP-спуфинга. Итак, какие у нас будут исходные данные. Имеется несколько компьютеров, подключенных к коммутатору. Нам необходимо перехватить трафик, который передается между этими машинами. Если мы воспользуемся утилитой tcpdump, описанной ранее, мы сможем увидеть только пакеты, идущие от или к нашей машине. Согласитесь, не очень информативно. Для того чтобы прослушать трафик, идущий к другим хостам, нам необходимо произвести «отравление» ARP кеша. Для решения этой задачи нам потребуются специальные сниферы. В нашем примере мы воспользуемся утилитой ettercap Это приложение имеет редакции как под Windows-, так и под *nix-платформы. Перехват может быть осуществлен аж тремя способами. И если стандартные MAC- и IP-варианты нас не особо интересуют, то ARP poisoning based sniffing является именно той функцией, которая нам необходима. При этом никаких усилий для ее применения не требуется: вся настройка сводится к указанию прослушиваемых машин в destination и source. Являясь посредником, можно не только перехватывать сетевые пакеты, но и, используя средства ettercap’а, удалять или даже модифицировать их. Отдельно стоит отметить функцию перехвата паролей, идущих по зашифрованным SSH1-, SSH2- и SSL/HTTPS-протоколам. Для ее применения необходимо запускать программу со специальными фильтрами (например, для ssh так: ettercap -F etter.filter.ssh). Теперь, собственно, практика. Для того чтобы прослушать трафик, которым обмениваются машины 192.168.1.2 и 192.168.1.254, необходимо выполнить следующую команду: root@kali : # ettercap -T -M arp -L log /192.168.1.2/ /192.168.1.254/ Опции означают: -T – использовать текстовый (консольный) интерфейс; -M arp - использовать модуль ARP-spoofing’а для выполнения атаки; -L log - записывать журнал перехвата в файлы с именем log.*. В качестве аргументов указываются IP-адреса машин, против которых нужно выполнять атаку ARP-spoofing. Результат работы данной утилиты выводится на экран и записывается в текстовый файл. Для того чтобы остановить логирование, необходимо нажать q. Прерывать работу утилиты другими способами (например, Ctrl-Z) крайне нежелательно, так как тогда ARP-таблицы тех двух машин останутся отравленными. А поскольку программа-посредник ettercap уже не будет функционировать, то связь между хостами пропадет, что будет выглядеть очень подозрительно. Для просмотра перехваченного трафика можно воспользоваться утилитой etterlog. Файл лога по умолчанию именуется log.eci. Вот так, например, могут выглядеть перехваченные учетные данные к почтовому ящику электронной почты по протоколу POP 3. etterlog log.eci etterlog NG-0.7.3 copyright 2001-2004 ALoR & NaGA Log file version : NG-0.7.3 Timestamp : Thu Jan 21 12:23:11 2012 Type : LOG_INFO 1698 tcp OS fingerprint 7587 mac vendor fingerprint 2183 known services ================================================== IP address : 192.168.15.2 MAC address : 00:04:75:75:46:B1 ... MANUFACTURER : Sohoware DISTANCE : 0 TYPE : LAN host FINGERPRINT : OPERATING SYSTEM : UNKNOWN PORT : TCP 110 | pop-3 [] ACCOUNT : user / password (192.168.15.2) ================================================== Рассмотрим также работу данной утилиты с графическим интерфейсом. Для этого необходимо выполнить команду ettercap –G Затем нам следует выбрать тип перехвата трафика Unified или Bridged. Первый производит простой перехват трафика, в то время как второй предназначен для вмешательства в процесс передачи трафика. Выберем unified. Далее указываем используемый сетевой интерфейс. Можно указывать как проводной, так и беспроводной вариант. Потом нам необходимо определиться с тем, у кого мы хотим перехватывать трафик. Для этого нужно просканировать сеть на наличие активных узлов. Для запуска сканирования выбираем Hosts, далее Scan for hosts. Получаем список активных узлов с IP- и MAC-адресами. Выбираем нужный узел и нажимаем Add To Target 1. В этом окне еще имеется кнопка Add To Target 2. В случае если мы хотим перехватывать только трафик между двумя конкретными узлами из списка, необходимо указать второй узел и нажать Add To Target 2. А если мы хотим перехватывать весь трафик для данного узла, то второй узел выбирать не надо. Затем запускаем сканирование, нажав Start, Start Sniffing. Далее завершаем процесс отравления ARP, выбрав MITM / ARP Poisoning. Опция Sniff Remote Connections должна быть включена. Затем уже в Wireshark можно осуществлять перехват трафика по аналогии с тем, как мы это делали ранее. По окончании сбора пакетов в Ettercap необходимо отключить ARP poison, нажав Start / Stop sniffing. Злоумышленник, попав в сеть, может осуществить атаку типа «человек посередине, MitM», то есть попытаться стать посредником между легальными узлами. С помощью MitM можно реализовать много различных атак, связанных не только с прослушиванием, но и с модификацией проходящего трафика. Но в контексте темы мы реализуем перехват паролей, заодно познакомившись еще с парой полезных утилит из состава Kali Linux. Итак, будем считать, что мы знаем, какие узлы сейчас активны в сети. Так как машина злоумышленника выступает в роли посредника, для начала нам необходимо разрешить пересылку IP-пакетов (ip forwarding). Сделать это можно следующим образом: echo 1 > /proc/sys/net/ipv4/ip_forward Теперь нужно осуществить ARP spoofing (то есть подмену MAC-адресов для определенных IP-адресов). Машина злоумышленника будет посредником между шлюзом по умолчанию и локальной сетью. Если адрес шлюза 192.168.1.1, а наш адрес 192.168.1.100, то для подмены нам необходимо выполнить следующее. arpspoof –t 192.168.1.1 192.168.1.100 Утилита arpspoof как раз предназначается для подмены MAC-адресов. Для корректной работы ARP spoofing необходимо сделать подмену и в обратную сторону. arpspoof –t 192.168.1.100 192.168.1.1 Далее нам нужно начать перехват трафика. Правда, в отличие от предыдущих примеров, здесь мы будем перехватывать, а вернее отображать не весь трафик, а только пароли от различных приложений. Для этого мы воспользуемся утилитой dsniff. root@kali:~# dsniff --------------- 05/21/00 10:49:10 bob -> unix-server (ftp) USER bob PASS dontlook --------------- 05/21/00 10:53:22 karen -> lax-cisco (telnet) karen supersecret --------------- 05/21/00 11:01:11 karen -> lax-cisco (snmp) [version 1] private В результате работы мы перехватили несколько паролей. Dsniff позволяет перехватывать пароли, отправленные методом HTTP, POST-данные, HTTP Basic and Digest authentications, FTP, IRC, POP, IMAP, SMTP, NTLMv1/v2 (HTTP, SMB, LDAP и т. п.). Для предотвращения ARP-spoofing можно воспользоваться утилитой arpwatch. Эта утилита позволяет зафиксировать атаку, однако она должна быть запущена на обеих атакуемых машинах, иначе злоумышленник может попытаться осуществить одностороннюю атаку. Кроме того, arpwatch только фиксирует атаку, но не предотвращает ее. Для предотвращения необходима разработка дополнительных сценариев и обработчиков событий. Одним из возможных способов защиты является использование статического ARP. ARP-таблицу можно сформировать вручную, при этом она становится не уязвимой к ARP-атакам. Для этого нужно добавить необходимые MAC-адреса в таблицу. Если при этом отключить использование ARP на сетевых интерфейсах, то доступны будут только те системы, (1) MAC-адреса которых добавлены в ARP-таблицу нашего узла и (2) наш MAC-адрес добавлен в ARP-таблицы узлов, с которыми производится обмен трафиком. Если не отключать использование ARP на сетевых интерфейсах, MAC-адрес, заданный статически, имеет приоритет. Если MAC-адрес для какого-то IP-адреса не задан, используется ARP-запрос. Другими методами борьбы с ARP-spoofing’ом является использование шифрования, а также применение виртуальных локальных сетей VLAN. Компьютер злоумышленника может использовать ARP-spoofing против компьютера жертвы только в том случае, если они находятся в одной сети канального уровня. В том случае если они разделены маршрутизатором, атака невозможна (возможна атака на маршрутизатор, но это совсем другое дело). VLAN’ы помогают сегментировать сеть − превратить одну сеть во множество изолированных на канальном уровне фрагментов, которые соединены между собой маршрутизатором. Атака ARP-spoofing возможна только между компьютерами, находящимися в одном VLAN’е. В наиболее крайнем случае, когда в каждом VLAN’е находится только два компьютера: собственно компьютер и маршрутизатор, − атака ARP-spoofing становится невозможной в принципе. К сожалению, такая организация сети является очень требовательной к ресурсам маршрутизатора и используется редко. Одной из основных причин непопулярности данного способа защиты является потребность поддержки VLAN коммутаторами, а также необходимость затраты времени на дополнительные настройки сетевого оборудования.
Компания ЛЕГАС: адвокат, юрист, жалобы в ЕСПЧ
ARP-spoofing.
Петухов Олег, юрист в области международного права и защиты персональных данных, специалист в области информационной безопасности, защиты информации и персональных данных.
Телеграм-канал: https://t.me/zashchitainformacii Группа в Телеграм: https://t.me/zashchitainformacii1 Сайт: https://legascom.ru Электронная почта: online@legascom.ru #защитаинформации #информационнаябезопасность
ARP spoofing (ARP Cache poisoning) - это атака, используемая для прослушивания сети, построенной на коммутаторах.
ARP (англ. Address Resolution Protocol - протокол определения адреса) – использующийся в компьютерных сетях протокол низкого уровня, предназначенный для определения адреса канального уровня по известному адресу сетевого уровня.
Суть этой атаки заключается в следующем. Злоумышленник посылает ложные ARP-пакеты, для того чтобы убедить компьютер жертвы в том, что прослушивающий компьютер и есть конечный адресат. Далее пакеты с компьютера жертвы перехватываются и пересылаются реальному получателю, MAC-адрес отправителя в них подменяется, чтобы ответные пакеты тоже шли через прослушивающий компьютер. Прослушивающий компьютер становится «шлюзом» для трафика жертвы, и злоумышленники получают возможность прослушивать трафик, осуществляя атаку «человек посередине».
Стоит отметить, что при попытке прослушать трафик нескольких активно общающихся компьютеров и, соответственно, возникающем при этом переполнении APR-таблиц возможна перегрузка и, как следствие, падение сети. Это, помимо прочего, чревато обнаружением атаки.
Также стоит отметить, что данная атака может быть реализована только при наличии доступа в локальную сеть. То есть злоумышленнику, находящемуся за пределами локальной сети, не удастся осуществить ARP Spoofing. Для реализации этой атаки ему придется сначала захватить контроль над одной из машин, находящейся в корпоративной локальной сети, а уже потом с этой машины осуществлять отравление ARP-кеша. Согласитесь, не самый простой способ реализации атаки.
Проведем небольшую практическую работу по реализации ARP-спуфинга.
Итак, какие у нас будут исходные данные.
Имеется несколько компьютеров, подключенных к коммутатору. Нам необходимо перехватить трафик, который передается между этими машинами. Если мы воспользуемся утилитой tcpdump, описанной ранее, мы сможем увидеть только пакеты, идущие от или к нашей машине. Согласитесь, не очень информативно. Для того чтобы прослушать трафик, идущий к другим хостам, нам необходимо произвести «отравление» ARP кеша. Для решения этой задачи нам потребуются специальные сниферы.
В нашем примере мы воспользуемся утилитой ettercap Это приложение имеет редакции как под Windows-, так и под *nix-платформы.
Перехват может быть осуществлен аж тремя способами. И если стандартные MAC- и IP-варианты нас не особо интересуют, то ARP poisoning based sniffing является именно той функцией, которая нам необходима. При этом никаких усилий для ее применения не требуется: вся настройка сводится к указанию прослушиваемых машин в destination и source.
Являясь посредником, можно не только перехватывать сетевые пакеты, но и, используя средства ettercap’а, удалять или даже модифицировать их. Отдельно стоит отметить функцию перехвата паролей, идущих по зашифрованным SSH1-, SSH2- и SSL/HTTPS-протоколам. Для ее применения необходимо запускать программу со специальными фильтрами (например, для ssh так: ettercap -F etter.filter.ssh).
Теперь, собственно, практика. Для того чтобы прослушать трафик, которым обмениваются машины 192.168.1.2 и 192.168.1.254, необходимо выполнить следующую команду:
root@kali : # ettercap -T -M arp -L log /192.168.1.2/ /192.168.1.254/
Опции означают:
-T – использовать текстовый (консольный) интерфейс;
-M arp - использовать модуль ARP-spoofing’а для выполнения атаки;
-L log - записывать журнал перехвата в файлы с именем log.*.
В качестве аргументов указываются IP-адреса машин, против которых нужно выполнять атаку ARP-spoofing.
Результат работы данной утилиты выводится на экран и записывается в текстовый файл. Для того чтобы остановить логирование, необходимо нажать q.
Прерывать работу утилиты другими способами (например, Ctrl-Z) крайне нежелательно, так как тогда ARP-таблицы тех двух машин останутся отравленными. А поскольку программа-посредник ettercap уже не будет функционировать, то связь между хостами пропадет, что будет выглядеть очень подозрительно.
Для просмотра перехваченного трафика можно воспользоваться утилитой etterlog. Файл лога по умолчанию именуется log.eci.
Вот так, например, могут выглядеть перехваченные учетные данные к почтовому ящику электронной почты по протоколу POP 3.
etterlog log.eci
etterlog NG-0.7.3 copyright 2001-2004 ALoR & NaGA
Log file version : NG-0.7.3
Timestamp : Thu Jan 21 12:23:11 2012
Type : LOG_INFO
1698 tcp OS fingerprint
7587 mac vendor fingerprint
2183 known services
==================================================
IP address : 192.168.15.2
MAC address : 00:04:75:75:46:B1
...
MANUFACTURER : Sohoware
DISTANCE : 0
TYPE : LAN host
FINGERPRINT :
OPERATING SYSTEM : UNKNOWN
PORT : TCP 110 | pop-3 []
ACCOUNT : user
/ password
(192.168.15.2)
==================================================
Рассмотрим также работу данной утилиты с графическим интерфейсом. Для этого необходимо выполнить команду
ettercap –G
Затем нам следует выбрать тип перехвата трафика Unified или Bridged. Первый производит простой перехват трафика, в то время как второй предназначен для вмешательства в процесс передачи трафика. Выберем unified. Далее указываем используемый сетевой интерфейс. Можно указывать как проводной, так и беспроводной вариант.
Потом нам необходимо определиться с тем, у кого мы хотим перехватывать трафик. Для этого нужно просканировать сеть на наличие активных узлов. Для запуска сканирования выбираем Hosts, далее Scan for hosts. Получаем список активных узлов с IP- и MAC-адресами. Выбираем нужный узел и нажимаем Add To Target 1. В этом окне еще имеется кнопка Add To Target 2. В случае если мы хотим перехватывать только трафик между двумя конкретными узлами из списка, необходимо указать второй узел и нажать Add To Target 2. А если мы хотим перехватывать весь трафик для данного узла, то второй узел выбирать не надо.
Затем запускаем сканирование, нажав Start, Start Sniffing. Далее завершаем процесс отравления ARP, выбрав MITM / ARP Poisoning. Опция Sniff Remote Connections должна быть включена.
Затем уже в Wireshark можно осуществлять перехват трафика по аналогии с тем, как мы это делали ранее.
По окончании сбора пакетов в Ettercap необходимо отключить ARP poison, нажав Start / Stop sniffing.
Злоумышленник, попав в сеть, может осуществить атаку типа «человек посередине, MitM», то есть попытаться стать посредником между легальными узлами. С помощью MitM можно реализовать много различных атак, связанных не только с прослушиванием, но и с модификацией проходящего трафика. Но в контексте темы мы реализуем перехват паролей, заодно познакомившись еще с парой полезных утилит из состава Kali Linux.
Итак, будем считать, что мы знаем, какие узлы сейчас активны в сети. Так как машина злоумышленника выступает в роли посредника, для начала нам необходимо разрешить пересылку IP-пакетов (ip forwarding). Сделать это можно следующим образом:
echo 1 > /proc/sys/net/ipv4/ip_forward
Теперь нужно осуществить ARP spoofing (то есть подмену MAC-адресов для определенных IP-адресов). Машина злоумышленника будет посредником между шлюзом по умолчанию и локальной сетью. Если адрес шлюза 192.168.1.1, а наш адрес 192.168.1.100, то для подмены нам необходимо выполнить следующее.
arpspoof –t 192.168.1.1 192.168.1.100
Утилита arpspoof как раз предназначается для подмены MAC-адресов.
Для корректной работы ARP spoofing необходимо сделать подмену и в обратную сторону.
arpspoof –t 192.168.1.100 192.168.1.1
Далее нам нужно начать перехват трафика. Правда, в отличие от предыдущих примеров, здесь мы будем перехватывать, а вернее отображать не весь трафик, а только пароли от различных приложений. Для этого мы воспользуемся утилитой dsniff.
root@kali:~# dsniff
---------------
05/21/00 10:49:10 bob -> unix-server (ftp)
USER bob
PASS dontlook
---------------
05/21/00 10:53:22 karen -> lax-cisco (telnet)
karen
supersecret
---------------
05/21/00 11:01:11 karen -> lax-cisco (snmp)
[version 1]
private
В результате работы мы перехватили несколько паролей.
Dsniff позволяет перехватывать пароли, отправленные методом HTTP, POST-данные, HTTP Basic and Digest authentications, FTP, IRC, POP, IMAP, SMTP, NTLMv1/v2 (HTTP, SMB, LDAP и т. п.).
Для предотвращения ARP-spoofing можно воспользоваться утилитой arpwatch. Эта утилита позволяет зафиксировать атаку, однако она должна быть запущена на обеих атакуемых машинах, иначе злоумышленник может попытаться осуществить одностороннюю атаку. Кроме того, arpwatch только фиксирует атаку, но не предотвращает ее. Для предотвращения необходима разработка дополнительных сценариев и обработчиков событий.
Одним из возможных способов защиты является использование статического ARP. ARP-таблицу можно сформировать вручную, при этом она становится не уязвимой к ARP-атакам. Для этого нужно добавить необходимые MAC-адреса в таблицу.
Если при этом отключить использование ARP на сетевых интерфейсах, то доступны будут только те системы, (1) MAC-адреса которых добавлены в ARP-таблицу нашего узла и (2) наш MAC-адрес добавлен в ARP-таблицы узлов,
с которыми производится обмен трафиком.
Если не отключать использование ARP на сетевых интерфейсах, MAC-адрес, заданный статически, имеет приоритет. Если MAC-адрес для какого-то IP-адреса не задан, используется ARP-запрос.
Другими методами борьбы с ARP-spoofing’ом является использование шифрования, а также применение виртуальных локальных сетей VLAN.
Компьютер злоумышленника может использовать ARP-spoofing против компьютера жертвы только в том случае, если они находятся в одной сети канального уровня. В том случае если они разделены маршрутизатором, атака невозможна (возможна атака на маршрутизатор, но это совсем другое дело).
VLAN’ы помогают сегментировать сеть − превратить одну сеть во множество изолированных на канальном уровне фрагментов, которые соединены между собой маршрутизатором. Атака ARP-spoofing возможна только между компьютерами, находящимися в одном VLAN’е. В наиболее крайнем случае, когда в каждом VLAN’е находится только два компьютера: собственно компьютер и маршрутизатор, − атака ARP-spoofing становится невозможной в принципе. К сожалению, такая организация сети является очень требовательной к ресурсам маршрутизатора и используется редко.
Одной из основных причин непопулярности данного способа защиты является потребность поддержки VLAN коммутаторами, а также необходимость затраты времени на дополнительные настройки сетевого оборудования.