Меню Рубрики

Tcpdump windows как пользоваться

Утилита tcpdump, примеры опции фильтры

Довольно часто в системном администрировании возникают ситуации, для которых необходимо видеть подробную «картину» того, что происходит с передачей данных по сети. Проследить за трафиком и выявить проблемы в таких случаях позволяют утилиты-анализаторы пакетов. Одной из таких (и самой распространённой) является tcpdump – стандартный анализатор пакетов для Linux-систем.

Кроме tcpdump существуют и другие инструменты для анализа сетевого трафика, например такие как Wireshark и Tshark, которые являются усовершенствованными версиями tcpdump, но стандартным и до сих пор эффективным остаётся утилита tcpdump. С её помощью можно перехватывать, фильтровать по определённому критерию, а также выводить пакеты. Нужно заметить, что для полноценного доступа к пакетам необходимо запускать tcpdump от имени суперпользователя, поскольку сами пакеты — это низкоуровневые объекты системы. Кроме этого существуют определённые условия, в зависимости от сетевого оборудования, которые позволяют (или не позволяют) перехватывать все или только определённые пакеты или предоставлять только определённую информацию о них. Сетевое оборудование (сетевая карта, маршрутизатор и т. д.) должны поддерживать/разрешать доступ к пакетам, т. е. иметь (или предоставлять) механизм для передачи сведений о пакетах на более высокий программный уровень и в этом случае tcpdump, как впрочем и другие анализаторы пакетов, оказываются максимально эффективными. Кстати, аппаратные интерфейсы, если они работают в режиме «promiscuous mode», т. е. в так называемом «беспорядочном» режиме, позволяют системному ядру «видеть» все пакеты, т. е. даже и те, что адресуются для других компьютеров и устройств.

Принцип работы tcpdump

Как уже отмечалось, tcpdump является стандартной утилитой для анализа сетевого трафика в дистрибутивах Linux. Автором утилиты является Ван Якобсон. За всё время своего применения tcpdump проявил себя как весьма эффективный и надёжный инструмент. Поэтому в настоящее время многие аналоги в качестве основного формата файлов для чтения/записи результатов трассировки трафика используют формат tcpdump – libcap.

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

tcpdump опции

Для задания нужного сетевого интерфейса следует использовать опцию -i. Если необходимо знать адреса устройств (компьютеров, оборудования), то нужно задавать опцию -n. Это также очень полезно при проблемах с DNS. Опция -r позволяет читать информацию о пакетах из файла. Когда необходимы более подробные сведения о пакетах — поможет опция -v. Также существует опция -w для фиксирования информации в файле. Следует отметить, что в случае использования опции -w в файл записывается информация только о заголовках пакетов. Опция -s со значением 1056 (хотя это значение зависит от размера MTU-пакета) позволяет (совместно с -w) писать в файл дополнительную информацию. Объёмы данных могут быть очень большими и сложными по своей структуре (несмотря на то, что это текст) и поэтому в дальнейшем для их обработки рекомендуется использовать соответствующие высокопроизводительные утилиты, например awk.

Формат команды tcpdump следующий:

tcpdump [-опции] [фильтры]

В официальной документации (команда man tcpdump) можно найти несколько примеров использования этой утилиты для разных случаев с применением довольно разнообразных и сложных фильтров.

Важно заметить также, что tcpdump (да и вообще все анализаторы пакетов) при своей работе могут генерировать огромные массивы информации и сильно загружать работу сети, вплоть до отказов в её работе. Поэтому при анализе трафика следует применять рациональный подход — в зависимости от ситуации и условий задачи (или проблемы) использовать фильтры, тем более, что это является очень эффективной частью функционала tcpdump.

Наиболее часто используемые ключи при запуске tcpdump приведены таблице

ключ

описание

Преобразовывает сетевые и широковещательные адреса в доменные имена.

