Читать онлайн Техника и технология атак злоумышленников в распределенных информационных системах. Часть 2. Атакуем и продолжаем рекогносцировку. SQL injection бесплатно
© Иван Андреевич Трещев, 2023
© Наталья Андреевна Гулина, 2023
ISBN 978-5-0062-0059-3 (т. 2)
ISBN 978-5-0055-1062-4
Создано в интеллектуальной издательской системе Ridero
Введение
Мы живем в эпоху резкого увеличения числа угроз безопасности и преступлений в сфере информационных технологий. Ежедневно появляются все новые записи в банке данных угроз безопасности ФСТЭК России и CVE. Уязвимости в программном обеспечении, аппаратном обеспечении, социальная инженерия – все это механизмы доступные злоумышленникам при атаках на информационные системы. Специалист по защите информации должен быть в тренде современных подходов и методологий проведения атак и понимать возможные вектора с использованием которых хакеры или другие наавторизованные субъекты могут попытаться получить доступ к информации ограниченного распространения. В данной книге сделана попытка обобщить опыт проведения атак и сделать обзор технологий и методов их реализации.
Удаленные сетевые атаки
Введение
Удалённая сетевая атака – информационное разрушающее воздействие на распределённую вычислительную систему (ВС), осуществляемое программно по каналам связи.
Задачи:
– Познакомится с атаками, представленными в списке;
– Реализовать каждую атаку, используя OS Kali Linux и необходимое сетевое оборудование;
Таблица 1 – Виды атак
1 MAC-Spoofing
1.1 Описание
Суть данной атаки заключается в подмене MAC-адреса на сетевой карте компьютера, что позволяет ему перехватывать пакеты, адресованные другому устройству, находящемуся в том же широковещательном домене.
1.2 Реализация
Посмотрим атаку на практике. Использовать будем следующую топологию, построенную в GNS3:
Рисунок 1.1 – Сетевая топология для проведения атаки MAC-Spoofing
Посмотрим на таблицу MAC-адресов на коммутаторе (рисунок 1.2).
Рисунок 1.2 – Таблица MAC-адресов на коммутаторе ESW1
Пусть наш компьютер пытается получить доступ на сервис knastu.ru посредством ICMP-запросов (рисунок 1.3).
Рисунок 1.3 – Пинг knastu.ru
В это время злоумышленник подменивает на своем сетевом интерфейсе MAC-адрес на тот, которые совпадает с компьютером жертвы (рисунок 1.4)
Рисунок 1.4 – Смена MAC-адреса атакующего на MAC-адрес жертвы
Вновь взглянем на CAM-таблицу коммутатора (рисунок 1.5)
Рисунок 1.5 – Теперь MAC-адрес жертвы присвоен интерфейсу атакующего
В таблице MAC-адресов коммутатора запись с атакованным MAC-адресом соотнесена с интерфейсом, на котором в последний раз был идентифицирован кадр с данным source MAC-адресом. Как результат, до поступления кадра с атакуемого устройства, все данные коммутатор, в соответствии со своей таблицей MAC-адресов, будет пересылать на атакующее устройство.
Теперь, если злоумышленник начнет генерировать трафик, то некоторые пакеты, адресованные жертве, будут приходить на сетевой интерфейс атакующего. Посмотрим, как злоумышленник может перехватывать трафик, адресованный жертве (рисунок 1.6).
Рисунок 1.6 – Перехват трафика
Как можно заметь из рисунка 1.6 злоумышленник имеет адрес 192.168.1.101 на сетевом интерфейсе, однако на него все равно приходят пакеты, адресованные 192.168.1.100. Причем, если пакет попал на сетевой интерфейс злоумышленника, то жертва получает сообщение Request timed out.
Теперь вернем MAC-адрес на прежний (рисунок 1.7).
Рисунок 1.7 – Возвращаем обратно MAC-адрес
Как можно увидеть данная атака выполняется очень легко, посредством всего двух утилит.
1.3 Защита
Защитится от данной атаки можно так же просто, как и реализовать ее. Для этого на интерфейсе коммутатора достаточно включить port-security. К сожалению, из-за ограничений GNS3 (невозможность работы обычного коммутатора, а замена его на EtherSwitch) команда port-security не может быть продемонстрирована на практике (листинг 1.1).
Листинг 1.1 – Настройка port-security на интерфейсе коммутатора
2 MAC-flooding
2.1 Описание
У таблицы MAC-адресов есть следующие особенности:
– Максимальный размер таблицы ограничен в зависимости от коммутатора и колеблется от нескольких сотен до 100 тысяч записей.
– Для отслеживания старых записей используется специальный таймер. Каждый раз, когда через коммутатор передается пакет с определенным MAC-адресом источника, таймер для соответствующей записи в таблице обнуляется. Если некоторый узел долгое время не передает данные, запись с его MAC-адресом удаляется из таблицы.
Идея атаки MAC-flooding заключается в отправке большого количества ARP-ответов на коммутатор, что приводит к перегрузке CAM-таблицы коммутатора.
2.2 Реализация
Для реализации будем использовать топологию, как и в предыдущем задании. В качестве инструмента отравления CAM-таблицы коммутатора воспользуемся утилитой Kali Linux под названием macof.
Macof заполняет CAM-таблицу менее чем за минуту или около того, поскольку он посылает огромное количество записей MAC примерно 155 000 в минуту, если быть точным.
Использование чрезвычайно просто. Все, что нам нужно сделать, это выполнить команду «macof» из нашего терминала. Этот инструмент уже установлен во всех версиях Kali Linux.
Взглянем на таблицу MAC-адресов коммутатора до атаки (рисунок 2.1).
Рисунок 2.1 – Таблица MAC-адресов до атаки
Теперь воспользуемся утилитой macof и отравим ее (рисунки 2.2 – 2.4).
Рисунок 2.2 – Использование утилиты macof
Рисунок 2.3 – пакеты, посылаемые злоумышленником
Рисунок 2.4 – Отравленная CAM-таблица на коммутаторе
Как можно увидеть из рисунков выше отравление таблицы происходит путем генерирования большого количества запросов с разными IP- и MAC-адресами, причем количество этих запросов огромно и все MAC-адреса привязываются к интерфейсу, к которому подключен злоумышленник (в нашем случае Fa1/2).
Как только CAM-таблица была заполнена, мы можем открыть Wireshark и начать захват трафика. По умолчанию Wireshark настроен на захват трафика в неразборчивом режиме, однако он нам не нужен, так как коммутатор перешел в режим концентратора, а значит трафик уже неразборчивый.
Следует заметить сходство с атакой ARP-poisoning, ведь при атаке ARP-poisoning, протокол ARP всегда будет доверять тому устройству, от которого исходил ответ. Из-за этого недостатка в дизайне коммутатор никоим образом не может проверить, что ARP-ответ был отправлен с доверенного устройства.
Из-за этого изъяна злоумышленник имеет возможность отправить поддельный ARP-ответ на любой компьютер в сети, чтобы заставить его поверить, что определенный IP-адрес связан с определенным MAC-адресом, тем самым отравляя ARP-кэш коммутатора, который сопоставляет IP-адреса с MAC-адресами.
Таким образом, эти две атаки, то есть ARP-poisoning и MAC-flooding, связаны с протоколом ARP.
Чтобы узнать больше о macof, наберем «macof -h», что покажет все возможные варианты (рисунок 2.5).
Рисунок 2.5 – Команда macof – h
Отсюда видно, что, например, с параметром -n можно задать количество генерируемых запросов, а параметром -d можно задать IP-адрес назначения (рисунок 2.6).
Рисунок 2.6 – Выполнение команды macof с параметрами
Теперь пусть PC-1 попытается пройти аутентификацию на некотором сайте, а злоумышленник – перехватить данные, необходимые для авторизации на ресурсе (рисунки 2.7 – 2.8)
Рисунок 2.7 – Пользователь аутентифицируется на ресурсе
Если аутентификация проходит по открытому протоколу, то используя сниффер можно перехватить учетные данные пользователя.
Как можно увидеть данная атака реализуется даже проще, чем MAC-spoofing, всего 1-й командой. Теперь рассмотрим главные методы защиты от нее.
2.3 Защита
Одними из главных контрмер против атаки типа MAC-flooding являются:
– Port Security – запрещает нескольким MAC-адресам присоединятся к одному порту (установка статического MAC-адреса).
– Реализация протокола 802.1X – позволяет применять правила фильтрации пакетов, выпускаемые централизованным сервером AAA, на основе динамического обучения клиентов.
– Фильтрация MAC — Ограничивает количество MAC-адресов на коммутаторе.
3 ARP-spoofing
3.1 Описание
Протокол ARP
Протокол ARP предназначен для преобразования IP-адресов в MAC-адреса. Познакомиться с протоколом можно в соответствующем RFC.
3.2 Реализация атаки
Для реализации данной атаки воспользуемся сетевой топологией из предыдущего задания и утилитой Ettercap, которая доступна в репозиториях Kali Linux.
Целью данной атаки будет попытка атакующего вклиниться в канал передачи данных от PC-1 до R1. Таким образом атакующий будет иметь доступ ко всему трафику, который получает и отправляет жертва.
Взглянем на ARP-таблицу на PC-1 (рисунок 3.2).
Рисунок 3.2 – ARP-таблица на компьютере жертвы
Как можно заметить IP-адрес шлюза закреплен за MAC-адресом роутера. Посмотрим на аналогичную таблицу на маршрутизаторе (рисунок 3.3).
Рисунок 3.3 – ARP-таблица коммутатора
Все данные совпадают с тем, что мы увидели на PC-1. Теперь воспользуемся программой Ettercap и проведем ARP-spoofing атаку. Можно использовать консольный интерфейс, но мы воспользуемся графической оболочкой (рисунки 3.4 – 3.5).
Листинг 3.1 – Открытие графической оболочки ettercap
Рисунок 3.4 – Начальная настройка Ettercap
Рисунок 3.5 – Главное окно Ettercap
Запустим сканирование сети, чтобы определить хосты внутри сети (рисунки 3.6 – 3.7).
Рисунок 3.6 – Трафик после нажатия кнопки сканирования
Рисунок 3.7 – Список обнаруженных хостов в сети
Как можно увидеть из рисунка 3.6 Ettercap выполняет сканирование сети, путем отправки широковещательных запросов для каждого IP-адреса. Диапазон IP-адресов для запросов вычисляется на основе IP-адреса и маски сети, которые прописаны на выбранном интерфейсе. Однако следует заметить, что в графе отправитель указан MAC-адрес злоумышленника, поэтому, чтобы в настоящей атаке скрыть свое присутствие следует сменить MAC-адрес на используемом интерфейсе утилитой macchanger.
Теперь выберем 2 цели, против которых собираемся проводить атаку ARP-spoofing (рисунок 3.8)
Рисунок 3.8 – Выбор целей
Последовательность выбора на имеет значение. Чтобы проверить, какие цели были выбраны выбираем «Ettercap Menu – Targets – Current Targets» (рисунок 3.9)
Рисунок 3.9 – Выбранные цели
Далее в меню «MITM menu» выбираем атаку ARP poisoning… и прослушиваем весь трафик (рисунки 3.10 – 3.11).
Рисунок 3.10 – Выбор MITM атаки
Рисунок 3.11 – Подтверждение
Теперь просмотри трафик, сгенерированный Ettercap (рисунок 3.12)
Рисунок 3.12 – Отравление ARP-таблиц
Как можно увидеть компьютер злоумышленника отсылает 2 ARP-пакета. В первом утверждается, что IP-адрес 192.168.1.100 теперь привязан к MAC-адресу злоумышленника. Второй пакет повторяет то же самое с IP-адресом 192.168.1.1.
Посмотрим теперь на ARP-таблицы на PC-1 и R1 (рисунки 3.13 – 3.14).
Рисунок 3.13 – Отравленная ARP-таблица на PC-1
Рисунок 3.14 – Отравленная ARP-таблица на R1
Атака прошла успешно. Теперь компьютер жертвы верит, что IP-адрес маршрутизатора привязан к MAC-адресу злоумышленника, а маршрутизатор верит, что IP-адрес PC-1 привязан к MAC-адресу злоумышленника.
Теперь злоумышленник прослушивает весь трафик между PC-1 и роутером. Для того, чтобы отобразить текущее соединение в Ettercap откройте «Ettercap Menu – View – Connections» (рисунок 3.15).
Рисунок 3.15 – Трафик между атакованными хостами
Чтобы просмотреть подробнее какой-либо пакет достаточно просто кликнуть по строке 2 раза.
Теперь пусть PC-1 аутентифицируется на некотором сайте, а злоумышленник попытается перехватить данные (рисунки 3.16 – 3.18).
Рисунок 3.16 – Пользователь аутентифицируется на ресурсе
В ettercap так же будут видны данные пользователя при использовании открытых протоколов.
После окончание атаки обязательно нажимайте на кнопку «Stop MITM», чтобы закрыть все атаки и восстановить все отравленные ARP-таблицы до их исходного состояния, чтобы замести следы.
За счет наличия графического интерфейса данная атака выполняется очень легко. Теперь рассмотрим методы для противодействия атаке ARP-spoofing.
- 4 DHCP-spoofing
- 4.1 Описание
DHCP позволяет устройствам автоматически получать конфигурацию сети при подключении к сетевому интерфейсу (обычно при загрузке).
Эта конфигурация обычно включает, помимо прочего, IP-адрес, присваиваемый устройству, доменное имя DNS и IP-адрес маршрутизатора по умолчанию, сервера DNS и сервера имен NetBIOS.
4.2 Реализация
В этом задании топология немного изменится по сравнению с предыдущими (рисунок 4.2).
Рисунок 4.2 – Сетевая топология для атаки DHCP-spoofing
DHCP-сервер сконфигурирован на роутере. Его пул приведен на рисунке. Как и в прошлом задании для проведения атаки воспользуемся утилитой Ettercap.
Посмотрим настройки сетевого интерфейса на PC-1 (рисунок 4.3).
Рисунок 4.3 – Настройки сетевого интерфейса на PC-1
DHCP-сервер выдал нашему компьютеру адрес 192.168.1.102. Теперь атакующий запускает на своем компьютере Ettercap и производить атаку DHCP-spoofing (рисунок 4.4 – 4.6).
Рисунок 4.4 – Выбор DHCP-spoofing
Рисунок 4.5 – Ввод параметров
Рисунок 4.6 – DHCP-spoofing запущен
Заметим, что мы не выбираем цели для атаки, так как, по сути, мы разворачиваем свой DHCP-сервер, а поэтому у нас нет конкретных целей для атаки.
Рассмотрим поподробнее параметры на рисунке 4.5:
– Пустой диапазон IP-адресов: Ettercap будет подделывать только ACK-сообщения. Если в это поле вписать диапазон адресов, например, 192.168.1.50—192.168.1.99, то Ettercap будет отсылать сообщения OFFER.
– 255.255.255.0: маска сети.
– 192.168.1.1: адрес DNS-сервера (это значение бессмысленно, но этот аргумент обязателен).
Теперь, когда ложный сервер запущен представим ситуацию, что пользователь PC-1 только включил свой компьютер в начале рабочего дня и попытался получить адрес от DHCP-сервера. Посмотрим на трафик в этот момент времени (рисунок 4.7)
Рисунок 4.7 – Процесс получение нового адреса от DHCP-сервера
Сначала Ettercap обнаружил широковещательное сообщение DISCOVER, но, поскольку мы не указали диапазон IP-адресов, он не реагировал на него.
Затем Ettercap обнаружил широковещательное сообщение REQUEST, содержащее IP-адрес, выделенный законным сервером DHCP, и отреагировало, отправив поддельный ACK клиенту с нашим настроенным адресом маршрутизатора.
В зависимости от удачи, атакующему может потребоваться попытаться второй или даже третий раз, прежде чем преуспеть (в реальной жизни будет несколько компьютеров, загружающихся вместе в начале рабочего дня, поэтому есть много шансов на успешный перехват).
Если по какой-то причине Ettercap систематически проигрывает гонку против DHCP-сервера, перенастройте DHCP-spoofing на отправку OFFER-сообщений.
Рисунок 4.8 – Сетевые настройки на PC-1
Рисунок 4.9 – Логи Ettercap
Теперь вновь попробуем аутентифицироваться на сайте (рисунки 4.10 – 4.12).
Рисунок 4.10 – Пользователь аутентифицируется на ресурсе
Рисунок 4.11 – Перехваченные пакеты
Как видно из всего вышесказанного данная атака тоже является достаточно несложной. Теперь рассмотрим методы защиты от нее.
- 5 DHCP Starvation
- 5.1 Описание
Для реализации DHCP DISCOVER flood можно воспользоваться функциональностью утилиты Yersinia. Yersinia предлагает функциональность DHCP DISCOVER flood, однако не следует путать эту атаку с фактической атакой DHCP Starvation, поскольку эффект от этой атаки является гораздо более временным (это может быть или не быть преимуществом, в зависимости от того, что вы пытаетесь достичь).
5.2 Реализация
Посмотрим состояние сетевого интерфейса на компьютере PC-1 и состояние пула DHCP до начала атаки (рисунки 5.1 – 5.2).
Рисунок 5.1 – Состояние сетевого интерфейса на PC-1 до атаки
Рисунок 5.2 – DHCP-пул роутера до атаки
На интерфейсе PC-1 находится адрес 192.168.1.189, выданный из DHCP-пула INTRANET.
Теперь запустим Yersinia (рисунок 5.3).
Рисунок 5.3 – Внешний вид графического интерфейса утилиты Yersinia
По умолчанию в программе включен MAC-spoofing. Чтобы его отключить зайдите в меню «Options».
Первым делом определим адрес DHCP-сервера в сети. Для этого выберем меню «Launch attack – DHCP – sending RAW packet» и подтвердите выбор (рисунок 5.4).
Рисунок 5.4 – Посылка одного DHCP-пакета
Программа отправила широковещательный DISCOVER запрос и в ответ получила OFFER от DHCP-сервера. Благодаря этому мы узнали адрес DHCP-сервера в сети. В Wireshark ситуация аналогичная (рисунки 5.5 – 5.6).
Рисунок 5.5 – RAW пакет DHCP
Рисунок 5.6 – Оправка RAW пакета DHCP
Обратите внимание на то, что MAC-адрес отправителя благодаря встроенному MAC-spoofing не совпал ни с исходным MAC-адресом злоумышленника, ни с тем, на который мы его сменили.
Хорошо, адрес DHCP-сервера получен, запускаем DHCP DISCOVER flood, чтобы никто не мог получить IP-адрес от легитимного DHCP-сервера (рисунки 5.7 – 5.8).
Рисунок 5.7 – Запуск DHCP DISCOVER flood
Рисунок 5.8 – Атака DHCP DISCOVER flood
Заметим, что у каждого пакета уникальный MAC-адрес, благодаря MAC-spoofing.
Воспользуемся топологией, предложенной в предыдущем задании и ОС Kali Linux на машине атакующего.
Посмотрим на пул DHCP на роутере в нашей сети (рисунок 5.9)
Рисунок 5.9 – Пул INTRANET на R1
Как можно заметить из всего пула занят только 1 адрес. Он принадлежит нашей жертве (рисунок 5.10).
Рисунок 5.10 – Настройки сетевого интерфейса на PC-1
Давайте сымитируем ситуацию, что PC-1 еще не включен, а поэтому он не зарезервировал за собой адрес и проведем атаку DHCP Starvation при помощи DHCPig (рисунки 5.11 – 5.12)
Рисунок 5.11 – Начало атаки
Рисунок 5.12 – Трафик во время атаки
Как можно увидеть генерируется полностью вся DHCP-сессия и каждый раз DHCP-сервер выдает новый адрес устройству.
После нескольких минут атаки посмотрим на DHCP-пул на роутере (рисунок 5.13).
Рисунок 5.13 – Все адреса пула заняты
Теперь пусть жертва включает свой компьютер и пытается получить IP-адрес (рисунок 5.14).
Рисунок 5.14 – PC-1 пытается получить адрес, но не может
Как итог, пользователь не может получить выход в интернет и продолжать свою работу, а значит атака прошла успешно.
Теперь посмотрим на методы защиты от данной атаки.
5.3 Защита
В качестве меры защиты, как и при прошлой атаке, необходимо использовать механизм DHCP snooping.
6 DHCP Starvation и DHCP-spoofing
6.1 Описание
Данное задание является совокупностью двух предыдущих.
Сначала необходимо выполнить DHCP Starvation, а затем развернуть свой поддельный DHCP-сервер.
6.2 Реализация
В данном задании воспользуемся 4-мя утилитами:
– Macchanger – для смены MAC-адреса на компьютере атакующего;
– DHCPig – для атаки DHCP Starvation;
– Metasploit – для разворачивания поддельного DHCP-сервера и выполнения атаки MITM;
– Wireshark – для анализа трафика сети.
Топология остается такая же, как и в предыдущем задании. На компьютере злоумышленника установлена ОС Kali Linux со всеми перечисленными выше утилитами.
Посмотри состояние сетевого интерфейса на компьютере PC-1 и состояние пула DHCP до начала атаки (рисунки 6.1 – 6.2).