Рисунок 2.26 – Выбор протокола для эксплуатации уязвимости
Теперь выбираем вид атаки после нажатия x (рисунок 2.27). Возможно 4 варианта атаки:
0 – посылка RAW пакетов (данную опцию можно использовать для того, чтобы узнать адрес DHCP-сервера);
1 – посылка DISCOVER пакетов (опция, используемая для атаки заполнения пула адресов, выдаваемых DHCP сервером – DHCP Starvation);
2 – создание поддельного DHCP-сервера;
3 – посылка RELEASE пакетов (данную опцию можно использовать для того, чтобы заставить хосты пройти заново регистрацию на DHCP-сервере, и при наличии поддельного DHCP сервера сменить сетевые параметры хостов на нужные злоумышленнику параметры).
Рисунок 2.27 – Выбор вида атаки
Выбираем пункт 1. Атака запущена. До запуска атаки DHCP-сервером было выдано 5 IP-адресов (рисунок 2.28).
Рисунок 2.28 – Пул выданных IP-адресов до начала атаки
После реализации атаки пул доступных адресов был заполнен (рисунок 2.29).
Рисунок 2.29–Пул выданных IP-адресов после атаки
Данная атака позволила заполнить весь пул адресов и не дать новым устройствам получить IP-адрес от DHCP сервера. Теперь возможно создание поддельного DHCP сервера для того, чтобы новые устройства могли получать настройки для сетевых адаптеров, удобные для злоумышленника. Останавливаем атаку DHCP Starvation нажатием l. Затем нажимает x для выбора пункта 2.
На рисунке 2.30 представлено поле для настройки поддельного DHCP-сервера.
Рисунок 2.30 – Настройка поддельного DHCP-сервера
Конфигурация DHCP-сервера:
Server ID — IP сервера, от имени которого будут отправляться ответы DHCP (192.168.2.1);
Start IP — начальный IP-адрес диапазона адресов, выдаваемых клиентам (192.168.2.200);
End IP — конечный IP-адрес диапазона адресов, выдаваемых клиентам (192.168.2.250);
Lease Time (secs) — время в секундах, на которое выдается адрес (1000 сек);
Renew Time (secs) — время в секундах, через сколько клиент должен продлить аренду адреса (1000 сек);
Subnet Mask — маска подсети для клиентов (255.255.255.0);
Router — адрес маршрутизатора, выдаваемый клиентам (192.168.2.105, адрес поддельного маршрутизатора);
DNS Server — DNS сервер, выдаваемый клиентам (192.168.2.105, адрес поддельного DNS сервера);
Domain — имя домена в локальной сети (rogue.local).
Нажимаем Enter для запуска поддельного DHCP-сервера. Теперь новые хосты должны получать настройки от поддельного DHCP-сервера.
К сожалению, в ходе реализации атаки стало ясно, что поддельный DHCP-сервер не успевает прислать DHCP-ответ раньше настоящего DHCP-сервера. Рассмотрим еще один способ организации подмены DHCP-сервера. Для этого используем утилиту Ettercap.
Ettercap - это бесплатный инструмент для организации атак типа MiTM в локальной сети. Он может использоваться для анализа протоколов компьютерной сети и аудита безопасности. Он работает на различных Unix-подобных операционных системах, включая Linux, Mac OS X, BSD и Solaris, а также в Microsoft Windows. Ettercap способен перехватывать трафик в сегменте сети, захватывать пароли и проводить активное подслушивание по нескольким общим протоколам [16].
Также необходимо изменить схему эксперимента. В схему введем новое устройство – абонентский терминал ONT NTE-RG1402G-W. Данный шаг сделан с целью усложнения схемы проведения эксперимента и отдаления DHCP-сервера от виртуальных машин. На рисунке 2.31 представлена измененная схема проведения эксперимента.
Рисунок 2.31 – Измененная схема проведения эксперимента
На рисунке 2.32 представлено главное меню утилиты Ettercap. Также использование утилиты Ettercap возможно в консольном режиме.
Рисунок 2.32 – Главное меню утилиты Ettercap
Для старта сканирования необходимо выбрать сетевой интерфейс для сканирования. Нажимаем пункт Sniff -> Untitled sniffing и выбираем необходимый сетевой интерфейс. Затем необходимо выбрать тип атаки в пункте меню Mitm. Выбираем подпункт DHCP spoofing. Программа, к сожалению, дает возможность подмены DHCP сервера только для одного хоста. Однако для подтверждения теории о быстрой работе DHCP сервера в простой сети этого будет достаточно. На рисунке 2.33 представлено поле настройки для реализации поддельного DHCP сервера.
Рисунок 2.33 – Настройка поддельного сервера в программе Ettercap
Атака началась. Теперь любое устройство теоретически при DHCP-запросе должно получить конфигурацию от ложного DHCP-сервера. Однако, согласно информации, полученной в результате сканирования интерфейса, атака неудачна (рисунок 2.34).
Рисунок 2.34 – Сканирование интерфейса eth0
Вывод – для реализации угрозы DHCP spoofing требуется гораздо усложненная схема (по сравнению со схемами на рисунках 2.23 и 2.31). Тогда возможен успешный исход проведения реализации угрозы DHCP spoofing.
2.5 Выводы к главе 2
По главе 2 можно сделать следующие выводы:
для реализации выбранных угроз в данной главе был представлен порядок постановки и порядок настройки защиты от следующих угроз канального уровня модели OSI:
ARP spoofing;
MAC spoofing;
переполнение CAM таблицы;
DHCP Starvation;
для угрозы DHCP spoofing был представлен только порядок моделирования угрозы, ввиду того, что данная атака не смогла быть осуществлена ввиду недостаточной сложности схемы проведения эксперимента, не позволившей имитировать необходимые для реализации данной угрозы задержки;
в таблице 2.1 представлены методы защиты от реализованных видов угроз.
Таблица 2.1 – Способы защиты от реализованных угроз
Название угрозы
|
Способы защиты
|
Итоги
|
ARP spoofing
|
ARP Inspection
|
ARP Inspection позволяет атакуемому обнаружить нападение и увидеть данные о злоумышленнике.
ARP Inspection не предотвращает атаку ARP spoofing
|
MAC spoofing
|
Статические записи в таблице коммутации
|
Статические записи соответствия позволяют предотвратить атаку подмены MAC-адреса
|
Переполнение CAM таблицы
|
Port Security
|
Port Security позволяет задать лимит числа MAC-адресов, закрепленных за портом коммутатора. Атака переполнения CAM таблицы предотвращается
|
DHCP Starvation
|
Port Security
|
Port Security позволяет задать лимит числа MAC-адресов, закрепленных за портом коммутатора, тем самым предотвращая атаку DHCP Starvation
|
DHCP spoofing
|
------
|
Функция безопасности, имеющаяся в коммутаторе (DHCP snooping) не проверена ввиду неудачной реализации атаки DHCP spoofing.
|
3 Разработка моделей угроз уровней L3 и L4 модели OSI и методов защиты
3.1 Постановка задачи
В данной работе реализуются три угрозы, относящиеся к сетевому и транспортному уровням модели OSI. Это угрозы ICMP flood, UDP flood и SYN flood. Все три угрозы будут реализованы при помощи утилиты hping3 на базе ОС Kali Linux.
Целью всех трех угроз является увеличение загрузки центрального процессора коммутатора и увеличение времени обработки пакетов, поступивших от легитимных пользователей. Так как все три угрозы можно отнести к типу атак DoS, то конечной целью этих атак является вывод коммутатора из строя. Однако ввиду того, что атаки ведутся с ноутбука, то вероятность такого исхода атаки крайне мала.
На рисунке 3.1 приведена схема проведения экспериментов по реализации всех трех угроз. В схеме присутствуют следующие устройства: коммутатор MES3124F, виртуальные машины №1 и №2, устройство злоумышленника.
Рисунок 3.1 – Схема проведения экспериментов
3.2 Разработка модели угрозы ICMP flood
Для реализации атаки используем утилиту hping3. Hping3 - это сетевой инструмент, способный отправлять пользовательские пакеты TCP / IP и отслеживать ответы, так же как программа ping. Используя hping3, возможно выполнить:
тестирование правил firewall;
расширенное сканирование портов;
проверка производительности сети, используя различные протоколы, размер пакетов, ToS и фрагментацию;
передача файлов даже через самые строго настроенные firewall;
аудит стека TCP/IP и многое другое.
Для запуска атаки достаточно ввести ниже представленную команду.
root@kali:~# hping3 –q –n –id 0 --icmp –d 56 –flood 192.168.2.1 –rand-source
Синтаксис команды:
-q —quiet отключение вывода всей информации за исключением стартовой и финишной строки.;
-n– numeric отключение преобразования IP-адресов в символьные имена;
--icmp – режим отправки ICMPпакетов. По умолчанию происходит отправка ICMP echo-request, возможно установление другого типа/кода ICMP пакетов, используя опции –icmptype и --icmpcode;
–d 56 - размер пакета, отправляемого на атакуемый хост;
--flood – указание быстрой отправки пакетов;
192.168.2.1 – IP-адрес атакуемого хоста;
--rand-source – подмена IP-адреса источника.
На рисунке 3.2 представлен ход атаки, наблюдаемый с помощью программы Wireshark. В ходе атаки центральный процессор коммутатора был загружен на 15-20 %.
Рисунок 3.2 – Ход атаки ICMPflood
3.3 Разработка модели угрозы UDP flood
Для реализации атаки UDP flood также используем утилиту hping3. Как и в случае реализации атаки ICMP flood для старта атаки достаточно ввести одну команду, представленную ниже.
root@kali:~# hping3 –q –n --udp –s 53 --keep –p 68 –flood 192.168.2.1 –rand-source
Синтаксис команды:
-q —quiet отключение вывода всей информации за исключением стартовой и финишной строки.;
-n– numeric отключение преобразования IP-адресов в символьные имена;
--udp – режим отправки UDPсегментов;
–s 53–порт источника;
-p 68 – порт назначения;
--flood – указание быстрой отправки пакетов;
192.168.2.1 – IP-адрес атакуемого хоста;
--rand-source – подмена IP-адреса источника.
На рисунке 3.3 представлен ход атаки, наблюдаемый в ходе сканирования сети программой Wireshark. Можно сделать вывод, что атака успешна.
Рисунок 3.3 – Сканирование сети при ходе атакиUDPflood
Также стоит отметить факт, что при атаке UDP flood с одного хоста процент загрузки центрального процессора коммутатора равнялся 11 %. Можно сделать вывод, что при одновременной атаке с 10 – 12 компьютеров центральный процессор коммутатора будет загружен на 100 % для обработки ложных пакетов. При этом пакеты, посылаемые от других хостов, будут обрабатываться с большой задержкой.
3.4 Настройка защиты от угроз ICMP flood и UDP flood
Для защиты от угроз ICMP flood и UDP flood воспользуемся списками ACL. ACL (Access Control List – список контроля доступа) – таблица, которая определяет правила фильтрации входящего трафика на основании передаваемых в пакетах протоколов, TCP/UDP портов, IP-адресов или МАС-адресов.
Создадим список доступа, в котором запишем разрешающие и запрещающие правила.
console# configure
console(config)# ip access-list extended security list
console(config-ip-al)#
Важно отметить следующий факт. При добавлении хоть одного правила в список ACL автоматически добавляется запись deny any any any, которая означает игнорирование всех пакетов, неудовлетворяющих условиям ACL.
Укажем правила для протоколов ARP, IP, ICMP, UDP, TCP, которые будут разрешать прохождение пакетам, отправленным с локальных устройств сети (192.168.2.0/24), на любые адреса.
console(config-ip-al)# permit ip 192.168.2.0 0.0.0.255 192.168.2.0 0.0.0.255
console(config-ip-al)# permit arp 192.168.2.0 0.0.0.255 192.168.2.0 0.0.0.255
console(config-ip-al)# permit icmp 192.168.2.0 0.0.0.255 192.168.2.0 0.0.0.255
console(config-ip-al)# permit udp 192.168.2.0 0.0.0.255 192.168.2.0 0.0.0.255
console(config-ip-al)# permit tcp 192.168.2.0 0.0.0.255 192.168.2.0 0.0.0.255
3.5 Разработка модели угрозы SYN flood и методов защиты
Для реализации угрозы SYN flood используем hping3. Как и в случаях реализации угроз ICMP flood и UDP flood, реализовать угрозу возможно путем ввода команды, приведенной ниже.
root@kali:~# hping3 –с 10000 –d 120 –S –w 64 –p 21 --flood --rand-source 192.168.2.1
Синтаксис команды:
hping3 – имя утилиты;
-c 10000 – количество пакетов для отправки;
-d 120 – размер каждого пакета, отправляемого на атакуемый хост;
-S – отправка только пакетов SYN;
-w 64 – размер окна TCP;
-p 21 – порт назначения (21 – порт FTP). Возможно использование любого порта;
--flood – указание быстрой отправки пакетов;
--rand-source – подмена IP-адреса источника;
192.168.2.1 – IP-адрес атакуемого хоста.
Результаты атаки можно проследить при помощи сканирования сети через tcpdump или Wireshark (рисунок 3.4).
Рисунок 3.4 – Отправка TCP-сегментов на хост 192.168.2.1
При выводе загрузки центрального процессора на коммутаторе можно было увидеть, что процент загрузки центрального процессора 13 %. Из этого можно сделать вывод, что при организации одновременной атаки с 9 - 10 компьютеров центральный процессор гарантированно будет загружен на 100 %.
В качестве защиты от угрозы SYN flood возможно использование ACL (команда для задания правила прохождения TCP сегментов приведена в пункте 3.3). Также возможно использование еще одной команды из списка класса команд для защиты от DoS-атак. В классе команд для защиты от некоторых распространённых видов DoS атак имеется команда, позволяющая задать порог SYN-запросов на определенный IP-адрес или все адреса, при превышении которого лишние фреймы будут отбрасываться [13].
Данная команда используется при конфигурации интерфейсов, поэтому в режиме конфигурации интерфейсов gi1/0/15 и gi1/0/16 вводим ниже представленную команду.
console(config-if)# security-suite dos syn-attack 20 any
Стоит отметить факт, что при задании порога нужно ориентироваться на объем TCP трафика, проходящего в локальной сети.
На рисунке 3.5 представлена информация о загрузке центрального процессора коммутатора во время атаки SYN flood.Процент загрузки процессора во время атаки SYN flood уменьшился до трех процентов.
|