Материал: Логико-лингвистические модели атак на компьютерные системы. Остапенко Г.А., Дмитриева Е.Ю

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

-G, --gtk use GTK+ GUI

-D, --daemon daemonize ettercap (no GUI)

Logging options:

-w, --write <file> write sniffed data to pcapfile <file>

-L, --log <logfile> log all the traffic to this <logfile>

-l, --log-info <logfile> log only passive infos to this <logfile>

-m, --log-msg <logfile> log all the messages to this <logfile>

-c, --compress use gzip compression on log files

Visualization options:

-d, --dns resolves ip addresses into hostnames

-V, --visual <format> set the visualization format

-e, --regex <regex> visualize only packets matching this regex

-E, --ext-headers print extended header for every pck

-Q, --superquiet do not display user and password

General options:

-i, --iface <iface> use this network interface

-I, --iflist show all the network interfaces

-n, --netmask <netmask> force this <netmask> on iface

-P, --plugin <plugin> launch this <plugin>

-F, --filter <file> load the filter <file> (content filter)

-z, --silent do not perform the initial ARP scan

-j, --load-hosts <file> load the hosts list from <file>

-k, --save-hosts <file> save the hosts list to <file>

-W, --wep-key <wkey> use this wep key to decrypt wifi packets

-a, --config <config> use the alterative config file <config>

Теперь для осуществления данной атаки необходимо задать параметры и атакуемые узлы:

ettercap -T -M arp -L log /10.137.0.120/ /10.137.0.254/

-T - использовать консольный интерфейс;

-M arp -использовать модуль ARP-spoofing'а для выполнения атаки;

-L log - записывать журнал перехвата в файлы с именем log.*;

Также указываются IP-адреса хостов, против которых будет выполняться атака ARP-spoofing это 10.137.0.120 и 10.137.0.254, 10.137.0.15 – адрес хоста выполняющего атаку.

ARP-таблицы данных атакуемых хостов будут иметь вид:

До атаки

Первый атакуемый хост

arp –a

Интерфейс: 10.137.0.120 --- 0x10004

Адрес IP Физический адрес Тип

10.137.0.254 00-13-49-01-51-4f динамический

10.137.0.15 00-0A-01-D4-D1-E3 динамический

Второй атакуемый хост

arp –a

Интерфейс: 10.137.0.254 --- 0x10004

Адрес IP Физический адрес Тип

10.137.0.120 00-11-D4-01-13-A1 динамический

10.137.0.15 00-0A-01-D4-D1-E3 динамический

Во время атаки

arp –a

Интерфейс: 10.137.0.120 --- 0x10004

Адрес IP Физический адрес Тип

10.137.0.254 00-0A-01-D4-D1-E3 динамический

10.137.0.15 00-0A-01-D4-D1-E3 динамический

arp –a

Интерфейс: 10.137.0.254 --- 0x10004

Адрес IP Физический адрес Тип

10.137.0.120 00-0A-01-D4-D1-E3 динамический

10.137.0.15 00-0A-01-D4-D1-E3 динамический

Если во время атаки отследить путь прохождения пакетов от первого хоста до второго, то он будет таким:

tracert 10.137.0.254

Трассировка маршрута к 10.137.0.254

с максимальным числом прыжков 30:

1 1 ms 1 ms 1 ms 10.137.0.15

2 1 ms 1 ms 1 ms 10.137.0.254

Трассировка завершена.

Как видно, маршрут от первого хоста ко второму лежит, через ложный хост 10.137.0.15.

4.2.1.3 Методы обнаружения

Обнаружение атак данного вида осуществляется различными программными средствами. Например, программной arpwatch. Программа arpwatch отслеживает всю ARP-активность на указанных интерфейсах. Когда она замечает аномалии, например, изменение MAC-адреса при сохранении IP-адреса, или наоборот, она сообщает об этом в syslog и отправляется уведомление об этом администратору сети для принятия решения. Для прослушивания ARP-трафика на локальном ethernet-интерфейсе используется библиотека pcap.

Пример syslog:

Jun 21 08:37:08 s_all@linux2 arpwatch: new station 192.168.15.200 0:a:1:d4:d1:e3 eth0

Jun 21 08:37:08 s_all@linux2 arpwatch: new station 192.168.15.201 0:4:75:75:46:b1 eth0

Jun 21 08:37:09 s_all@linux2 arpwatch: new station 192.168.15.254 0:a:1:d4:d1:39 eth0

Jun 21 08:37:09 s_all@linux2 arpwatch: changed ethernet address 192.168.15.254 0:a:1:d4:d1:e3 (0:a:1:d4:d1:39) eth0

Jun 21 08:37:11 s_all@linux2 arpwatch: ethernet mismatch 192.168.15.254 0:a:1:d4:d1:e3 (0:a:1:d4:d1:39) eth0

Jun 21 08:37:12 s_all@linux2 arpwatch: ethernet mismatch 192.168.15.254 0:a:1:d4:d1:e3 (0:a:1:d4:d1:39) eth0

