Инструментальные средства обеспечения безопасности

       

Режим дампа на диске


Если вы хотите контролировать некоторые виды деятельности в течение длительного периода времени, намного легче использовать режим дампа на диске. В этом режиме вы теряете многие из свойств "легкого использования" диалогового режима, но получаете возможность записывать эту деятельность в файл в определенных форматах, который позволяет вам запустить анализатор сетевых потоков (sniffer), оставить его работающим в течение дня и затем позже анализировать полученный журнал (logfile). Хакеры или системные администраторы могли бы даже писать скрипты для создания отчетов на основе выходных файлов анализатора.

Так же как и в диалоговом режиме, командная строка для режима дампа на диске в качестве первого параметра содержит номер устройства вашего интерфейса (полученный при первом выполнением команды buttsniff -l). Второй параметр - это имя файла, который вы хотите использовать в качестве журнала регистрации. Третья опция - вид файла регистрации, который вы хотите получить. Для этой опции возможны три варианта: raw (r) (необработанный), encapsulation (e) (инкапсулированный) и protocol (p) (протокол). Варианты raw (r) и encapsulation (e) полезны только в том случае, если вы имеете шестнадцатеричный редактор и хорошее знание протокола, который вы прослушиваете, чтобы быть способным перебрать информацию байт за байтом. Большинство из нас выберут опцию протокола, поскольку в ней TCP-пакеты расшифровываются и отображаются в информативном, но простом для чтения файле регистрации.

Ниже приведена часть вывода из файла регистрации, полученного при использовании команды buttsniff -d 1 proto.log p:

Source IP: 192.168.1.101 Target IP: 192.168.1.100 TCP Length: 0 Source Port: 2111 Target Port: 23 Seq: 0919F2F2 Ack: 00000000 Flags: S Window: 65535 TCP ChkSum: 64163 UrgPtr: 0

Source IP: 192.168.1.100 Target IP: 192.168.1.101 TCP Length: 0 Source Port: 23 Target Port: 2111 Seq: 7BFD410D Ack: 0919F2F3 Flags: SA Window: 32120 TCP ChkSum: 49167 UrgPtr: 0

Source IP: 192.168.1.101 Target IP: 192.168.1.100 TCP Length: 0 Source Port: 2111 Target Port: 23 Seq: 0919F2F3 Ack: 7BFD410E Flags: A Window: 65535 TCP ChkSum: 27212 UrgPtr: 0 Source IP: 192.168.1.101 Target IP: 192.168.1.100 TCP Length: 3 Source Port: 2111 Target Port: 23 Seq: 0919F2F3 Ack: 7BFD410E Flags: PA Window: 65535 TCP ChkSum: 19269 UrgPtr: 0 00000000: FF FB 1F яы.


Source IP: 192.168.1.100 Target IP: 192.168.1.101 TCP Length: 0 Source Port: 23 Target Port: 2111 Seq: 7BFD410E Ack: 0919F2F6 Flags: A Window: 32120 TCP ChkSum: 60624 UrgPtr: 0

Source IP: 192.168.1.101 Target IP: 192.168.1.100 TCP Length: 18 Source Port: 2111 Target Port: 23 Seq: 0919F2F6 Ack: 7BFD410E Flags: PA Window: 65535 TCP ChkSum: 10271 UrgPtr: 0 00000000: FF FB 20 FF FB 18 FF FB 27 FF FD 01 FF FB 03 FF яы яы.яы"яы.яы.я 00000010: FD 03 э

Мы вывели здесь совсем немного информации, так что давайте слегка разберемся с ней.

Ясно, что каждый пакет имеет свою собственную запись в журнале. Из первого пакета мы видим, что с адреса 192.168.1.101 послан пакет на адрес 192.168.1.100 с портом назначения 23 (telnet). Если мы посмотрим на флаги на этом пакете, то увидим, что установлен флаг S (или SYN). Флаг SYN указывает на инициирование TCP-подключения. Следующая строка показывает ответ с адреса 192.168.100 обратно по адресу 192.168.1.101 к порту назначения (2111, в этом случае) с установленным флагом SA (или SYN/ACK). Следующая строка показывает пакет с адреса 192.168.1.101 с установленным флагом A (или ACK). Все это представляет методологию TCP - "трехэтапное квитирование" для установления соединения.

Итак, мы зафиксировали начало telnet подключения между этими двумя хостами. Ни один из первых трех пакетов не имеет никаких данных вне TCP-заголовков, но если мы посмотрим несколько ниже, то увидим шестнадцатеричный и ASCII-дамп некоторого "мусора", извлеченного из поля данных TCP-пакетов. Помните, что прежде чем telnet предоставит вам приглашение на вход в систему, клиент и сервер ведут переговоры относительно некоторых опций telnet (тип терминала, например). Этот "мусор" как раз и содержит такие переговоры. Пропустив их, мы должны найти более ценную информацию. Вот полезный текст:

