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

Ethereal

Анализатор пакетов Ethereal является бесплатным средством, доступным для использования на хостах под управлением UNIX и Windows. Ethereal удобен в использовании и имеет дружественный интерфейс, упрощающий процесс сохранения и анализа пакетов. Ethereal способен обрабатывать отчеты TCPdump в двоичном формате (создаются при использовании параметра командной строки -w),

а также использовать фильтры TCPdump для выборочного сохранения или отображения записей. Особенно полезным свойством Ethereal является возможность анализа сохраненной информации на различных уровнях абстракции.

На рис. 7.3 представлен пример результата использования Ethereal. В верхнем окне выделена одна запись. При этом в среднем окне отображается информация о заголовке кадра, IP- и TCP-заголовке, включая сведения из различных полей этих заголовков. Ethereal способен различать пакеты разных протоколов и интерпретировать передаваемые данные согласно спецификациям и документам RFC этих протоколов.

Рис. 7.3. Отчет Ethereal

Анализатор пакетов <:ср81ю\у

Анализатор пакетов 1ср8Ьо\у упрощает задачу интерпретации значений полей заголовков, позволяет узнать место хранения конкретного поля, вычисляет длины заголовков и преобразует шестнадцатеричные значения в десятичные эквиваленты. Он также старается исследовать передаваемые данные, и, если полезная нагрузка представляет собой символы АБСН, они выводятся на экран. Однако существующие службы наподобие Ке1ВЮ8 имеют дополнительные уровни шифрования передаваемых данных, и отчеты 1ср5Ьо\у в этом случае будут бессмысленными. Фиксируемая длина по умолчанию равна 68 байт, что в большинстве случаев не позволяет сохранить полную дейтагарамму.

Для запуска tcpshow служит следующая команда.

tcpdump -епх tcpshow -nolink

Эта команда позволяет организовать чтение фиксируемых записей TCPdump и передачу их анализатору tcpshow. Набор параметров командной строки TCPdump -епх позволяет фиксировать информацию заголовка кадра (параметр -е), не преобразовывать имена хостов (параметр -п) и выводить отчет в шестнадцатеричном формате (параметр -х). Параметр командной строки -nolink команды tcpshow позволяет не выводить всю информацию заголовка кадров (например МАС-адреса). Ниже представлен пример отчета о передаче ICMP-сообщения.

Packet 1 IP Header

Version: 4

Header Length: 2 0 bytes

Service Type: 0x0 0

Datagram Length: 40 bytes

Identification: 0xB5CB

Flags: MF=off, DF=on

Fragment Offset: 0

TTL: 254

Encapsulated Protocol: ICMP

Header Checksum: 0xB22 9

Source IP Address: 1.2.3.4

Destination IP Address: 4. 3.2.1

ICMP Header

Type: echo-reply

Checksum: ОхВСЭС

ICMP Data

. <Q с.

Как видите, tcpshow оказывает значительную помощь при анализе пакета. Это средство позволяет “расшифровать” IP-заголовок, преобразовать сохраненные значения в байты, а шестнадцатеричные значения - в десятичные, и это далеко не все операции, выполняемые tcpshow. Также предпринимается попытка узнать содержимое заголовка вложенного пакета и вывести его данные. В данном случае ICMP-данные не являются ASCII-символами, и их интерпретация tcpshow не приносит корректного результата.

Параметр -X командной строки TCPdump

В версиях TCPdump после 3.4 доступно использование нового параметра командной строки -X. Он служит для попытки интерпретировать полезную нагрузку вложенного пакета из шестнадцатеричного формата в ASCII-символы. Это действие выполняется для всего пакета, включая и информацию полей, хранящих численные значения. Но в данном случае основная цель - интерпретировать ASCII-данные без применения дополнительных средств, например Ethereal или tcpshow. В приведенном ниже примере представлен отчет TCPdump, созданный при указании в командной строке параметра -X.

17:21:53.457019 1.2.3.4.ftp > 4.3.2.1.1607: Р 1:81(80) ack 1 win 32120 (DF)

[tos 0x10]

0x0000 4510 0078 1691 4000 4006 6b93 0102 0304 E..x..@.@.k.....

0x0010 0403 0201 0015 0647 a940 1471 309a 93ee ...e...G.@.qO...

0x0020 5018 7d78 14fa 0000 3232 3020 7665 7262 P.}x.... 220.verb

0x0030 6f20 4654 5020 7365 7276 6572 2028 5665 0.FTP.server.(Ve

0x0040 7273 696f 6e20 7775 2d32 2e35 2e30 2831 rsion.wu-2.5.0(1

0x0050 2920 5475 6520 5365 7020 3231 2031 363a ).Tue.Sep.21.16:

0x0060 3438 3a31 3220 4544 5420 3139 3939 2920 48:12.EDT.1999).

0x0070 7265 6164 792e OdOa ready...

Обратите внимание на крайнюю справа колонку, там содержится интерпретация данных FTP-пакета. При этом две первые строки этой колонки бессмысленны, так как они соответствуют информации числовых полей заголовка.

Резюме

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

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

Исследование всего пакета | Обнаружение нарушений безопасности в сетях | Исследование полей ip-заголовка


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



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

  • Сентябрь
    2021
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс