Россия, Москва, Московский Государственный Открытый Университет, 2007 |
Анализаторы сетевых потоков
Password Sniffer. Мы сумели перехватить пароль в сессии telnet, но опция Password Sniffer ищет только попытки входа в систему и пытается перехватывать любые имена пользователя и пароли, которые проходят в открытом виде. В следующем примере пользователь связывается с Originix с помощью telnet как пользователь "bob", а затем становится привилегированным пользователем. BUTTSniffer достаточно умен, чтобы выделить начальный вход в систему со словом "bob", потому что это начало подключения, но он не будет подбирать su привилегированного пользователя. Это означает, что мы все еще должны были бы вести наблюдение с использованием режима Monitor Connections, чтобы подобрать пароль. Многие системы не позволят вам использовать telnet для привилегированного пользователя.
Диалоговый режим довольно легко использовать, но в нем нигде не делается запись каких-либо из полученных данных. Вы узнаете, как это делать, когда мы опишем режим дампа на диск в разделе "Режим Disk Dump" в этой лекции.
Configure. Что, если вы оказались на машине, которая сильно перегружена сотнями подключений, происходящих в одно и то же время? Как бы вы смогли рассортировать весь этот "шум" и найти информацию, которую ищете?
Эта опция меню позволяет устанавливать фильтры для диалогового режима. Она заставляет BUTTSniffer наблюдать только за определенными видами сетевого трафика, идущего к или от определенных хостов. Важно понять, как эти фильтры работают, потому что мы будем определять их в текстовых файлах, когда перейдем к следующему режиму программы (дамп на диск).
Основная цель опции Configure - включить фильтры. На следующей иллюстрации обратите внимание, что мы сначала задаем исключение всех IP-адресов (*.*.*.*), а затем включаем только 192.168.1.100. Способ работы программы BUTTSniffer таков, что по умолчанию он включает все, что только возможно. Прежде чем вы сможете определить, на каких хостах и портах вы хотите сосредоточиться, нужно исключить те, которые вас не интересуют.
Внутри этой опции имеется еще две возможности. Сначала мы можем выбирать прослушивание только допустимых TCP-подключений. Необычные подключения (подобные тем, которые делают проходы сканеров nmap stealth, когда просматривают сетевые порты) будут игнорироваться. Вторая опция, War Mode (Военный режим), является переключением на применение этого анализатора сетевых потоков в качестве дополнительного модуля ( plug-in ) к хакерскому закулисному пакету Back Orifice. Хотя BUTTSniffer первоначально предназначался для того, чтобы помогать контролировать сетевой трафик на собственном блоке Windows, привлечение режима War Mode позволяет пользователю захватывать некоторые сетевые подключения и сбрасывать их, срывая работу неосведомленных пользователей системы.
Режим дампа на диске
Если вы хотите контролировать некоторые виды деятельности в течение длительного периода времени, намного легче использовать режим дампа на диске. В этом режиме вы теряете многие из свойств "легкого использования" диалогового режима, но получаете возможность записывать эту деятельность в файл в определенных форматах, который позволяет вам запустить анализатор сетевых потоков ( 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 нажатия клавиши немедленно посылаются серверу вместо попадания в буфер клиента.