Отображает данные канального уровня (MAC-адрес, протокол, длина пакета). Помимо IP-адресов будут отображаться MAC-адреса компьютеров.

Использовать фильтр, находящийся в файле. Если вы используете этот параметр, фильтр из командной строки будет игнорироваться.

Указывает на то, какой сетевой интерфейс будет использоваться для захвата пакетов. По умолчанию — eth0, для выбора всех интерфейсов — any. Если отсутствует локальная сеть, то можно воспользоваться интерфейсом обратной связи lo.

Использовать стандартный потоковый вывод tcpdump (stdout), например для записи в файл:

shell# tcpdump -l | tee out.log //отобразит работу tcpdump и сохранит результат в файле out.log

Не добавляет доменное расширение к именам узлов. Например tcpdump отобразит ‘net’ вместо ‘net.library.org’

Отображает IP-адрес вместо имени хоста.

Отображает номер порта вместо используемого им протокола.

Не переводит интерфейс в режим приема всех пакетов (promiscuous mode).

Выводит минимум информации. Обычно это имя протокола, откуда и куда шел пакет, порты и количество переданных данных.

Этот параметр позволяет tcpdump прочесть трафик из файла, если он был предварительно сохранен параметром -w.

Позволяет не обрабатывать абсолютные порядковые номера (initial sequence number — ISN) в относительные.

Количество байтов пакета, которые будет обрабатывать tcpdump. При установке большого числа отображаемых байтов информация может не уместиться на экране и её будет трудно изучать. В зависимости от того, какие цели вы преследуете, и следует выбирать значение этого параметра. По умолчанию tcpdump захватывает первые 68 байт (для SunOS минимум 96 байт), однако если вы хотите увидеть содержимое всего пакета, используйте значение в 1514 байт (максимально допустимый размер кадра в сети Ethernet).

Не отображает метку времени в каждой строке.

Интерпретация пакетов заданного типа. Поддерживаются типы aodv, cnfp, rpc, rtp, rtcp, snmp, tftp, vat, wb.

Отображает неформатированную метку времени в каждой строке.

Показывает время вместе с датой.

Вывод подробной информации (TTL; ID; общая длина заголовка, а также его параметры; производит проверку контрольных сумм IP и ICMP-заголовков)

Вывод ещё более полной информации, в основном касается NFS и SMB.

Вывод максимально подробной информации.

Сохраняет данные tcpdump в двоичном формате. Преимущества использования данного способа по сравнению с обычным перенаправлением в файл является высокая скорость записи и возможность чтения подобных данных другими программами, например snort, но этот файл нельзя прочитать человеку. Возможен вывод двоичных данных на консоль, для этого необходимо использовать -w —

Делает распечатку пакета в шестнадцатеричной системе, полезно для более детального анализа пакета. Количество отображаемых данных зависит от параметра -s

То же, что и предыдущий параметр -x, но включает в себя заголовок канального уровня

Выводит пакет в ASCII- и hex-формате. Полезно в случае анализа инцидента связанного со взломом, так как позволяет просмотреть какая текстовая информация передавалась во время соединения.

То же, что и предыдущий параметр -X, но включает заголовок канального уровня.

tcpdump завершит работу после получения указанного числа пакетов.

Собранные пакеты будут сразу складываться в файл, а иначе копиться в памяти до тех пор, пока она не закончится

Фильтры tcpdump

Фильтры разделяются на следующие классификации

host— адрес узла сети

port – порт на котором нужно ловить пакеты

portrange – диапазон портов

net – сеть

захват всего трафика в котором в качестве источника или получателя стоят ip адреса из сети 192.168.0.0/24

Будет захватываться весь трафик на 80-м порту.

Направление трафика по отношению к объекту мониторинга

src – отправитель

dst — получатель

Захват трафика у которого отправитель ip адрес 172.31.25.200

ether – базовая сетевая технология Ethernet, как правило указывает на то что в фильтре используется аппаратный MAC адрес

ip – протокол IPv4

ip6 – протокол IPv6

arp – протокол ARP

tcp – протокол TCP

udp – протокол UDP

Если протокол не указан, то будет захвачен трафик по все протоколам

захват трафика по протоколу udp порт 5060

Составные фильтры

Для того что бы более гибко фильтровать трафик можно использовать логические операции

«НЕ» – not (!) – инверсия значения

При этом приоритет этих операций следующий:

наивысшим приоритетом обладает операция инверсии

потом логическое «И»

наименьшим приоритетом обладает операция «ИЛИ».

Приоритет операций можно менять с помощью круглых скобок.

захват трафика протокола TCP и использующего порт 80 принадлежащего сети 172.16.0.0/24 или хосту 172.31.0.5, как любому хосту по отдельности так и вместе

захват любого трафика кроме трафика протокола TCP и использующего порт 80 принадлежащего сети 172.16.0.0/24 или хосту 172.31.0.5 как любому хосту по отдельности так и вместе

tcpdump linux примеры

Запись вывода в файл

Файл sshtrace.tcpdump при этом будет по-умолчанию создан в домашнем каталоге текущего пользователя. Для вывода информации из файла myrouter.tcpdump следует использовать опцию -r:

Снять весь трафик с интерфейса eth1

Снять трафик с диапазона портов на интерфейсе eth1

весь трафик, идущий к 172.16.0.1, который не является ICMP.

Ловим весь входящий трафик, исключая трафик генерируемый нашей SSH-сессией.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

tcpdump для Windows или мониторинг сетевого трафика

Всем администраторам Unix систем, будь то Linux или BSD, известна такая полезная утилита, как TCPDUMP. Эта утилита позволяет производить слежение (мониторинг) сетевого трафика на компьютере, на котором она запущена, причем если компьютер является роутером — то прекрасно видно — кто по каким портам куда ломится через этот роутер.

Через нее можно задавать правила — что отлавливать — с каких IP с каких портов — на какие IP какие порты. Через нее можно и записывать отловленные пакеты — например, для их последующего анализа. Можно «ловить» только через определенные интерфейсы и т.д.

Но что делать, если Вам приходится администрировать Windows и возникает такая-же задача? В Unix-то tcpdump доступна из коробки, а Windows не предоставляет никаких средств подобного уровня.

Встрачайте: Windump. Это не реклама, это на самом деле полезная утилита и с виду полная замена TCPDUMP, только для Windows!

Итак, что же нам нужно сделать:

1) Скачиваем драйвер WinPCAP (тоже знакомо по Unix?). Несмотря на предупреждение разработчика о том, что драйвер не протестирован «на полную» под Vista (и, соответственно, Windows 7) — удовольствие это работает, что очень радует!

Сайт разработчика со страницей закачки: https://www.winpcap.org/install/default.htm

2) Устанавливаем WinPcap, для этого даже перезагружаться не придется.

3) Скачиваем WinDump. Сайт разработчика со страницей закачки: http://www.winpcap.org/windump/install/default.htm

4) Ложим WinDump.exe в удобное место, куда можно легко добраться через консоль Windows. Это не инсталятор — это уже готовая к использованию утилита.

5) Открываем CMD (Пуск -> Выполнить -> «cmd» -> Enter). Переходим в каталог, куда Вы положили WinDump.exe и запускаем ее:

Перед Вами побегут строчки перехватываемых пакетов, среди которых можно видеть — какой пакет откуда идет и куда, с какого порта и на какой, какая у него длинна и какие флаги TCP установлены.

Жмем Ctrl+C для остановки.

Но тупо глядеть все пакеты нам может быть не интересно. Тогда придется воспользоваться ключами и «выражениями».

Как смотреть определенный трафик

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