Jun 21 08:37:13 s_all@linux2 arpwatch: ethernet mismatch 192.168.15.254 0:a:1:d4:d1:e3 (0:a:1:d4:d1:39) eth0

Строка

Jun 21 08:37:09 s_all@linux2 arpwatch: changed ethernet address 192.168.15.254 0:a:1:d4:d1:e3 (0:a:1:d4:d1:39) eth0

сообщает о том, что узел 192.168.15.254 изменил MAC-адрес.

Возможно, это означает, что против узла, на котором запущен arpwatch выполняется ARP-spoofing с целью перехвата трафика, которым он обменивается с узлом 192.168.15.254.

Существуют также аналогичные программы для Windows например XArp. Принцип работы такой же, как и у arpwatch.

Обнаружение узла, выполняющего ARP-spoofing. Если коммутатор управляемый, можно определить, на каком из его портов работает узел, имеющий определённый MAC-адрес.

Например, это можно сделать с помощью скрипта mac2port. Скрипт связывается с коммутатором по SNMP и опрашивает его таблицу соответствия MAC-адресов портам. Полученная информация выдаётся в удобном для поиска виде на стандартный поток вывода. Для упрощения использования скрипт выводит MAC-адреса в таком же формате, как это делает arpwatch.

Условия для использования скрипта:

  1. скрипт должен быть размещён в каталоге /usr/local/bin, или другом каталоге указанном в PATH;

  2. скрипт должен быть исполняемым (chown +x mac2port) или вызываться с интерпретатором perl;

  3. в теле скрипта должен быть указан IP-адрес коммутатора и его SNMP RO community;

  4. коммутатор должен поддерживать SNMP версии 2;

Пример использования скрипта:

%# ./mac2port

0:4:76:a1:ef:bb -> 1

0:a:1:d4:d1:e3 -> 2

0:15:60:79:8e:c0 -> 0

0:4:75:75:46:b1 -> 3

0:a:1:d4:d1:39 -> 44

Если ранее с помощью arpwatch была зафиксирована атака:

Jun 21 08:37:09 s_all@linux2/192.168.15.201 arpwatch: changed ethernet address 192.168.15.254 0:a:1:d4:d1:e3 (0:a:1:d4:d1:39) eth0

можно воспользоваться скриптом, и определить с какого порта коммутатора она производилась (при этом не имеет значения, истинный ли это MAC-адрес сетевой карты атакующего или он был изменён):

%# mac=$(cat /var/log/daemon.log | grep 'changed ethernet address' | awk '{print $10}')

%# ./mac2port | grep $mac

0:a:1:d4:d1:e3 -> 2

Важно чтобы определение выполнялось быстро, пока информация об атакующем компьютере ещё хранится в памяти коммутатора [8].

Для этого имеет смысл вызывать скрипт поиска автоматически при обнаружении соответствующей записи в системном журнале. Анализ журнала можно выполнять, например, такими средствами как swatch или syslog-ng.

4.2.1.4 Методы противодействия

Для предотвращения атаки необходимо вмешательство администратора или внешней системы. В первом случае между обнаружением и реакцией администратора может пройти очень много времени. Во втором вмешательство не требуется, реакция выполняется автоматически: как только ARP-аномалия зафиксирована, определяется порт коммутатора, к которому подключён источник аномалии, и порт блокируется до выяснения. Однако, такой подход имеет большой недостаток - он может быть использован для выполнения DOS атаки: достаточно только узнать MAC адрес компьютера, который надо отключит от сети, и сымитировать атаку с этого компьютера. Дальше наша система обнаружения и предотвращения ARP-spoofing'а все сделает сама.

В основе рассматриваемых способов противодействия ARP-атакам лежат два совершенно разных принципа, каждый из которых обладает как достоинствами, так и недостатками.

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

Если не отключать использование ARP на сетевых интерфейсах, MAC-адрес заданный статически имеет приоритет. Если MAC-адрес для какого-то IP-адреса не задан, используется ARP-запрос [55].

Метод ручного формирования ARP-таблиц имеет следующие недостатки:

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

- клиентские узлы остаются по-прежнему уязвимыми к ARP-spoofing'у.

Патчи ядра системы. Существует патч для ядер Linux/FreeBSD, который позволяет свести к минимуму опасность успешного выполнения атаки ARP-spoofing против пропатченных систем.

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

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

При обнаружении подозрительной ситуации («двойника») ядро выводит сообщение: "ARP_ANTIDOTE: Possible MITM attempt!", и не обновляет запись ARP-кеша, а наоборот, прописывает старую запись как статическую. После того как источник атаки выявлен и обезврежен, статическую запись можно удалить.

Этот метод не применим к Windows-системам, и другим системам, работающим под управлением ОС, исходный код которых недоступен.

Необходимо решить проблему кардинально: нужно так построить сеть, чтобы выполнение ARP-spoofing'а в ней было принципиально невозможно. А если возможным, то бесполезным.

Это можно сделать двумя способами:

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

- Сделать так чтобы все, абсолютно все, передаваемые в сети данные были зашифрованы и прослушивание этих данных, ни к чему бы не привело. Любое же изменение данных, в случае возникновения, сразу же обнаружено. То есть, фактически сеть должна быть такой же и безопасной при использовании вместо коммутатора концентратора.

Первый способ делается с помощью VLAN'ов. Второй - с помощью PPPoE.

Использование VLAN. Компьютер C может использовать ARP-spoofing против компьютера A только в том случае, если они находятся в одной сети канального уровня. В том случае, если они разделены маршрутизатором, атака невозможна (возможна атака на маршрутизатор, но это совсем другое дело).

VLAN'ы помогают сегментировать сеть - превратить одну сеть в множество изолированных на канальном уровне фрагментов, которые соединены между собой маршрутизатором. Атака ARP-spoofing возможна только между компьютерами находящимися в одном VLAN'е. В наиболее крайнем случае, когда в каждом VLAN'е находится только два компьютера: собственно компьютер и маршрутизатор, атака ARP-spoofing становится невозможной в принципе. Такая организация сети являются очень требовательной к ресурсам маршрутизатора и используется редко [55].

Преимущества:

- От клиента ничего не требуется. Он работает, как и работал. Если IP-адрес задан статически, необходима смена IP-адреса и сетевой маски.

- Данные не шифруются, и производительность не теряется. Малые потери на дополнительные поля в заголовке.

- Нельзя организовать обмен данными в обход шлюза между узлами в разных VLAN'ах. Если каждый узел находится в собственном VLAN'е такой обмен невозможен вообще.

Недостатки:

- Необходима поддержка VLAN'ов коммутатором.

- Необходимо потратить время на настройку VLAN'ов, дополнительную настройку DHCP'сервера.

- Данные не шифруются. Если их прослушивание каким-то образом удастся, то они могут быть прочтены и/или модифицированы.

Использование PPPoE. PPPoE (Point-to-point protocol over Ethernet) — сетевой протокол передачи кадров PPP через Ethernet. Предоставляет дополнительные возможности такие как: аутентификация, сжатие, шифрование.

PPPoE - это туннелирующий протокол, который позволяет инкапсулировать IP, или другие протоколы, которые наслаиваются на PPP, через соединения Ethernet, но с программными возможностями PPP соединений, и поэтому используется для виртуальных «звонков» на соседнюю Ethernet-машину и устанавливает соединение точка-точка, которое используется для транспортировки IP-пакетов, работающее с возможностями PPP.

Это позволяет применять традиционное PPP-ориентированное ПО для настройки соединения, которое использует не последовательный канал, а пакетно-ориентированную сеть (как Ethernet), чтобы организовать классическое соединение с логином, паролем для Интернет-соединений. Также, IP-адрес по другую сторону соединения назначается только когда PPPoE соединение открыто, позволяя динамическое переиспользование IP адресов.

Работа PPPoE осуществляется следующим образом. Существует Ethernet-среда, то есть несколько соединённых сетевых карт, которые адресуются MAC-адресами. Заголовки Ethernet-пакетов содержат адрес отправителя пакета, адрес получателя пакета и тип пакета. Одну из карт слушает PPPoE сервер. Клиент посылает широковещательный Ethernet пакет, на который должен ответить PPPoE сервер (адрес отправителя пакета - свой MAC-адрес, адрес получателя пакета - FF:FF:FF:FF:FF:FF и тип пакета - PPPoE Discovery). PPPoE сервер посылает клиенту ответ (адрес отправителя пакета - свой MAC-адрес, адрес получателя пакета - МАС-адрес клиента и тип пакета - PPPoE Discovery). Если в сети несколько PPPoE серверов, то все они посылают ответ. Клиент выбирает подходящий сервер и посылает ему запрос на соединение. Сервер посылает клиенту подтверждение с уникальным идентификатором сессии, все последующие пакеты в сессии будут иметь этот идентификатор. Таким образом, между сервером и клиентом создается виртуальный канал, который идентифицируется идентификатором сессии и MAC-адресaми клиента и сервера. Затем в этом канале поднимается PPP соединение, а уже в PPP пакеты упаковывается IP-трафик.

Преимущества:

- Данные шифруются.

- Нет никаких требований к железу. Даже не обязательно чтобы сеть была коммутируемой.

Недостатки:

- На клиенте требуется настройка доступа по PPPoE. На некоторых системах требуется инсталляция специального клиентского программного обеспечения.

- За счёт потерь на инкапсуляцию, снижается производительность сети. Если выполняется шифрование данных, то временные потери увеличиваются.

- При взаимном согласии сторон можно организовать обмен данными между узлами в обход шлюза.

- При большом количестве соединений PPPoE (>200) возрастает нагрузка на центральный процессор сервера. Иногда, приходится жертвовать шифрованием данных.

Источник: https://studfile.net/preview/16563007/