Source IP: 192.168.1.100 Target IP: 192.168.1.101 TCP Length: 7 Source Port: 23 Target Port: 2111 Seq: 7BFD418A Ack: 0919F33F Flags: PA Window: 32120 TCP ChkSum: 35305 UrgPtr: 0 00000000: 6C 6F 67 69 6E 3A 20 login:



Source IP: 192.168.1.101 Target IP: 192.168.1.100 TCP Length: 0 Source Port: 2111 Target Port: 23 Seq: 0919F33F Ack: 7BFD4191 Flags: A Window: 65404 TCP ChkSum: 27136 UrgPtr: 0 Source IP: 192.168.1.101 Target IP: 192.168.1.100 TCP Length: 1 Source Port: 2111 Target Port: 23 Seq: 0919F33F Ack: 7BFD4191 Flags: PA Window: 65404 TCP ChkSum: 2039 UrgPtr: 0 00000000: 62 b

Source IP: 192.168.1.100 Target IP: 192.168.1.101 TCP Length: 1 Source Port: 23 Target Port: 2111 Seq: 7BFD4191 Ack: 0919F340 Flags: PA Window: 32120 TCP ChkSum: 35322 UrgPtr: 0 00000000: 62 b

Source IP: 192.168.1.101 Target IP: 192.168.1.100 TCP Length: 1 Source Port: 2111 Target Port: 23 Seq: 0919F340 Ack: 7BFD4192 Flags: PA Window: 65403 TCP ChkSum: 64245 UrgPtr: 0 00000000: 6F o



Source IP: 192.168.1.100 Target IP: 192.168.1.101 TCP Length: 1 Source Port: 23 Target Port: 2111 Seq: 7BFD4192 Ack: 0919F341 Flags: PA Window: 32120 TCP ChkSum: 31992 UrgPtr: 0 00000000: 6F o

Source IP: 192.168.1.101 Target IP: 192.168.1.100 TCP Length: 1 Source Port: 2111 Target Port: 23 Seq: 0919F341 Ack: 7BFD4193 Flags: PA Window: 65402 TCP ChkSum: 2037 UrgPtr: 0 00000000: 62 b

Source IP: 192.168.1.100 Target IP: 192.168.1.101 TCP Length: 1 Source Port: 23 Target Port: 2111 Seq: 7BFD4193 Ack: 0919F342 Flags: PA Window: 32120 TCP ChkSum: 35318 UrgPtr: 0 00000000: 62 b

Адрес 192.168.1.101 был представлен с приглашением входа в систему. Если мы сосредоточимся на пакетах, прибывающих с адреса отправителя 192.168.1.101 и направленных получателю 192.168.1.100, мы увидим, что пользователь набрал b-o-b. Каждый раз, когда хост с адресом 192.168.1.101 посылает символ, хост с адресом 192.168.1.100 повторяет его в обратном направлении. Сервер telnet "повторяет" то, что мы набрали, когда подтверждает получение наших символов. Другими словами, все, что мы набрали, никогда не должно отображаться у клиента. С протоколом telnet нажатия клавиши немедленно посылаются серверу вместо попадания в буфер клиента.

Если мы посмотрим еще ниже, то найдем действительно полезную информацию:



Source IP: 192.168.1.100 Target IP: 192.168.1. 101 TCP Length: 10 Source Port: 23 Target Port: 2111 Seq: 7BFD4196 Ack: 0919F344 Flags: PA Window: 32120 TCP ChkSum: 1056 UrgPtr: 0 00000000: 50 61 73 73 77 6F 72 64 3A 20 Password: Source IP: 192.168.1.101 Target IP: 192.168.1.100 TCP Length: 0 Source Port: 2111 Target Port: 23 Seq: 0919F344 Ack: 7BFD41A0 Flags: A Window: 65389 TCP ChkSum: 27131 UrgPtr: 0

Source IP: 192.168.1.101 Target IP: 192.168.1.100 TCP Length: 1 Source Port: 2111 Target Port: 23 Seq: 0919F344 Ack: 7BFD41A0 Flags: PA Window: 65389 TCP ChkSum: 2034 UrgPtr: 0 00000000: 62 b

Source IP: 192.168.1.100 Target IP: 192.168.1.101 TCP Length: 0 Source Port: 23 Target Port: 2111 Seq: 7BFD41A0 Ack: 0919F345 Flags: A Window: 32120 TCP ChkSum: 60399 UrgPtr: 0

