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

Содержание
  1. ИТ База знаний
  2. Полезно
  3. Навигация
  4. Серверные решения
  5. Телефония
  6. Корпоративные сети
  7. Курс по сетям
  8. 15 примеров команды PING для диагностики сети
  9. Руководство по команде grep в Linux
  10. Рекурсивно найти слово в файлах и папках Linux
  11. Руководство по использованию ffmpeg в Linux
  12. Как обновить ядро Linux в CentOS 7
  13. Как перезагрузить сеть в Ubuntu?
  14. Поиск и расположение команд в Linux
  15. Захват пакетов с tcpdump: руководство с примерами
  16. Установка Tcpdump
  17. Захват пакетов с Tcpdump
  18. Понимание формата вывода
  19. Фильтрация пакетов
  20. Протокол
  21. IP адрес или имя хоста отправителя или получателя
  22. Сложные выражения
  23. Проверка содержимого пакета
  24. Сохранение файл
  25. Заключение
  26. tcpdump
  27. tcpdump для VoIP SIP H.323
  28. tcpdump Packet Filter Firewall (PF)
  29. Примеры использования tcpdump
  30. Примеры использования tcpdump AND OR EXCEPT
  31. Проблема +arplookup 0.0.0.0 failed: host is not on local network
  32. Wireshark: Packet size limited during capture
  33. tcpdump использование в Windows 10
  34. Ссылки
  35. Онлайн школа английского языка
  36. Крупнейшая в Европе школа английского языка.
  37. Школа английского языка по Skype

ИТ База знаний

Курс по Asterisk

Полезно

— Узнать IP — адрес компьютера в интернете

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Калькулятор инсталляции IP — АТС Asterisk

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Популярное и похожее

Курс по сетям

15 примеров команды PING для диагностики сети

Руководство по команде grep в Linux

Рекурсивно найти слово в файлах и папках Linux

Руководство по использованию ffmpeg в Linux

Как обновить ядро Linux в CentOS 7

Как перезагрузить сеть в Ubuntu?

Поиск и расположение команд в Linux

Еженедельный дайджест

Захват пакетов с tcpdump: руководство с примерами

Gotta Catch ‘Em All!

22 минуты чтения

Tcpdump — это утилита командной строки, которая позволяет вам захватывать и анализировать сетевой трафик, проходящий через вашу систему. Он часто используется для устранения неполадок в сети, а также для обеспечения безопасности.

Обучайся в Merion Academy

Пройди курс по сетевым технологиям

Начать

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

В этой статье мы рассмотрим некоторые из наиболее распространенных функций tcpdump.

Установка Tcpdump

Tcpdump включен в несколько дистрибутивов Linux, так что скорее всего, он у вас уже установлен. Проверьте, установлен ли tcpdump в вашей системе, например, с помощью команды which :

Мы должны получить примерно такой вывод:

Если tcpdump не установлен, вы можете установить его, но используя менеджер пакетов вашего дистрибутива.

В CentOS или Red Hat Enterprise Linux:

Для Ubuntu and Debian:

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

Захват пакетов с Tcpdump

Синтаксис Tcpdump выглядит следующим образом:

  • Команда options позволяют вам контролировать поведение команды.
  • Фильтр expression определяет какие пакеты будут захвачены

Для захвата пакетов для траблшутинга или анализа tcpdump требуются повышенные разрешения, поэтому в следующих примерах большинство команд имеют префикс sudo.

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

В приведенном выше примере вы можете увидеть все интерфейсы, доступные на компьютере. Специальный интерфейс any позволяет захватывать на всех активных интерфейсах.

Давайте использовать его, чтобы поймать немного пакетов:

Ключ -i показывает что мы захватываем пакеты с определенного (хоть и псевдо) интерфейса. Вы можете прервать захват, нажав Ctrl + C .

Как вы видите, мы перехватили OVER 9000 пакетов. Но так много нам не нужно Чтобы ограничить количество перехваченных пакетов и остановить tcpdump, используйте параметр -c :

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

По умолчанию tcpdump разрешает (ресолвит) IP-адреса и порты в имена, как показано в предыдущем примере. Однако при устранении неполадок в сети часто проще использовать IP-адреса и номера портов. Отключите разрешение имен, используя опцию -n и разрешение портов с -nn :

Читайте также:  Чем linux unix ubuntu

Как показано выше, вывод захвата теперь отображает IP-адреса и номера портов. Это также не позволяет tcpdump выдавать DNS-запросы, что помогает снизить сетевой трафик при устранении неполадок в сети.

