Фрагментация пакетов и система обнаружения вторжений (IDS), часть 1

Опубликовано: 11 Апреля, 2023

Фрагментация пакетов и система обнаружения вторжений (IDS), часть I

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

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

  • Фрагроутер
  • Метасплоит Фреймворк
  • Фыркнуть
  • tcpdump.exe

Fragrouter будет использоваться в качестве нашего основного инструмента фрагментации пакетов в этой статье, но мы также рассмотрим встроенные возможности фрагментации Metasploit Framework. Эти фрагментированные атаки будут проверены на Snort IDS, и, наконец, мы будем использовать анализатор пакетов tcpdump.exe для сбора пакетов.

Что мы сейчас сделаем в первой части серии статей, так это настроим нашу тестовую лабораторию, чтобы мы могли использовать fragrouter. Во-первых, нам нужно добавить новый маршрут на компьютер с Windows 2000 Pro (W2K), с которого мы будем запускать атаки. Маршрутизатор, который нам нужно добавить, — это тот, что все пакеты, отправляемые на наш компьютер-жертву W2K, должны проходить через блок SuSE, на котором запущен fragrouter. Таким образом, эксплойт, отправленный через атакующий компьютер, сначала будет отправлен на блок SuSE, на котором работает fragrouter, для фрагментации, а затем будет перенаправлен на компьютер-жертву. Поскольку это объяснение может быть немного запутанным, давайте взглянем на диаграмму ниже.

Изображение 25008
фигура 1

Поскольку fragrouter требует, чтобы он выступал в качестве посредника, мы должны использовать этот тип макета. Теперь мы продолжим и добавим изменение маршрута, как показано на диаграмме ниже.

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

Изображение 25009
фигура 2

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

Теперь нам нужно настроить наш компьютер-жертву. Вам нужно будет скачать Snort и установить его вместе с winpcap. Snort должен устанавливаться по умолчанию в корень вашего диска C, и winpcap также установится без проблем. Если вы собираетесь использовать последнюю версию Snort, обязательно загрузите и правила. Более новые версии Snort больше не поставляются с правилами, и вам нужно будет загрузить их отдельно. После того, как вы загрузили правила, скопируйте папку с правилами в основной каталог Snort, как показано ниже. Там уже будет папка с правилами. Просто удалите его и добавьте туда папку с только что скачанными правилами.

Изображение 25010
Рисунок 3

Теперь один ключевой момент, который я должен упомянуть здесь, заключается в том, что в конечном итоге мы хотим увидеть, как выглядит наш фрагментированный трафик, когда он попадает на компьютер-жертву. Для этого нам нужно установить tcpdump из MicroOLAP. Эта программа позволит нам перехватывать и позже проверять пакеты по мере их поступления на наш компьютер-жертву. Важно показать теорию на практике, поскольку это поможет закрепить извлеченные уроки. Именно поэтому мы рассмотрим фрагментированные пакеты. Это поможет нам распознать их такими, какие они есть, если мы столкнемся с ними в какой-то момент в будущем, и, скорее всего, так и будет. Есть еще компьютер SuSE, который нам нужно настроить. Вам понадобится установленный на нем fragrouter, а также его зависимости. Все это должно быть в папке, которую вы загружаете. После загрузки вам нужно будет перейти в каталог fragrouter и установить его с помощью следующих команд:



Это было довольно просто и прямолинейно. Теперь вам нужно будет вызвать fragrouter с помощью следующей команды «./fragrouter -F1». Это даст вам самую простую настройку для fragrouter, которую мы вскоре будем использовать. Теперь у нас есть все части на месте, за исключением каких-либо психических проблем с моей стороны. Тогда давайте попробуем фрагментировать пакеты.

На шоу

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

Изображение 25011
Рисунок 4

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

Изображение 25012
Рисунок 5

Все готово? Тогда давайте к этому. Ниже показан снимок экрана, на котором Metasploit получает оболочку на компьютере-жертве. Получив доступ к оболочке, перейдите на компьютер жертвы и остановите Snort. Выполните «control c», чтобы остановить его в командной строке DOS, в которой он работает.

Изображение 25013
Рисунок 6

Как только вы остановили Snort, вернитесь к атакующему компьютеру и нажмите «session::break». Это разорвет связь между атакующим компьютером и жертвой. Наконец, давайте также остановим fragrouter, снова выполнив «control c» в окне термина, в котором он работает. Теперь нам нужно взглянуть на вывод Snort, чтобы увидеть, что он обнаружил, если вообще что-нибудь обнаружил. Давайте посмотрим на скриншот ниже.

Изображение 25014
Рисунок 7

Мой экземпляр Snort зарегистрировал семь элементов и два предупреждения. Интересен фрагмент данных под «Статистика действий». Всего во время нашего сеанса атаки был отправлен 271 фрагментированный IP-пакет. Это довольно большое количество фрагментов по сравнению с нулевым количеством фрагментированных пакетов, которые я видел при использовании Metasploit Framework на компьютере-жертве. Без использования fragrouter в качестве посредника для установления эталона у меня было намного меньше. Теперь давайте посмотрим, что Snort на самом деле регистрирует как предупреждения. Пожалуйста, смотрите скриншот ниже.

Изображение 25015
Рисунок 8

Snort обнаружил атаку как два случая «попытки привязки удаленной активации NETBIOS DCERPC», что на самом деле и было атакой. Я использовал эксплойт MS03-026, нацеленный на TCP-порт 135. Теперь мы знаем, что наша попытка «простой» фрагментации обойти Snort с треском провалилась. Это повод для радости, так как мы действительно надеемся, что современные IDS поймают такую общую попытку фрагментации.

Заворачивать

Во второй части мы пошли дальше и настроили параметры нашей лаборатории VMware, чтобы мы могли использовать fragrouter для фрагментации нашей атаки на компьютер-жертву. Это было сделано для того, чтобы посмотреть, поймает ли современная IDS, такая как Snort, нашу попытку фрагментации. Snort действительно увидел наши попытки фрагментации. Однако у Fragrouter есть еще несколько хитростей в рукаве, помимо простой атаки фрагментации, которую мы использовали. Во второй части мы познакомимся с более изощренными атаками фрагментации и посмотрим, как работает Snort. Увидимся во второй части.