Source IP: 192.168.1.101 Target IP: 192.168.1.100 TCP Length: 1 Source Port: 2111 Target Port: 23 Seq: 0919F345 Ack: 7BFD41A0 Flags: PA Window: 65389 TCP ChkSum: 64240 UrgPtr: 0 00000000: 6F o

Source IP: 192.168.1.100 Target IP: 192.168.1.101 TCP Length: 0 Source Port: 23 Target Port: 2111 Seq: 7BFD41A0 Ack: 0919F346 Flags: A Window: 32120 TCP ChkSum: 60398 UrgPtr: 0

Source IP: 192.168.1.101 Target IP: 192.168.1.100 TCP Length: 1 Source Port: 2111 Target Port: 23 Seq: 0919F346 Ack: 7BFD41A0 Flags: PA Window: 65389 TCP ChkSum: 2032 UrgPtr: 0 00000000: 62 b

Source IP: 192.168.1.100 Target IP: 192.168.1.101 TCP Length: 0 Source Port: 23 Target Port: 2111 Seq: 7BFD41A0 Ack: 0919F347 Flags: A Window: 32120 TCP ChkSum: 60397 UrgPtr: 0

Source IP: 192.168.1.101 Target IP: 192.168.1.100 TCP Length: 1 Source Port: 2111 Target Port: 23 Seq: 0919F347 Ack: 7BFD41A0 Flags: PA Window: 65389 TCP ChkSum: 14575 UrgPtr: 0 00000000: 31 1

Source IP: 192.168.1.100 Target IP: 192.168.1.101 TCP Length: 0 Source Port: 23 Target Port: 2111 Seq: 7BFD41A0 Ack: 0919F348 Flags: A Window: 32120 TCP ChkSum: 60396 UrgPtr: 0

Source IP: 192.168.1.101 Target IP: 192.168.1.100 TCP Length: 1 Source Port: 2111 Target Port: 23 Seq: 0919F348 Ack: 7BFD41A0 Flags: PA Window: 65389 TCP ChkSum: 14318 UrgPtr: 0 00000000: 32 2



Source IP: 192.168.1.100 Target IP: 192.168.1.101 TCP Length: 0 Source Port: 23 Target Port: 2111 Seq: 7BFD41A0 Ack: 0919F349 Flags: A Window: 32120 TCP ChkSum: 60395 UrgPtr: 0

Source IP: 192.168.1.101 Target IP: 192.168.1.100 TCP Length: 1 Source Port: 2111 Target Port: 23 Seq: 0919F349 Ack: 7BFD41A0 Flags: PA Window: 65389 TCP ChkSum: 14061 UrgPtr: 0 00000000: 33 3

Похоже на то, что мы подслушали нехитрый пароль Боба. Снова, сосредотачиваясь только на пакетах, прибывающих с адреса отправителя 192.168.1.101 получателю 192.168.1.100, мы видим, что пользователь набрал b-o-b-1-2-3. Обратите внимание, что пакеты подтверждения от сервера telnet не делают повторения ввода, как это произошло с именем пользователя. Так и должно быть, потому что когда мы вводим пароль, мы не видим его напечатанным на экране telnet.

Анализаторы сетевых потоков дают также отличную возможность узнать больше о TCP/IP. Здесь видно, как размер пакетов данных влияет на порядковый номер пакета, и как используются флаги.

Аналогично тому, как диалоговый режим инструмента BUTTSniffer имеет фильтры, режим дампа диска имеет необязательный "файл фильтра", который может быть указан в конце командной строки. Файл использует ту же самую методику, которая используется в диалоговом меню. Пустой файл фильтра означает, что BUTTSniffer должен регистрировать все. Если вы хотите сосредоточиться на определенном IP-адресе или порте, вы сначала должны исключить все остальное.

Ниже приводится синтаксис файла фильтра, который устанавливает тот же самый фильтр, который мы использовали в диалоговом режиме:

-*.*.*.* +192.168.1.100 -0-65535 +23 +80

Выглядит незамысловато. Сохраните этот текст как myfilter.fil, а затем выполните команду buttsniff-d 1 sniff.log p myfilter.fil, чтобы прослушивать только telnet и деятельность сети, направленную по адресу 192.168.1.100 и обратно.

Совет. Если вам не требуется фильтровать IP-адреса, но необходимо фильтровать порты, не нужно создавать файл фильтра. Можно просто заменить myfilter.fil в этом примере единственным номером порта или диапазоном номеров порта, например, buttsniff-d l sniff.log p 23.Если вы хотите определить несколько портов не из диапазона, вам надо будет использовать файл фильтра.


Содержание раздела