Теперь, когда вы можете захватывать сетевые пакеты, давайте рассмотрим, что означает этот вывод.

Понимание формата вывода

Tcpdump способен захватывать и декодировать множество различных протоколов, таких как TCP, UDP, ICMP и многие другие. Хотя мы не можем охватить все их здесь, чтобы помочь вам начать, давайте рассмотрим пакет TCP. Вы можете найти более подробную информацию о различных форматах протокола на страницах руководства tcpdump. Типичный пакет TCP, захваченный tcpdump, выглядит следующим образом:

Поля могут различаться в зависимости от типа отправляемого пакета, но общий формат tcpdump выглядит так:

  • Первое поле, 08:41:13.729687 , представляет метку времени полученного пакета согласно местным часам, в формате часы:минуты:секунды.фракция где фракция — доли секунды с полуночи.
  • Затем IP представляет протокол сетевого уровня — в данном случае IPv4. Для пакетов IPv6 это значение IP6.
  • Следующее поле, 192.168.64.28.22 , — это IP-адрес и порт источника. Далее следуют IP-адрес и порт назначения (разделенные точкой), представленные как 192.168.64.1.41916 .
  • После источника и назначения вы можете найти флаги TCP Flags [P.] . Типичные значения для этого поля включают в себя:
    • [.] — ACK (Acknowledgment)
    • [S] — SYN (Start Connection)
    • [P] — PSH (Push Data)
    • [F] — FIN (Finish Connection)
    • [R] — RST (Reset Connection)
    • [S.] — SYN-ACK (SynAcK Packet)
  • Далее идет порядковый номер данных, содержащихся в пакете. Для первого захваченного пакета это абсолютное число. Последующие пакеты используют относительное число, чтобы упростить отслеживание. В этом примере последовательность seq 196:568 , что означает, что этот пакет содержит байты с 196 по 568 этого потока.
  • За этим следует номер подтверждения: ack 1 . В данном случае это 1, поскольку сторона отправляет данные. Для стороны, получающей данные, это поле представляет следующий ожидаемый байт (данные) в этом потоке. Например, номер Ack для следующего пакета в этом потоке будет 568.
  • Следующее поле — это размер окна win 309 , который представляет количество байтов, доступных в приемном буфере, за которыми следуют такие параметры TCP, как MSS (максимальный размер сегмента — Maximum Segment Size) или масштаб окна. nop — заполнение, используемое для того, чтобы сделать заголовок TCP кратным 4 байтам. TS val — это временная метка TCP. ecr — обозначает эхо-ответ.
  • Наконец, у нас есть длина пакета, length 372 , которая представляет длину в байтах данных полезной нагрузки. Длина — это разница между последним и первым байтами порядкового номера.

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

Фильтрация пакетов

Как упоминалось выше, tcpdump может перехватывать слишком много пакетов, некоторые из которых даже не связаны с проблемой, которую вы устраняете. Например, если вы устраняете проблему с подключением к веб-серверу, вас не интересует трафик SSH, поэтому удаление пакетов SSH из выходных данных облегчает работу с реальной проблемой.

Одной из самых мощных функций tcpdump является его способность фильтровать захваченные пакеты с использованием различных параметров, таких как IP-адреса источника и назначения, порты, протоколы и так далее. Давайте рассмотрим некоторые из наиболее распространенных.

Протокол

Для фильтрации пакетов на основе протокола, указав протокол в командной строке. Например, перехватывайте ICMP-пакеты только с помощью этой команды:

В другом терминале попробуйте пропинговать другой компьютер:

Вернувшись в захват tcpdump, обратите внимание, что tcpdump захватывает и отображает только пакеты, связанные с ICMP. В этом случае tcpdump не отображает пакеты разрешения имен, которые были сгенерированы при разрешении имени wiki.merionet.ru:

Либо, если вы знаете идентификатор протокола, то вы можете использовать фильтр proto . Например, для OSFP пакетов:

Ограничьте захват только пакетами, относящимися к определенному хосту, используя фильтр host :

В этом примере tcpdump захватывает и отображает только пакеты с хоста 54.204.39.132 и на него.

Также можно фильтровать не только по одному хосту, но и по целым подсетям. Для этого нужно использовать фильтр net . Например, чтобы вывести только пакеты, относящиеся только к 192.168.1.0/24, нужно использовать:

Для фильтрации пакетов на основе желаемой услуги или порта используйте фильтр port . Например, перехватите пакеты, относящиеся к веб-службе HTTP c 80 порта, с помощью этой команды:

Читайте также:  Windows не может загрузиться system32

Чтобы захватывать траффик с диапазона портов используйте фильтр portrange , после которого через дефис укажите желаемый диапазон:

IP адрес или имя хоста отправителя или получателя

Вы также можете фильтровать пакеты на основе IP-адреса источника или назначения или имени хоста при помощи фильтра src , после которого нужно указать адрес отправителя. Например, для захвата пакетов с хоста 192.168.122.98:

Обратите внимание, что tcpdump захватывает пакеты с исходящим IP-адресом 192.168.122.98 для нескольких служб, таких как разрешение имен (порт 53) и HTTP (порт 80). Пакеты ответов не отображаются, так как их исходный IP адрес у них отличается.

И наоборот, вы можете использовать фильтр dst для фильтрации по IP-адресу или имени хоста:

Сложные выражения

Вы также можете комбинировать фильтры с помощью логических операторов and , or и not для создания более сложных выражений. Например, чтобы отфильтровать пакеты с IP-адреса источника 192.168.122.98 и только служебного HTTP, используйте эту команду:

Вы можете создавать более сложные выражения, группируя фильтр с круглыми скобками. В этом случае заключите все выражение фильтра в кавычки, чтобы оболочка не перепутала их с выражениями оболочки:

В этом примере мы фильтруем пакеты только для службы HTTP (порт 80) и исходящих IP-адресов 192.168.122.98 или 54.204.39.132. Это быстрый способ изучения обеих сторон одного и того же потока.

Проверка содержимого пакета

В предыдущих примерах мы проверяли только заголовки пакетов на наличие информации, такой как источник, адресаты, порты и так далее. Иногда это все, что нам нужно для устранения проблем с сетевым подключением. Однако иногда нам необходимо проверить содержимое пакета, чтобы убедиться, что в отправляемом сообщении содержится то, что нам нужно, или что мы получили ожидаемый ответ. Чтобы увидеть содержимое пакета, tcpdump предоставляет два дополнительных флага: -X для печати содержимого в шестнадцатеричном формате (HEX) и -A для печати содержимого в ASCII.

Например, проверьте HTTP-содержимое веб-запроса следующим образом:

Это полезно для устранения проблем с вызовами API, при условии, что вызовы используют простой HTTP. Для зашифрованных соединений этот вывод менее полезен.

Сохранение файл

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

Чтобы сохранить пакеты в файл, а не отображать их на экране, используйте параметр -w :

Эта команда сохраняет выходные данные в файле с именем webserver.pcap . Расширение .pcap расшифровывается как «packet capture» и является соглашением для этого формата файла.

Как показано в этом примере, на экране ничего не отображается, и захват завершается после захвата 10 пакетов, согласно опции -c10 . Если вы хотите получить обратную связь, чтобы гарантировать захват пакетов, используйте опцию -v .

Tcpdump создает файл в двоичном формате, поэтому вы не можете просто открыть его в текстовом редакторе. Чтобы прочитать содержимое файла, выполните tcpdump с опцией -r :

Поскольку вы больше не захватываете пакеты непосредственно из сетевого интерфейса, sudo не требуется для чтения файла.

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

Если вы хотите запустить tcpdump в фоновом режиме, добавьте & в конце команды.

Заключение

Эти основные функции tcpdump помогут вам начать работу с этим мощным и универсальным инструментом. Чтобы узнать больше, посетите веб-сайт tcpdump и справочные страницы.

Интерфейс командной строки tcpdump обеспечивает большую гибкость для захвата и анализа сетевого трафика. Если вам нужен графический инструмент для понимания более сложных потоков, посмотрите на Wireshark.

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

tcpdump

Утилита tcpdump относится к числу так называемых «снифферов» — программ предназначенных для перехвата сетевого трафика. Одним словом, tcpdump предназначен для подслушивания. Разрабо­тан Группой сетевых исследований (Network Reseach Group, NRG) Отдела инфор­мационных и вычислительных технологий (Information and Computing Sciences Division, ICSD) в Национальной лаборатории Лоренс Беркли (Lawrence Berkeley National Laboratory, LBNL).

Читайте также:  Установленный navitel для windows ce

tcpdump не единственный Сетевые анализаторы снифферы, которым может пользоваться администратор. Кроме tcpdump можно обратить внимание на такие программы, как:

tcpdump работает при помощи интерфейса bpf (Berkeley Packet Filter). Если поддержку этого устройства отключить, сниффинг в BSD окажется невозможен. Права на запуск программы tcpdump определяются правами доступа к устройсву bpf (/dev/bpf0). Эти права можно регулировать через devfs. Если вы предоставляете, например, группе operator права на чтение из этого устройства, то это значит, что все члены этой группы смогут перехватывать любой трафик, в том числе трафик суперпользователя.

Если программа tcpdump вызвана для прослушивания некоторого интерфейса, она переводит его в «promiscuous mode» — «неразборчивый режим». В этом режиме интерфейс ловит вообще все пакеты, которые до него добрались, а не только пакеты адресованные непосредственно ему. Таким образом, если сеть собрана не на коммураторах (switch), а на репитерах (hub), то tcpdump позволит перехватить трафик между посторонними машинами, т.е. подслушать разговор двух сторонних машин. Сказанное не означает, что перехват трафика невозможен в сети собранной на коммутаторах. Впрочем, интерфейс можно и не переводить в promiscous mode, если передать программе аргумент -p.

tcpdump для VoIP SIP H.323

Анализирует траффик удаленно через SSH с помощью Wireshark

UDP трафик с и на IP xxx.xxx.xxx.251 destined for port 5060:

Записать в файл mbill251 весь трафик с хоста xxx.xxx.xxx.251 за исключением трафика ssh

Прослушать порт 5060 с ip xxx.xxx.xxx.251

H.323 сигналинг ловим с двух IP. В таком виде с двух IP отказалось снимать, может быть OR нужно было поставить.

tcpdump Packet Filter Firewall (PF)

Примеры использования tcpdump

перечислить доступные интерфейсы (которые можно прослушивать при помощи опции -i)

посмотреть трафик одного хоста:

посмотреть трафик на порте:

посмотреть IP трафик на хост:

посмотреть ARP трафик на хост:

посмотреть RARP трафик на хост:

посмотреть трафик, кроме хоста unixserver:

посмотреть трафик на server1 и server2

посмотреть содержимое пакетов на интерфейсе tun0 на хост ya.ru

подсмотреть номера и пароли к icq

посмотреть содержимое пакетов на интерфейсе tun0 на хост ya.ru, при этом прочитать из каждого пакета по 1500 байт и не преобразовывать IP в имя хоста

Примеры использования tcpdump AND OR EXCEPT

TCP traffic from 10.5.2.3 destined for port 3389:

Traffic originating from the 192.168 network headed for the 10 or 172.16 networks:

Non-ICMP traffic destined for 192.168.0.2 from the 172.16 network:

Проблема +arplookup 0.0.0.0 failed: host is not on local network

Лечение: запускаем команду и ищем MAC c ошибкой

arpdig – dig an interface for arp responses. Выводит соответствие между IP и MAC. Пример использования:

gratuitous arp — самообращенные запросы. При таком запросе инициатор формирует пакет, где в качестве IP используется его собственный адрес.

Wireshark: Packet size limited during capture

Файлы tcpdump совместимы с Wireshark. Запуская ее с параметром -w filename, мы получаем файл, содержащий нужный нам сетевой трафик. К сожалению, по умолчанию в tcpdump каждый пакет ограничивается 96ю байтами (которых, как правило, достаточно для анализа любых пакетов). Однако если нужно залезть глубже и смотреть всё содержимое пакетов, нужно использовать команду -s size (где size — размер пакетов, которые нужно ловить). Для обычного ethernet’а размер пакетов равен 1500, для «разогнанного» гигабитного etherneta — порой до 65к.

Итого, имеем следующую команду:

И используем ее для того, чтобы можно было создать полный дамп сетевого трафика, который можно смотреть в Wireshark без сообщений вида Packet size limited during capture

tcpdump использование в Windows 10

Утилиту tcpdump можно использовать не только в Linux, но Windows.

TCPDUMP для Windows является клоном TCPDUMP, наиболее используемого сетевого анализатора / анализатора для UNIX, скомпилированного с исходным кодом tcpdump (tcpdump.org) и пакетом SDK от Microolap Packet Sniffer (без libpcap / WinPcap).

Клон TCPDUMP для Windows можно скачать на microolap.com

Ссылки

Онлайн школа английского языка

Английский по скайпу от 680р за урок, без заучивания правил. Эффективно! Удобно! Выгодно! Начните обучение прямо сейчас.

Крупнейшая в Европе школа английского языка.

Промокоды, акции и подарки, чтобы Ваше обучение было не только интересным, но и выгодным. Закажите пробный урок уже сейчас!

Школа английского языка по Skype

Персональные занятия по разумным ценам. Бесплатные ресурсы для студентов: разговорные клубы, блог, вебинары, книги, тест на определение уровня английского. Пробный урок бесплатно!

Оцените статью