Максимум информации (на английском языке) можно найти по адресу https://www.winpcap.org/windump/docs/manual.htm , т.е. со страницы документации WinDump разработчика. Для Unix-оводов я могу сказать радостную новость — опции оставлены такими же, как в оригинальной TCPDUMP под Linux/BSD.

tcpdump — dump traffic on a network

SYNOPSIS

tcpdump [ -AdDeflLnNOpqRStuUvxX ] [ -c count ] [ -C file_size ] [ -F file ] [ -i interface ] [ -m module ] [ -M secret ] [ -r file ] [ -s snaplen ] [ -T type ] [ -w file ] [ -W filecount ] [ -E spi@ipaddr algo:secret. ] [ -y datalinktype ] [ -Z user ]
[ expression ]

Ну и на русском я поясню самые основы (минимум) — чтобы Вы сразу могли приступить к слежению за трафиком.

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

Отлов без резолва

Чтобы запретить сканеру резолвить DNS имена и номера портов — следует запускать с ключем «-n»:

Это полезно чаще всего, т.к. трудно (особенно на глаз) определить по DNS-имени — что за компьютер, куда ломится, по каким портам (имена служб вместо номеров портов играют действительно злую шутку); ну и это нормально так экономит сетевой трафик на тему резолва IP адресов.

Смотрим внутренности пакетов

Ключ «A» позволяет нам помимо вывода «откуда — куда» печатать и сам контент пакетов (т.е. их внутренности в ASCII):

Остальные ключи

Все ключи (их множество) Вы можете посмотреть в предлагаемом мануале.

Правила просмотра

Чаще всего нужно не просто смотреть все, что идет откуда угодно куда угодно. Например, нам может понадобиться глядеть только трафик, который касается компьютера с IP 192.168.0.70, например, глядеть — на какие IP ломится бухгалтер или охранник; или на какой порт ломится какая-то программа. Для этого используются выражения.

Выражения пишутся после всех параметров в виде суммирующих записей AND или OR.

HOST

Для просмотра трафика, касающегося определенного компьютера, используется слово «host»:

Если вариации «dst host» и «src host» позволяет, соответственно, ловить трафик, который был отправлен с адреса (src host) или направляется к адресу (dst host).

PORT

Для отслеживания трафика, касающегося определенного порта — слово «port»:

По аналогии с HOST: существуют «src port» и «dst port» — соответственно, порт, с которого идет пакет и порт, на который идет пакет.

PORTRANGE

То же, что и «port», но позволяет задать диапазон портов (так же есть и «src portrange» и «dst portrange»), диапазон задается через тире:

GATEWAY

Условие «gateway» позволяет смотреть пакеты, проходящие через указанный шлюз (маршрут):

Условие «net» позволяет ловить только те пакеты, которые принадлежать указанной подсети:

Соответственно, слова «net src» и «net dst» ловят пакеты, которые пришли с или идут в указанную сеть.

LESS и GREATER

Эти условия позволяет ловить пакеты, которые только меньше (LESS) или больше (GREATER) заданного размера в байтах:

IP PROTO

Позволяет ловить пакеты только определенного протокола: icmp, icmp6, igmp, igrp, pim, ah, esp, vrrp, udp, или tcp.

VLAN

Условие позволяет ловить только пакеты, принадлежащие определенному VLAN (соответственно, таггированые):

AND или OR

Правила, как я уже говорил, можно склеивать несколько в одно через AND или OR. Например, если нам нужно смотреть трафик, входящий или исходящий на компьютер 192.168.0.70 по удаленному или локальному порту 80 — выражение будет выглядеть вот так:

Тем, кто уже пользовался TCPDUMP под *nix — затруднений это не должно вызвать.

Много больше Вы можете узнать из прилагаемой (выше по заметке) инструкции, правда, на английском языке.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Tcpdump windows server 2012
  • Tcpackfrequency windows 7 x64
  • Tcp windows size что это
  • Tcp ip патч для windows xp
  • Tcp ip windows server 2012