Мы рассмотрели фундаментальные принципы анализа пакетов. Давайте подведем промежуточные итоги и посмотрим, достаточно ли изложенных сведений для проведения анализа пакетов. Ниже представлен краткий перечень вопросов, необходимых для выполнения этого анализа.

■ Определение протокола, использованного при создании вложенного пакета (значение 9-го байта ІР-заголовка).

■ Поиск места окончания заголовка и проверка длины ІР-заголовка.

■ Установление длины вложенного пакета.

На первом этапе исследуется содержание дейтаграммы, чтобы определить протокол, который был использован при создании вложенного пакета. Эту информацию можно получить из 9-го байта ІР-заголовка. Не забывайте о значениях, соответствующих пакетам наиболее популярных протоколов: 01 - для вложенного ІСМР-сообщения, 06-для ТСР-сегмента, шестнадцатеричное 11 (двоичное 17) - для UDP-пакета.

Затем нужно определить длину ІР-заголовка. Как правило, она равна 20 байт, но может быть и больше при наличии параметров. Значение длины ІР-заголовка определяет младший полубайт нулевого байта ІР-заголовка. Не забывайте, что это значение выражается 32-битовым словом, поэтому, чтобы перевести его в байты, нужно умножить найденное значение на 4. Отсчитав полученное количество байтов от начала IP-дейтаграммы, мы определим место окончания ІР-заголовка и начала вложенного пакета.

Затем нужно провести исследование вложенного пакета. Необходимо правильно прочесть информацию его заголовка и преобразовать шестнадцатеричные значения в десятичные. Для UDP-пакета длина заголовка всегда постоянна и равняется 8 байт. Длина заголовка TCP-сегмента бывает различной. Она указывается в старшем полубайте 12-го байта от начала TCP-сегмента. Как и длина ІР-заголовка, она выражается 32-битовым словом и для перевода в байты данное значение нужно умножить на 4. Полученный результат позволяет узнать место окончания TCP-заголовка и начала полезной нагрузки.

Ниже дан пример отчета в шестнадцатеричном формате.

4500 0054 f 23Ь 4000 ffOl dl21 0102 0304

0403 0201 0000 9f00 dS46 0000 Ъ4сЬ 863a

56af 0e00 0809 OaOb OcOd OeOf 1011 1213

1415 1617 1819 lalb lcld lelf 2021 2223

2425 2627 2829 2a2b 2c2d 2e2f 3031 3233

3435 3637 0000 4e00

Давайте разделим исследование этого отчета на два этапа. На первом этапе мы попытаемся определить протокол, использованный для создания вложенного пакета, и длину ІР-заголовка. Выделенное жирным шрифтом значение 0x01 поля 9-го байта от начала ІР-заголовка указывает на вложенное ІСМР-сообщение. В данном случае после ІР-заголовка (его последние 2 байт 02 01) следует эхо-ответ ІСМР. Поскольку длина ІР-заголовка составляет 20 байт, можно найти место начала ІСМР-заголовка (два байт отчета 00 0 0).

На втором этапе нашего исследования рассмотрим заголовок ІСМР-сообщения (рис. 7.2). Не забывайте, что в отчете каждый шестнадцатеричный символ соответствует одному полубайту (4 бит).

Формат заголовка ІСМР-сообщения зависит от типа и кода этого сообщения. Тип и код ІСМР-сообщения указываются в первых двух байтах ІСМР-заголовка. Существует множество вариантов значений этих полей (полный перечень можно получить по адресу www.iana.org/assignments/icmp-protocols). В данном случае мы имеем одну из самых распространенных комбинаций значений: 00 и 00, обозначающую эхо-ответ. Стандартный отчет TCPdump о прохождении исследованного пакета выглядит следующим образом.

1.2.3.4 > 4.3.2.1: icmp: echo reply (DF)

Давайте проанализируем еще один пакет.

4500 0030 dfЗс 4000 8006 633f 0102 0304

0403 0201 оЬ64 0015 48f3 05Ы 0000 0000

7002 2000 50Ь6 0000 0204 05Ь4 0101 0402

В данном случае вложен пакет другого протокола, не ICMP. Наиболее важным является значение порта получателя. Оно позволяет узнать о предназначении этого конкретного пакета. Хотя формат заголовков TCP и UDP пакетов отличается, но общим для заголовков обоих протоколов является хранение в 0-м и 1-м байтах значения порта отправителя, а во 2-м и 3-м байтах - порта получателя.

Рис. 7.2. Формат ICMP-заголовка

Снова размер IP-заголовка равен 20 байт. Но в этом случае выделенное значение поля IP-заголовка указывает, что вложенный пакет является ТСР-сегментом. Жирным шрифтом также выделено шестнадцатеричное значение (0 015) номера порта получателя, указанное во втором и третьем байтах ТСР-заголовка.

Мы определили, что десятичным значением номера порта является 21 (ftp). При этом шестнадцатеричное значение было 0 015. Мы сложили произведения 5*16" и 1*16' и получили искомое значение номера порта получателя.

Таким образом, осуществляется какое-то взаимодействие с использованием службы FTP. В данном случае это только первый этап процедуры согласования параметров соединения, поэтому никаких данных не передается. Тем не менее полезно взглянуть на размер ТСР-заголовка, указанный в старшем бите 12-го байта ТСР-заголовка. Умножив содержащееся там значение 7 на 4, получим размер ТСР-заголовка - 28 байт. Это означает, что установлены какие-то параметры TCP, а изучение стандартного отчета TCPdump дает нам перечень этих параметров: максимальный размер сегмента (mss), два дополнения до 4-байтового значения (пор) и выборочное подтверждение (sackOK).

18:26:48.888088 1.2.3.4.2916 > 4.3.2.1.21: S 122 3 8 86257:1223 88 62 57(0)

Win 8192 <mss 146 0,nop,nop,sackOK> (DF)

Содержимое пакетов | Обнаружение нарушений безопасности в сетях | Бесплатные программы для анализа пакетов


Обнаружение нарушений безопасности в сетях



Новости за месяц

  • Июнь
    2021
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс