any
, объединяющего трафик со всех интерфейсов. Если запустить tcpdump.exe
без указания прослушиваемого интерфейса, то прослушиваться будет первый обнаруженный.C:\>tcpdump -D 1.\Device\NdisWanBh (WAN Miniport (Network Monitor)) 2.\Device\{1F361AA0-9606-4422-836B-8D2465C812B6} (Realtek RTL8169/8110 Family Gigabit Ethernet NIC)
Вариант команды tcpdump.exe -i <номер_интерфейса>
значительно упрощает работу.
В Windows нет интерфейса any
, объединяющего трафик со всех интерфейсов. Если запустить tcpdump.exe
без указания прослушиваемого интерфейса, то прослушиваться будет первый обнаруженный.
Внимание: В приведённых ниже примерах интерфейс для прослушивания не указан.
<размер_файла>
задаёт размер файла в 1 000 000 байт (не 1 048 576 байт).-r
и -w
дает возможность отфильтровать данный PCAP-файл в новый PCAP-файлstdout
построчно для каждого пакета, иначе вывод происходит через буфер в 4096 байт. Удобно использовать с утилитой grep
(Linux, Windows Subsystem for Linux), FINDSTR
(CMD.EXE) или Select-String
(PowerShell).32
байт.64
байт.10.5.2.3
на порт назначения 3389
.10.100.0.0/16
в сеть 10.0.0.0/8
или 172.16.0.0/16
.172.16.0.0
на google.com
, исключая ICMP-пакеты.192.168.1.81
, кроме того, который приходит на порт назначения 22
(SSH).10.81.25.201
, записать в файл (в файл включается название хоста машины и дата, что очень удобно для дальнейшего хранения).10
.3306
.53
.-p
с фильтром ether host or ether broadcast
.80
, то есть только пакеты с данными (отфильтровать, например, SYN, FIN и ACK-пакеты).10.100.0.81
из сети 10.100.0.1
, отфильтровав ICMP-протокол.outfile.pcap
текущего каталога всех SYN-, ACK-пакетов (в количестве 10000
), отправленных на w.x.y.z1
с портов 8040
, 8043
, 8050
или 8053
, кроме пакетов, принимаемых с w.x.y.z2
. Этот фильтр не перехватывает SYN/ACK, отправленные с сервера на клиент – только инициализацию SYN- и SYN/ACK с клиента, а также все остальные ACK-пакеты от клиента.6
имеющий в первом байте (0) значение больше, чем пять с маской 15
(0000 1111
). В реальности данный фильтр будет показывать весь IP-трафик с заголовками больше, чем 20 байт (5 x 32bit блоки данных заголовков = 160 бит -> 160/8=20).Tcpdump является одной из наиболее распространенных утилит для анализа сетевого трафика в операционной системе Linux. Однако, многие пользователи Windows сталкиваются с проблемой, поскольку данная утилита не входит в стандартный набор инструментов ОС. Но не стоит отчаиваться, ведь существует решение!
В данной статье мы рассмотрим пару методов, которые позволят вам использовать tcpdump на Windows. Они позволят вам анализировать сетевой трафик и получать ценную информацию о передаваемых пакетах.
Первый способ заключается в использовании среды Cygwin. Cygwin представляет собой коллекцию утилит Unix, которые позволяют работать в среде Windows. Установив и настроив Cygwin, вы сможете запустить tcpdump на своем компьютере и анализировать сетевой трафик так же, как это делается в Linux.
Пример команды для запуска tcpdump в Cygwin:
tcpdump -i eth0
Второй способ подразумевает использование форка tcpdump для Windows, таких как WinDump или Npcap. Они позволяют работать с tcpdump-совместимыми файлами pcap и обладают дополнительными функциями, такими как графический интерфейс и поддержка Wi-Fi карт. Установка WinDump или Npcap предоставит вам возможность использовать tcpdump на ОС Windows и анализировать передаваемый сетевой трафик.
Таким образом, хотя tcpdump не является частью стандартного набора инструментов Windows, вы можете использовать эту полезную утилиту на своем компьютере. С использованием Cygwin или форков tcpdump для Windows вы сможете анализировать сетевой трафик и получать ценную информацию о передаваемых пакетах.
Содержание
- Установка tcpdump на Windows
- Запуск tcpdump на Windows
- Захват пакетов с использованием tcpdump
- Фильтрация пакетов в tcpdump
- Анализ данных с использованием tcpdump
- Трассировка сетевых пакетов с помощью tcpdump
- Использование tcpdump для отладки сетевых проблем
Установка tcpdump на Windows
Для установки tcpdump на операционной системе Windows вам понадобится скачать и установить виртуальную машину Oracle VirtualBox.
- Перейдите на официальный сайт Oracle VirtualBox и скачайте установочный файл для Windows
- Запустите установочный файл и следуйте инструкциям мастера установки
- После успешной установки VirtualBox, загрузите готовый образ Virtual Machine с установленной Linux-системой, в которой будет работать tcpdump
- Запустите VirtualBox и импортируйте скачанный образ Virtual Machine
- Запустите Virtual Machine и следуйте инструкциям мастера установки Linux
- Установите tcpdump в Linux-системе, используя менеджер пакетов системы (например, apt-get)
- После установки tcpdump в Linux-системе, вы сможете использовать его для анализа сетевого трафика
Теперь у вас есть установленная и готовая к использованию утилита tcpdump на вашей Windows-системе. Вы можете использовать ее для захвата и анализа сетевого трафика на вашем компьютере или в сети.
Запуск tcpdump на Windows
Для использования утилиты tcpdump на ОС Windows, существует несколько способов.
1. Установка tcpdump с помощью WSL (Windows Subsystem for Linux):
WSL — это среда, которая позволяет запускать исполняемые файлы Linux на ОС Windows. Для установки tcpdump с помощью WSL, следуйте инструкциям:
Шаг | Команда |
---|---|
1 | Установите WSL, следуя официальным инструкциям. |
2 | Откройте терминал WSL и выполните команду sudo apt install tcpdump для установки tcpdump. |
3 | После установки tcpdump будет доступен для использования в терминале WSL. |
2. Использование контейнера Docker:
Если у вас установлен Docker на Windows, вы можете использовать контейнер с tcpdump. Выполните следующую команду в терминале Docker:
docker run --rm -it --network=host jess/tcpdump
После выполнения данной команды, tcpdump будет запущен в контейнере Docker и начнет захватывать и анализировать сетевой трафик на вашей машине.
3. Использование WinDump:
WinDump — это порт tcpdump для ОС Windows. Чтобы использовать WinDump, выполните следующие действия:
Шаг | Действие |
---|---|
1 | Загрузите WinDump с официального сайта и установите его. |
2 | Откройте командную строку Windows. |
3 | Перейдите в директорию, где установлен WinDump (обычно это C:\Program Files\WinDump). |
4 | Выполните команду windump -D , чтобы увидеть список доступных сетевых интерфейсов. |
5 | Выполните команду windump -i <interface> , где <interface> — это имя сетевого интерфейса, на котором вы хотите захватывать трафик. |
После выполнения всех необходимых шагов, tcpdump будет запущен на ОС Windows и готов к использованию.
Захват пакетов с использованием tcpdump
Для захвата пакетов с использованием tcpdump в операционной системе Windows необходимо выполнить следующие шаги:
- Установите tcpdump на свою систему. Для этого можно использовать предустановленный пакет совместимый с Windows или установить его самостоятельно.
- Откройте командную строку.
- Введите команду tcpdump, а затем укажите необходимые опции и фильтры для захвата пакетов.
- Нажмите Enter, чтобы выполнить команду.
Пример использования tcpdump для захвата пакетов:
tcpdump -i интерфейс -n -s 0 -w файл.pcap
В этом примере:
- -i интерфейс опция указывает tcpdump на то, с каким сетевым интерфейсом работать.
- -n опция отключает разрешение DNS-имен для IP-адресов.
- -s 0 опция указывает tcpdump не ограничивать размер захватываемых пакетов.
- -w файл.pcap опция указывает tcpdump на файл, в который сохранять захваченные пакеты.
После выполнения команды tcpdump начнет захватывать пакеты на указанном интерфейсе и сохранять их в файл.pcap. Для остановки захвата необходимо прервать выполнение команды, нажав сочетание клавиш Ctrl+C.
С помощью tcpdump можно также применять различные фильтры для выборочного захвата пакетов, анализировать их содержимое и многое другое. Данная утилита является незаменимым инструментом для работы с сетевым трафиком и предоставляет множество возможностей для его анализа и мониторинга.
Фильтрация пакетов в tcpdump
Фильтрация пакетов в tcpdump осуществляется с использованием выражений, которые задаются после ключевого слова ‘tcpdump’. Выражения могут быть достаточно сложными и могут включать в себя логические операторы, сравнения и другие функции.
Примеры фильтрации пакетов:
1. Фильтрация по IP-адресу источника:
tcpdump src 192.168.0.1
В данном примере будут отображены только те пакеты, которые исходят от узла с IP-адресом 192.168.0.1.
2. Фильтрация по IP-адресу назначения:
tcpdump dst 192.168.0.1
В этом случае будут показаны только пакеты, которые отправлены на узел с IP-адресом 192.168.0.1.
3. Фильтрация по порту назначения:
tcpdump dst port 80
В данном примере будут выведены только пакеты, отправленные на порт 80.
4. Фильтрация по протоколу:
tcpdump icmp
В этом случае будут отображены только ICMP-пакеты.
5. Сочетание условий фильтрации:
tcpdump src 192.168.0.1 and tcp port 80
В данном примере будут отображены только пакеты, исходящие с узла 192.168.0.1 и отправленные на порт 80.
Приведенные примеры демонстрируют лишь малую часть возможностей фильтрации пакетов в tcpdump. Утилита позволяет задавать более сложные фильтры, включая комбинации условий с использованием логических операторов. Это делает tcpdump мощным инструментом для анализа сетевого трафика.
Анализ данных с использованием tcpdump
Для анализа данных с использованием tcpdump необходимо выполнить следующие шаги:
- Установить tcpdump: tcpdump доступен для Linux и Windows. Для установки на Windows можно воспользоваться подобными утилитами, как WinDump или Npcap.
- Запустить tcpdump: после установки tcpdump, необходимо запустить команду tcpdump в командной строке с указанием параметров захвата трафика.
- Анализировать захваченные данные: tcpdump записывает захваченные данные в файл или отображает их в реальном времени в командной строке. Полученные данные можно анализировать с помощью различных инструментов и программ, таких как Wireshark или tcpdump с параметрами фильтрации.
Примечание: Анализ данных с использованием tcpdump требует некоторых навыков в области сетевой безопасности и протоколов. Рекомендуется изучить документацию tcpdump и получить предварительные знания о сетевых протоколах перед использованием данной утилиты.
Трассировка сетевых пакетов с помощью tcpdump
С помощью tcpdump можно отслеживать передачу пакетов между узлами сети и анализировать содержимое пакетов. Tcpdump предоставляет широкий спектр функций, позволяющих фильтровать пакеты по различным параметрам, например, по IP-адресу или порту назначения. Это позволяет получить информацию о конкретных взаимодействиях или даже атаках, происходящих в сети.
Для использования tcpdump на Windows необходимо установить WinPcap — библиотеку для захвата пакетов сетевого трафика. После установки WinPcap можно запускать tcpdump командой в командной строке.
Пример использования:
tcpdump -i eth0
В данном примере -i eth0 указывает tcpdump на сетевой интерфейс, с которого нужно захватывать пакеты. Запустив эту команду, tcpdump начнет выводить в консоль информацию обо всех пакетах, которые проходят через сетевой интерфейс eth0.
Tcpdump можно настроить для более тонкой настройки фильтрации пакетов. Например, команда tcpdump port 80 позволит отслеживать только пакеты с портом назначения 80 (HTTP), что может быть полезно для отладки веб-сайтов или приложений.
Это лишь небольшой пример того, как можно использовать tcpdump для трассировки сетевых пакетов в сети Windows. Утилита tcpdump обладает богатым функционалом и может быть полезной для решения различных задач, связанных с анализом сетевого трафика.
Использование tcpdump для отладки сетевых проблем
Ниже приведены примеры использования tcpdump для решения некоторых типичных сетевых проблем:
- Проверка наличия трафика: Если у вас возникли проблемы с подключением к удаленному хосту или вы не видите ожидаемые пакеты на вашем компьютере, tcpdump может помочь вам узнать, идет ли трафик через вашу сеть. Для этого просто запустите tcpdump с нужными фильтрами и выведите результат на экран.
- Анализ проблем с соединением: Если у вас возникают проблемы с соединением, tcpdump может помочь вам определить, где именно возникает проблема. Вы можете отслеживать пакеты с информацией о состоянии соединения, а также смотреть на заголовки пакетов, чтобы выяснить, какие могут быть причины проблемы.
- Поиск и устранение узких мест: Если ваша сеть работает медленно или у вас возникают проблемы с пропускной способностью, tcpdump поможет вам найти узкие места в сети. Вы можете анализировать трафик и искать пакеты с большими задержками или аномально большими размерами. Таким образом, вы можете определить, какие устройства или соединения вызывают проблемы и принять меры для исправления.
- Проверка наличия атак: Tcpdump также может быть полезен для обнаружения атак на вашу сеть. Вы можете отслеживать входящие и исходящие пакеты, проверять заголовки пакетов на наличие подозрительной активности и анализировать пакеты, связанные с возможными уязвимостями.
Tcpdump является мощным инструментом для отладки сетевых проблем и может быть использован для решения различных задач. Запустить tcpdump на Windows можно с помощью Cygwin или подобных инструментов, которые обеспечивают работу командной строки UNIX-подобной операционной системы на Windows.
Homepage: Official web site of tcpdump
Утилита tcpdump относится к числу так называемых «снифферов» — программ предназначенных для перехвата сетевого трафика. Одним словом, tcpdump предназначен для подслушивания. Разработан Группой сетевых исследований (Network Reseach Group, NRG) Отдела информационных и вычислительных технологий (Information and Computing Sciences Division, ICSD) в Национальной лаборатории Лоренс Беркли (Lawrence Berkeley National Laboratory, LBNL).
tcpdump не единственный Сетевые анализаторы снифферы, которым может пользоваться администратор. Кроме tcpdump можно обратить внимание на такие программы, как:
tcpdump работает при помощи интерфейса bpf (Berkeley Packet Filter). Если поддержку этого устройства отключить, сниффинг в BSD окажется невозможен. Права на запуск программы tcpdump определяются правами доступа к устройсву bpf (/dev/bpf0). Эти права можно регулировать через devfs. Если вы предоставляете, например, группе operator права на чтение из этого устройства, то это значит, что все члены этой группы смогут перехватывать любой трафик, в том числе трафик суперпользователя.
Если программа tcpdump вызвана для прослушивания некоторого интерфейса, она переводит его в «promiscuous mode» — «неразборчивый режим». В этом режиме интерфейс ловит вообще все пакеты, которые до него добрались, а не только пакеты адресованные непосредственно ему. Таким образом, если сеть собрана не на коммураторах (switch), а на репитерах (hub), то tcpdump позволит перехватить трафик между посторонними машинами, т.е. подслушать разговор двух сторонних машин. Сказанное не означает, что перехват трафика невозможен в сети собранной на коммутаторах. Впрочем, интерфейс можно и не переводить в promiscous mode, если передать программе аргумент -p.
Ключ -w применяется для записи данных в отдельный файл. Прочитать это файл можно применяя ключи -r и -X(показать заголовки), например:
# tcpdump -r tcpdumplog # tcpdump -X -r tcpdumplog
# tcpdump -i eth0 -n port 5060 -w mbill or # tcpdump -i eth0 -n -s 0 port 5060 -vvv -w /home/capture_file_name or # tcpdump -i eth0 -n host 89.31.241.2 -vvv -w /home/textcall
Анализирует траффик удаленно через SSH с помощью Wireshark
ssh root@HOST tcpdump -U -s0 -w - 'not port 22' | wireshark -k -i -
UDP трафик с и на IP xxx.xxx.xxx.251 destined for port 5060:
# tcpdump -nnvvS udp and host xxx.xxx.xxx.251 and dst port 5060
Записать в файл mbill251 весь трафик с хоста xxx.xxx.xxx.251 за исключением трафика ssh
# tcpdump -n -i eth0 host xxx.xxx.xxx.251 -vvv and not port 22 -w /home/mbill251
Прослушать порт 5060 с ip xxx.xxx.xxx.251
tcpdump -i eth0 -n -s 0 port 5060 and host xxx.xxx.xxx.251 -vvv -w /usr/local/tcpdumplog/log
tcpdump -i eth0 -n -s 0 port 1720 and host xxx.xxx.xxx.251 -vvv -w /usr/local/tcpdumplog
H.323 сигналинг ловим с двух IP. В таком виде с двух IP отказалось снимать, может быть OR нужно было поставить.
# tcpdump -i eth0 -n -s 0 port 1720 and host xxx.xxx.164.1 and host xxx.xxx.107.1 -vvv -w /usr/local/tcpdumplog/logfile
перечислить доступные интерфейсы (которые можно прослушивать при помощи опции -i)
tcpdump -D
посмотреть трафик одного хоста:
tcpdump host 1.2.3.4
посмотреть трафик на порте:
tcpdump src port 80
посмотреть IP трафик на хост:
tcpdump ip host 1.2.3.4
посмотреть ARP трафик на хост:
tcpdump arp host 1.2.3.4
посмотреть RARP трафик на хост:
tcpdump rarp host 1.2.3.4
посмотреть трафик, кроме хоста unixserver:
tcpdump not host unixserver
посмотреть трафик на server1 и server2
tcpdump host server1 or host server2
посмотреть содержимое пакетов на интерфейсе tun0 на хост ya.ru
tcpdump -X -i tun0 host ya.ru
подсмотреть номера и пароли к icq
tcpdump -X -i fxp1 port aol
посмотреть содержимое пакетов на интерфейсе tun0 на хост ya.ru, при этом прочитать из каждого пакета по 1500 байт и не преобразовывать IP в имя хоста
tcpdump -X -s 1500 -n -i tun0 host ya.ru
Примеры использования tcpdump AND OR EXCEPT
AND and or && OR or or || EXCEPT not or !
TCP traffic from 10.5.2.3 destined for port 3389:
# tcpdump -nnvvS tcp and src 10.5.2.3 and dst port 3389
Traffic originating from the 192.168 network headed for the 10 or 172.16 networks:
# tcpdump -nvX src net 192.168.0.0/16 and dst net 10.0.0.0/8 or 172.16.0.0/16
Non-ICMP traffic destined for 192.168.0.2 from the 172.16 network:
# tcpdump -nvvXSs 1514 dst 192.168.0.2 and src net 172.16.0.0/16 and not icmp
# tcpdump -nvvvpi rl0 tcp and not port ssh and not port smtp
Лечение: запускаем команду и ищем MAC c ошибкой
# tcpdump -vvv -n -l -e arp | grep 0.0.0.0 ... 16:43:57.407018 00:0e:89:1d:cc:87 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 60: arp who-has 86.90.285.175 (00:50:fc:f0:3e:e9) tell 0.0.0.0 ...
arplookup 0.0.0.0 failed: host is not on local network
Default route 0.0.0.0
# tcpdump -vvv -n -l -e arp # tcpdump -i rl1 -vvv -n -l -e arp
arpdig – dig an interface for arp responses. Выводит соответствие между IP и MAC. Пример использования:
# arpdig 195.143.151.1/28
gratuitous arp — самообращенные запросы. При таком запросе инициатор формирует пакет, где в качестве IP используется его собственный адрес.
Использование утилиты arping — Работа с ARP протоколом: очистка таблицы level «ping» utility Пример использования:
for /l %i in (1,1,254) do ping -n 1 -w 1 192.168.1.%i arp -a | find "арп"
Файлы tcpdump совместимы с Wireshark. Запуская ее с параметром -w filename, мы получаем файл, содержащий нужный нам сетевой трафик. К сожалению, по умолчанию в tcpdump каждый пакет ограничивается 96ю байтами (которых, как правило, достаточно для анализа любых пакетов). Однако если нужно залезть глубже и смотреть всё содержимое пакетов, нужно использовать команду -s size (где size — размер пакетов, которые нужно ловить). Для обычного ethernet’а размер пакетов равен 1500, для «разогнанного» гигабитного etherneta — порой до 65к.
Итого, имеем следующую команду:
# tcpdump -s 1500 -w filename
И используем ее для того, чтобы можно было создать полный дамп сетевого трафика, который можно смотреть в Wireshark без сообщений вида Packet size limited during capture
Если указать -s 0 тогда размер пакета не важен будет браться все.
Утилиту tcpdump можно использовать не только в Linux, но Windows.
TCPDUMP для Windows является клоном TCPDUMP, наиболее используемого сетевого анализатора / анализатора для UNIX, скомпилированного с исходным кодом tcpdump (tcpdump.org) и пакетом SDK от Microolap Packet Sniffer (без libpcap / WinPcap).
Клон TCPDUMP для Windows можно скачать на microolap.com
Читайте также
Утилита tcpdump — отличный инструмент командной, который способен перехватывать и анализировать сетевой трафик. Может оказаться большим подспорьем при решении сетевых проблем. Пакеты можно сохранить в файл и анализировать позже. Рекомендуется время от времени запускать эту утилиту, чтобы следить за своей сетью.
Содержание:
- Вывод tcpdump
- Установка tcpdump
- Опции tcpdump
- Фильтры tcpdump:
- Фильтр выражений
- Фильтр портов
- Фильтр хостов
- Комбинирование фильтров
- Сохранение заголовков в файл
- Просмотр сведений о пакете
- Вывод
Вывод tcpdump
Утилита tcpdump позволяет проверять заголовки пакетов TCP/IP и выводить одну строку для каждого из пакетов. Она будет делать это до тех пор, пока не нажать Ctrl + C.
Давайте рассмотрим одну строку из примера вывода:
20:58:26.765637 IP 10.0.0.50.80 > 10.0.0.1.53181: Flags [F.], seq 1, ack 2, win 453, options [nop,nop,TS val 3822939 ecr 249100129], length 0
Каждая строка включает:
- Метка времени Unix (20: 58: 26.765637)
- протокол (IP)
- имя или IP-адрес исходного хоста и номер порта (10.0.0.50.80)
- имя хоста или IP-адрес назначения и номер порта (10.0.0.1.53181)
- Флаги TCP (Flags [F.]). Указывают на состояние соединения и могут содержать более одного значения:
- o S — SYN. Первый шаг в установлении соединения
- F — FIN. Прекращение соединения
- — ACK. Пакет подтверждения принят успешно
- P — PUSH. Указывает получателю обрабатывать пакеты вместо их буферизации
- R — RST. Связь прервалась
- Порядковый номер данных в пакете. (seq 1)
- Номер подтверждения. (ack 2)
- Размер окна (win 453). Количество байтов, доступных в приемном буфере. Далее следуют параметры TCP
- Длина полезной нагрузки данных. (length 0)
Установка tcpdump
В дистрибутивах на основе Debian tcpdump можно установить с помощью команды APT:
# apt install tcpdump -y
В дистрибутивах на основе RPM tcpdump можно установить с помощью YUM:
# yum install tcpdump -y
В RHEL 8 с использование DNF:
# dnf install tcpdump -y
Опции tcpdump
Запускать tcpdump нужно с правами root. Tcpdump включает в себя множество опций и фильтров. При запуске tcpdump без каких-либо параметров произойдет перехват всех пакетов, проходящих через интерфейс по умолчанию.
Вывести список доступных системе сетевых интерфейсов, в которых tcpdump может захватывать пакеты:
# tcpdump -D
или
# tcpdump --list-interfaces
1.eth0
2.nflog (Linux netfilter log (NFLOG) interface)
3.nfqueue (Linux netfilter queue (NFQUEUE) interface)
4.eth1
5.any (Pseudo-device that captures on all interfaces)
6.lo [Loopback]
Очень полезно для систем, в которых нет команды для вывода списка интерфейсов.
Для захвата пакетов, проходящих через определенный интерфейс, используйте -i с именем интерфейса. Если не указать имя, тогда tcpdump подберет первый обнаруженный сетевой интерфейс.
# tcpdump -i eth1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 262144 bytes
01:06:09.278817 IP vagrant-ubuntu-trusty-64 > 10.0.0.51: ICMP echo request, id 4761, seq 1, length 64
01:06:09.279374 IP 10.0.0.51 > vagrant-ubuntu-trusty-64: ICMP echo reply, id 4761, seq 1, length 64
01:06:10.281142 IP vagrant-ubuntu-trusty-64 > 10.0.0.51: ICMP echo request, id 4761, seq 2, length 64
- -v увеличивает количество отображаемой информации о пакетах
- -vv дает еще более подробную информацию
По умолчанию tcpdump преобразует IP-адреса в имена хостов, а также использует имена служб вместо номеров портов.
- -n Если DNS не работает или вы не хотите, чтобы tcpdump выполнял поиск имени.
# tcpdump –n
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
04:19:07.675216 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 2186733178:2186733278, ack 204106815, win 37232, length 100
04:19:07.675497 IP 10.0.2.2.50422 > 10.0.2.15.22: Flags [.], ack 100, win 65535, length 0
04:19:07.675747 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 100:136, ack 1, win 37232, length 36
04:19:07.675902 IP 10.0.2.2.50422 > 10.0.2.15.22: Flags [.], ack 136, win 65535, length 0
04:19:07.676142 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 136:236, ack 1, win 37232, length 100
- -c захватывает только набор строк, например, 5:
#tcpdump -c 5
04:19:07.675216 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 2186733178:2186733278, ack 204106815, win 37232, length 100
04:19:07.675497 IP 10.0.2.2.50422 > 10.0.2.15.22: Flags [.], ack 100, win 65535, length 0
04:19:07.675747 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 100:136, ack 1, win 37232, length 36
04:19:07.675902 IP 10.0.2.2.50422 > 10.0.2.15.22: Flags [.], ack 136, win 65535, length 0
04:19:07.676142 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 136:236, ack 1, win 37232, length 100
5 packets captured
- -tttt для использования более удобных временных меток (по умолчанию используются временные метки Unix)
# tcpdump –tttt
2020-07-06 04:30:12.203638 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 2186734102:2186734138, ack 204107103, win 37232, length 36
2020-07-06 04:30:12.203910 IP 10.0.2.2.50422 > 10.0.2.15.22: Flags [.], ack 36, win 65535, length 0
2020-07-06 04:30:12.204292 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 36:72, ack 1, win 37232, length 36
2020-07-06 04:30:12.204524 IP 10.0.2.2.50422 > 10.0.2.15.22: Flags [.], ack 72, win 65535, length 0
2020-07-06 04:30:12.204658 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 72:108, ack 1, win 37232, length 36
Фильтры tcpdump
Фильтр выражений
Фильтр выражений выбирает, какие заголовки пакетов будут отображаться. Если фильтры не применяются, отображаются все заголовки пакетов.
Самые распространенные фильтры :
- port
- host
- src
- dst
- tcp
- udp
- icmp
Фильтр портов
Фильт портов используется для просмотра пакетов, поступающих на определенный порт:
# tcpdump -i eth1 -c 5 port 80
23:54:24.978612 IP 10.0.0.1.53971 > 10.0.0.50.80: Flags [SEW], seq 53967733, win 65535, options [mss 1460,nop,wscale 5,nop,nop,TS val 256360128 ecr 0,sackOK,eol], length 0
23:54:24.978650 IP 10.0.0.50.80 > 10.0.0.1.53971: Flags [S.E], seq 996967790, ack 53967734, win 28960, options [mss 1460,sackOK,TS val 5625522 ecr 256360128,nop,wscale 6], length 0
23:54:24.978699 IP 10.0.0.1.53972 > 10.0.0.50.80: Flags [SEW], seq 226341105, win 65535, options [mss 1460,nop,wscale 5,nop,nop,TS val 256360128 ecr 0,sackOK,eol], length 0
23:54:24.978711 IP 10.0.0.50.80 > 10.0.0.1.53972: Flags [S.E], seq 1363851389, ack 226341106, win 28960, options [mss 1460,sackOK,TS val 5625522 ecr 256360128,nop,wscale 6], length 0
Фильтр хостов
Для перехвата пакетов, приходящих или исходящих от определенного хоста. Например, IP-адрес 10.0.2.15:
# tcpdump host 10.0.2.15
03:48:06.087509 IP 10.0.2.15.22 > 10.0.2.2.50225: Flags [P.], seq 3862934963:3862934999, ack 65355639, win 37232, length 36
03:48:06.087806 IP 10.0.2.2.50225 > 10.0.2.15.22: Flags [.], ack 36, win 65535, length 0
03:48:06.088087 IP 10.0.2.15.22 > 10.0.2.2.50225: Flags [P.], seq 36:72, ack 1, win 37232, length 36
03:48:06.088274 IP 10.0.2.2.50225 > 10.0.2.15.22: Flags [.], ack 72, win 65535, length 0
03:48:06.088440 IP 10.0.2.15.22 > 10.0.2.2.50225: Flags [P.], seq 72:108, ack 1, win 37232, length 36
Для перехвата пакетов определенных типов протоколов. Например, icmp, на интерфейсе eth1:
# tcpdump -i eth1 icmp
04:03:47.408545 IP vagrant-ubuntu-trusty-64 > 10.0.0.51: ICMP echo request, id 2812, seq 75, length 64
04:03:47.408999 IP 10.0.0.51 > vagrant-ubuntu-trusty-64: ICMP echo reply, id 2812, seq 75, length 64
04:03:48.408697 IP vagrant-ubuntu-trusty-64 > 10.0.0.51: ICMP echo request, id 2812, seq 76, length 64
04:03:48.409208 IP 10.0.0.51 > vagrant-ubuntu-trusty-64: ICMP echo reply, id 2812, seq 76, length 64
04:03:49.411287 IP vagrant-ubuntu-trusty-64 > 10.0.0.51: ICMP echo request, id 2812, seq 77, length 64
Комбинирование фильтров
Фильтры можно комбинировать с помощью операторов:
- AND
- OR
- NOT
Это позволит писать команды, которые могут более точно изолировать пакеты. Например, пакеты с определенного IP-адреса и для определенного порта:
# tcpdump -n -i eth1 src 10.0.0.1 and dst port 80
00:18:17.155066 IP 10.0.0.1.54222 > 10.0.0.50.80: Flags [F.], seq 500773341, ack 2116767648, win 4117, options [nop,nop,TS val 257786173 ecr 5979014], length 0
00:18:17.155104 IP 10.0.0.1.54225 > 10.0.0.50.80: Flags [S], seq 904045691, win 65535, options [mss 1460,nop,wscale 5,nop,nop,TS val 257786173 ecr 0,sackOK,eol], length 0
00:18:17.157337 IP 10.0.0.1.54221 > 10.0.0.50.80: Flags [P.], seq 4282813257:4282813756, ack 1348066220, win 4111, options [nop,nop,TS val 257786174 ecr 5979015], length 499: HTTP: GET / HTTP/1.1
00:18:17.157366 IP 10.0.0.1.54225 > 10.0.0.50.80: Flags [.], ack 1306947508, win 4117, options [nop,nop,TS val 257786174 ecr 5983566], length 0
Если нужно перехватить все пакеты кроме ICMP, используем оператор NOT:
# tcpdump -i eth1 not icmp
Сохранение заголовков в файл
Вывод tcpdump может довольно быстро перемещаться по экрану. В таких случаях можно сохранить заголовки пакетов в файле с опцией -w. Вывод сохраняется в файлы с расширением .pcap.
Следующая команда сохраняет 10 строк вывода интерфейса eth1 в icmp.pcap.
# tcpdump -i eth1 -c 10 -w icmp.pcap
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 262144 bytes
10 packets captured
10 packets received by filter
0 packets dropped by kernel
Прочитать этот файл можно с помощью опции -r
# tcpdump -i eth1 -c 10 -w icmp.pcap
reading from file icmp.pcap, link-type EN10MB (Ethernet)
05:33:20.852732 IP vagrant-ubuntu-trusty-64 > 10.0.0.51: ICMP echo request, id 3261, seq 33, length 64
05:33:20.853245 IP 10.0.0.51 > vagrant-ubuntu-trusty-64: ICMP echo reply, id 3261, seq 33, length 64
05:33:21.852586 IP vagrant-ubuntu-trusty-64 > 10.0.0.51: ICMP echo request, id 3261, seq 34, length 64
05:33:21.853104 IP 10.0.0.51 > vagrant-ubuntu-trusty-64: ICMP echo reply, id 3261, seq 34, length 64
05:33:22.852615 IP vagrant-ubuntu-trusty-64 > 10.0.0.51: ICMP echo request, id 3261, seq 35, length 64
Просмотр сведений о пакете
Пока мы видели только заголовки пакетов, а для просмотра содержимого нужно использовать параметр -A. Вывод содержимого будет в формате ASCII.
С помощью опции -X можно отобразить вывод в шестнадцатеричном формате, правда, это не сильно помогает в тех случаях, когда соединение зашифровано.
# tcpdump -c10 -i eth1 -n -A port 80
23:35:53.109306 IP 10.0.0.1.53916 > 10.0.0.50.80: Flags [P.], seq 2366590408:2366590907, ack 175457677, win 4111, options [nop,nop,TS val 255253117 ecr 5344866], length 499: HTTP: GET / HTTP/1.1
E..'..@.@.%.
...
..2...P..M.
uE............
.6.}.Q.bGET / HTTP/1.1
Host: 10.0.0.50
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
If-Modified-Since: Tue, 04 Mar 2014 11:46:45 GMT
Вывод
Утилита tcpdump проста в настройке и освоении. Необходимо лишь немного разобраться с:
- выводом
- фильтрами
- опциями
После чего tcpdump станет отличным помощником в вопросах обеспечения безопасности вашей сети.
In this tutorial I will help you how to use and install tcpdump in Windows machine. Tcpdump is a type of packet analyzer software utility that monitors and logs TCP/IP traffic passing between a network and the computer on which it is executed.
You can also use TCPDUMP on WINDOWS machine. This is command line sniffer tool for packet capturing in Windows machine.
It is clone of TCPDUMP which is most used to network sniffer in Unix machine. It is compiled with the original tcpdump community.
Follow my this tutorial to install tcpdump on Linux machine:
- How to install tcpdump on Linux machine?
Support Windows OS Lists by Microolap TCPDUMP for Windows:
- Windows XP
- Windows Vista
- Windows Server 2003
- Windows Server 2008
- Windows Server 2012
- Windows 8
- Windows 10
- Windows Server 2016
- Windows Server 2019
Follow this below link to Download Microolap TCPDUMP for Windows machine.
- Download Microolap TCPDUMP for Windows
Disclaimer
The above product developed by Microolap Technologies Ltd. and this site is not directly affiliated with Microolap Technologies Ltd.
All the above trademarks, product name and registered trademark and company name or logos mentioned on this page are the property of the their respective owners.
Technical Information
Name : tcpdump for Windows
File Size : 512.70KB
Requires : Windows Vista, Windows 7, Windows 8 and Windows 10.
Developer : Microolap Technologies Ltd.
Thank you! for visiting LookLinux.
If you find this tutorial helpful please share with your friends to keep it alive.
For more helpful topic browse my website www.looklinux.com.
To become an author at LookLinux Submit Article.
Stay connected to Facebook.
You may also like
About the author
Hi! I’m Santosh and I’m here to post some cool article for you. If you have any query and suggestion please comment in comment section.