Как запустить tcpdump на windows

Вывести список сетевых интерфейсов, доступных системе *nix $  tcpdump     -D WSL $  tcpdump.exe -D CMD >  tcpdump.exe -D PS >  tcpdump.exe -D Выводится список доступных сетевых интерфейсов. В Windows нет интерфейса any, объединяющего трафик со всех интерфейсов. Если запустить tcpdump.exe без указания прослушиваемого интерфейса, то прослушиваться будет первый обнаруженный. Указать сетевой интерфейс для прослушивания трафика по номеру интерфейса *nix $  tcpdump     -i <номер_интерфейса> WSL $  tcpdump.exe -i <номер_интерфейса> CMD >  tcpdump.exe -i <номер_интерфейса> PS >  tcpdump.exe -i <номер_интерфейса> В Windows имена интерфейсов могут быть очень длинными, например:

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 без указания прослушиваемого интерфейса, то прослушиваться будет первый обнаруженный.
Внимание: В приведённых ниже примерах интерфейс для прослушивания не указан.

*nix $  tcpdump     -ttttnnvvS WSL $  tcpdump.exe -ttttnnvvS CMD >  tcpdump.exe -ttttnnvvS PS >  tcpdump.exe -ttttnnvvS Вывод IP-адреса и номер порта, временных меток в формате по умолчанию, дополнительное увеличение объема выводимой информации и порядковые номера для каждой строки дампа. *nix $  tcpdump     -nnvXSs 0 -c1 icmp WSL $  tcpdump.exe -nnvXSs 0 -c1 icmp CMD >  tcpdump.exe -nnvXSs 0 -c1 icmp PS >  tcpdump.exe -nnvXSs 0 -c1 icmp Вывод дополнительной информации (TTL, идентификация, общий размер, опции IP, контрольные суммы и т.п.) о пакете ICMP и отображение его в шестнадцатеричном виде. *nix $  tcpdump     -w capture_file.pcap WSL $  tcpdump.exe -w capture_file.pcap CMD >  tcpdump.exe -w capture_file.pcap PS >  tcpdump.exe -w capture_file.pcap Запись трафика в PCAP-файл. *nix $  tcpdump     -r capture_file.pcap WSL $  tcpdump.exe -r capture_file.pcap CMD >  tcpdump.exe -r capture_file.pcap PS >  tcpdump.exe -r capture_file.pcap Чтение трафика из PCAP-файла. *nix $  tcpdump     -C <размер_файла> -w <имя_файла> WSL $  tcpdump.exe -C <размер_файла> -w <имя_файла> CMD >  tcpdump.exe -C <размер_файла> -w <имя_файла> PS >  tcpdump.exe -C <размер_файла> -w <имя_файла> Задает проверку на размер файла перед записью каждого пакета. Если размер превышает значение заданного параметра, то tcpdump создает новый файл с префиксом в конце имени файла. <размер_файла> задаёт размер файла в 1 000 000 байт (не 1 048 576 байт). *nix $  tcpdump     –r packets.pcap «tcp dst port 80» –w http_packets.pcap WSL $  tcpdump.exe –r packets.pcap «tcp dst port 80» –w http_packets.pcap CMD >  tcpdump.exe –r packets.pcap «tcp dst port 80» –w http_packets.pcap PS >  tcpdump.exe –r packets.pcap «tcp dst port 80» –w http_packets.pcap Объединение параметров -r и -w дает возможность отфильтровать данный PCAP-файл в новый PCAP-файл *nix $  tcpdump     -A WSL $  tcpdump.exe -A CMD >  tcpdump.exe -A PS >  tcpdump.exe -A Отображать отправленные и полученные пакеты в ASCII-формате. *nix $  tcpdump     -l WSL $  tcpdump.exe -l CMD >  tcpdump.exe -l PS >  tcpdump.exe -l Вывод в stdout построчно для каждого пакета, иначе вывод происходит через буфер в 4096 байт. Удобно использовать с утилитой grep (Linux, Windows Subsystem for Linux), FINDSTR (CMD.EXE) или Select-String (PowerShell). *nix $  tcpdump     portrange 21-23 WSL $  tcpdump.exe portrange 21-23 CMD >  tcpdump.exe portrange 21-23 PS >  tcpdump.exe portrange 21-23 Перехватывать трафик с указанного диапазона портов. *nix $  tcpdump     src port 443 WSL $  tcpdump.exe src port 443 CMD >  tcpdump.exe src port 443 PS >  tcpdump.exe src port 443 Перехватывать трафик по номеру порта клиента. *nix $  tcpdump     dst port 443 WSL $  tcpdump.exe dst port 443 CMD >  tcpdump.exe dst port 443 PS >  tcpdump.exe dst port 443 Перехватывать трафик по номеру порта сервера. *nix $  tcpdump     less 32 WSL $  tcpdump.exe less 32 CMD >  tcpdump.exe less 32 PS >  tcpdump.exe less 32 Перехватывать только пакеты размером менее 32 байт. *nix $  tcpdump     greater 64 WSL $  tcpdump.exe greater 64 CMD >  tcpdump.exe greater 64 PS >  tcpdump.exe greater 64 Перехватывать только пакеты размером более 64 байт. *nix $  tcpdump     -nnvvS src 10.5.2.3 and dst port 3389 WSL $  tcpdump.exe -nnvvS src 10.5.2.3 and dst port 3389 CMD >  tcpdump.exe -nnvvS src 10.5.2.3 and dst port 3389 PS >  tcpdump.exe -nnvvS src 10.5.2.3 and dst port 3389 Перехватывать трафик от 10.5.2.3 на порт назначения 3389. *nix $  tcpdump     -nvX src net 10.100.0.0/16 and dst net 10.0.0.0/8 or 172.16.0.0/16 WSL $  tcpdump.exe -nvX src net 10.100.0.0/16 and dst net 10.0.0.0/8 or 172.16.0.0/16 CMD >  tcpdump.exe -nvX src net 10.100.0.0/16 and dst net 10.0.0.0/8 or 172.16.0.0/16 PS >  tcpdump.exe -nvX src net 10.100.0.0/16 and dst net 10.0.0.0/8 or 172.16.0.0/16 Перехватывать трафик из сети 10.100.0.0/16 в сеть 10.0.0.0/8 или 172.16.0.0/16. *nix $  tcpdump     -nvvXSs 1514 dst google.com and src net 172.16.0.0 and not icmp WSL $  tcpdump.exe -nvvXSs 1514 dst google.com and src net 172.16.0.0 and not icmp CMD >  tcpdump.exe -nvvXSs 1514 dst google.com and src net 172.16.0.0 and not icmp PS >  tcpdump.exe -nvvXSs 1514 dst google.com and src net 172.16.0.0 and not icmp Перехватывать пакеты подсети 172.16.0.0 на google.com, исключая ICMP-пакеты. *nix $  tcpdump     -vv src 192.168.1.81 and not dst port 22 WSL $  tcpdump.exe -vv src 192.168.1.81 and not dst port 22 CMD >  tcpdump.exe -vv src 192.168.1.81 and not dst port 22 PS >  tcpdump.exe -vv src 192.168.1.81 and not dst port 22 Перехватывать трафик, где адрес источника – 192.168.1.81, кроме того, который приходит на порт назначения 22 (SSH). *nix $  tcpdump     -nnv -s1514 –C 100 host 10.81.25.201 -w `hostname`_`date +%Y-%m-%d-%H.%M`.pcap WSL $  tcpdump.exe -nnv -s1514 –C 100 host 10.81.25.201 -w `hostname`_`date +%Y-%m-%d-%H.%M`.pcap CMD >  tcpdump.exe -nnv -s1514 –C 100 host 10.81.25.201 -w %computername%_%date%_%time:~0,2%.%time:~3,2%.pcap PS >  tcpdump.exe -nnv -s1514 –C 100 host 10.81.25.201 -w $(HOSTNAME)_$(Get-Date -format d).pcap Перехватывать трафик по хосту 10.81.25.201, записать в файл (в файл включается название хоста машины и дата, что очень удобно для дальнейшего хранения). *nix $  tcpdump     ether broadcast WSL $  tcpdump.exe ether broadcast CMD >  tcpdump.exe ether broadcast PS >  tcpdump.exe ether broadcast Перехватывать все Broadcast-пакеты. *nix $  tcpdump     ether host aa:bb:cc:11:22:33 WSL $  tcpdump.exe ether host aa:bb:cc:11:22:33 CMD >  tcpdump.exe ether host aa:bb:cc:11:22:33 PS >  tcpdump.exe ether host aa:bb:cc:11:22:33 Фильтрация по MAC-адресу. *nix $  tcpdump     «tcp[13] & 32 != 0» WSL $  tcpdump.exe «tcp[13] & 32 != 0» CMD >  tcpdump.exe «tcp[13] & 32 != 0» PS >  tcpdump.exe «tcp[13] & 32 != 0» Перехватывать пакеты URGENT (URG). *nix $  tcpdump     «tcp[13] & 16 != 0» WSL $  tcpdump.exe «tcp[13] & 16 != 0» CMD >  tcpdump.exe «tcp[13] & 16 != 0» PS >  tcpdump.exe «tcp[13] & 16 != 0» Перехватывать все ACKNOWLEDGE пакеты (ACK). *nix $  tcpdump     «tcp[13] & 8 != 0» WSL $  tcpdump.exe «tcp[13] & 8 != 0» CMD >  tcpdump.exe «tcp[13] & 8 != 0» PS >  tcpdump.exe «tcp[13] & 8 != 0» Перехватывать все PUSH пакеты (PSH). *nix $  tcpdump     «tcp[13] & 4 != 0» WSL $  tcpdump.exe «tcp[13] & 4 != 0» CMD >  tcpdump.exe «tcp[13] & 4 != 0» PS >  tcpdump.exe «tcp[13] & 4 != 0» Перехватывать все RESET пакеты (RST). *nix $  tcpdump     «tcp[tcpflags] == tcp-rst» WSL $  tcpdump.exe «tcp[tcpflags] == tcp-rst» CMD >  tcpdump.exe «tcp[tcpflags] == tcp-rst» PS >  tcpdump.exe «tcp[tcpflags] == tcp-rst» Перехватывать все RESET пакеты (RST) (другая интерпретация). *nix $  tcpdump     «tcp[13] & 2 != 0» WSL $  tcpdump.exe «tcp[13] & 2 != 0» CMD >  tcpdump.exe «tcp[13] & 2 != 0» PS >  tcpdump.exe «tcp[13] & 2 != 0» Перехватывать все SYNCHRONIZE пакеты (SYN). *nix $  tcpdump     «tcp[tcpflags] == tcp-syn» WSL $  tcpdump.exe «tcp[tcpflags] == tcp-syn» CMD >  tcpdump.exe «tcp[tcpflags] == tcp-syn» PS >  tcpdump.exe «tcp[tcpflags] == tcp-syn» Перехватывать все SYNCHRONIZE пакеты (SYN) (другая интерпретация). *nix $  tcpdump     «tcp[13] & 1 != 0» WSL $  tcpdump.exe «tcp[13] & 1 != 0» CMD >  tcpdump.exe «tcp[13] & 1 != 0» PS >  tcpdump.exe «tcp[13] & 1 != 0» Перехватывать все FINISH (FIN) пакеты. *nix $  tcpdump     «tcp[tcpflags] == tcp-fin» WSL $  tcpdump.exe «tcp[tcpflags] == tcp-fin» CMD >  tcpdump.exe «tcp[tcpflags] == tcp-fin» PS >  tcpdump.exe «tcp[tcpflags] == tcp-fin» Перехватывать все FINISH (FIN) пакеты (другая интерпретация). *nix $  tcpdump     «tcp[13] = 18» WSL $  tcpdump.exe «tcp[13] = 18» CMD >  tcpdump.exe «tcp[13] = 18» PS >  tcpdump.exe «tcp[13] = 18» Перехватывать все SYNCHRONIZE- / ACKNOWLEDGE-пакеты (SYNACK). *nix $  tcpdump     «tcp[13] = 6» WSL $  tcpdump.exe «tcp[13] = 6» CMD >  tcpdump.exe «tcp[13] = 6» PS >  tcpdump.exe «tcp[13] = 6» Перехватывать пакеты с обычными комплектами RST и SYN. *nix $  tcpdump     «tcp[32:4] = 0x47455420» WSL $  tcpdump.exe «tcp[32:4] = 0x47455420» CMD >  tcpdump.exe «tcp[32:4] = 0x47455420» PS >  tcpdump.exe «tcp[32:4] = 0x47455420» Перехватывать открытый текст HTTP и получить запрос. *nix $  tcpdump     «tcp[(tcp[12] >> 2):4] = 0x5353482D» WSL $  tcpdump.exe «tcp[(tcp[12] >> 2):4] = 0x5353482D» CMD >  tcpdump.exe «tcp[(tcp[12] >> 2):4] = 0x5353482D» PS >  tcpdump.exe «tcp[(tcp[12] >> 2):4] = 0x5353482D» Перехватывать SSH-соединение на любой порт. *nix $  tcpdump     «ip[8] < 10» WSL $  tcpdump.exe «ip[8] < 10» CMD >  tcpdump.exe «ip[8] < 10» PS >  tcpdump.exe «ip[8] < 10» Перехватывать пакеты с TTL меньше 10. *nix $  tcpdump     «ip[6] & 128 != 0» WSL $  tcpdump.exe «ip[6] & 128 != 0» CMD >  tcpdump.exe «ip[6] & 128 != 0» PS >  tcpdump.exe «ip[6] & 128 != 0» Перехватывать пакеты с установкой EVILBIT. *nix $  tcpdump     «ether[0] & 1 = 0 and ip[2:2] > 576» WSL $  tcpdump.exe «ether[0] & 1 = 0 and ip[2:2] > 576» CMD >  tcpdump.exe «ether[0] & 1 = 0 and ip[2:2] > 576» PS >  tcpdump.exe «ether[0] & 1 = 0 and ip[2:2] > 576» Перехватывать широковещательные и групповые пакеты, которые не были переданы с использованием широковещательных и групповых адресов Ethernet. *nix $  tcpdump     «port 80 and tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420» WSL $  tcpdump.exe «port 80 and tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420» CMD >  tcpdump.exe «port 80 and tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420» PS >  tcpdump.exe «port 80 and tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420» Перехватывать HTTP GET-запросы. *nix $  tcpdump     proto 11 WSL $  tcpdump.exe proto 11 CMD >  tcpdump.exe proto 11 PS >  tcpdump.exe proto 11 Перехватывать Network Voice Protocol. *nix $  tcpdump     -XX -s 0 port 23 WSL $  tcpdump.exe -XX -s 0 port 23 CMD >  tcpdump.exe -XX -s 0 port 23 PS >  tcpdump.exe -XX -s 0 port 23 Перехватывать все Telnet-сессии. *nix $  tcpdump     -T snmp WSL $  tcpdump.exe -T snmp CMD >  tcpdump.exe -T snmp PS >  tcpdump.exe -T snmp Перехватывать все SNMP-сессии. *nix $  tcpdump     -ttttxnqs 65535 port 3306 WSL $  tcpdump.exe -ttttxnqs 65535 port 3306 CMD >  tcpdump.exe -ttttxnqs 65535 port 3306 PS >  tcpdump.exe -ttttxnqs 65535 port 3306 Перехватывать все MySQL-сессии на порт 3306. *nix $  tcpdump     port 53 WSL $  tcpdump.exe port 53 CMD >  tcpdump.exe port 53 PS >  tcpdump.exe port 53 Перехватывать все DNS-запросы на порт 53. *nix $  tcpdump     ether proto 0x888e WSL $  tcpdump.exe ether proto 0x888e CMD >  tcpdump.exe ether proto 0x888e PS >  tcpdump.exe ether proto 0x888e Перехватывать пакеты Ethernet type EAPOL. *nix $  tcpdump     -i <номер_интерфейса> -p WSL $  tcpdump.exe -i <номер_интерфейса> -p CMD >  tcpdump.exe -i <номер_интерфейса> -p PS >  tcpdump.exe -i <номер_интерфейса> -p Указать программе, что не нужно переводить интерфейс в режим захвата. Нельзя использовать опцию -p с фильтром ether host or ether broadcast. *nix $  tcpdump     net <имя_сети> WSL $  tcpdump.exe net <имя_сети> CMD >  tcpdump.exe net <имя_сети> PS >  tcpdump.exe net <имя_сети> Перехватывать исходящий и входящий трафик в конкретной сети. *nix $  tcpdump     «tcp[tcpflags] & (tcp-syn | tcp-fin) != 0 and not src and dst net 127.0.0.1» WSL $  tcpdump.exe «tcp[tcpflags] & (tcp-syn | tcp-fin) != 0 and not src and dst net 127.0.0.1» CMD >  tcpdump.exe «tcp[tcpflags] & (tcp-syn | tcp-fin) != 0 and not src and dst net 127.0.0.1» PS >  tcpdump.exe «tcp[tcpflags] & (tcp-syn | tcp-fin) != 0 and not src and dst net 127.0.0.1» Перехватывать начальные и конечные пакеты (SYN и FIN-пакеты) для каждого tcp-соединения, исключая локальный хост. *nix $  tcpdump     «tcp port 80 and (((ip[2:2] – ((ip[0] & 0xf) << 2)) – ((tcp[12] & 0xf0) >> 2)) != 0)» WSL $  tcpdump.exe «tcp port 80 and (((ip[2:2] – ((ip[0] & 0xf) << 2)) – ((tcp[12] & 0xf0) >> 2)) != 0)» CMD >  tcpdump.exe «tcp port 80 and (((ip[2:2] – ((ip[0] & 0xf) << 2)) – ((tcp[12] & 0xf0) >> 2)) != 0)» PS >  tcpdump.exe «tcp port 80 and (((ip[2:2] – ((ip[0] & 0xf) << 2)) – ((tcp[12] & 0xf0) >> 2)) != 0)» Перехватывать все IPv4 HTTP-пакеты на порт и из порта 80, то есть только пакеты с данными (отфильтровать, например, SYN, FIN и ACK-пакеты). *nix $  tcpdump     dst 10.100.0.81 and src net 10.100.0.1 and not icmp WSL $  tcpdump.exe dst 10.100.0.81 and src net 10.100.0.1 and not icmp CMD >  tcpdump.exe dst 10.100.0.81 and src net 10.100.0.1 and not icmp PS >  tcpdump.exe dst 10.100.0.81 and src net 10.100.0.1 and not icmp Перехватывать пакеты на IP-адрес 10.100.0.81 из сети 10.100.0.1, отфильтровав ICMP-протокол. *nix $  tcpdump     «udp[17] & 0xf == 3» WSL $  tcpdump.exe «udp[17] & 0xf == 3» CMD >  tcpdump.exe «udp[17] & 0xf == 3» PS >  tcpdump.exe «udp[17] & 0xf == 3» Перехватывать все неудачные DNS-запросы. *nix $  tcpdump     -c 10000 -w outfile.pcap ((dst host w.x.y.z1 and not src host w.x.y.z2) and (dst port 8040 or dst port 8043 or dst port 8050 or dst port 8053)) and «tcp[tcpflags] & (tcp-syn | tcp-ack) != 0» WSL $  tcpdump.exe -c 10000 -w outfile.pcap ((dst host w.x.y.z1 and not src host w.x.y.z2) and (dst port 8040 or dst port 8043 or dst port 8050 or dst port 8053)) and «tcp[tcpflags] & (tcp-syn | tcp-ack) != 0» CMD >  tcpdump.exe -c 10000 -w outfile.pcap ((dst host w.x.y.z1 and not src host w.x.y.z2) and (dst port 8040 or dst port 8043 or dst port 8050 or dst port 8053)) and «tcp[tcpflags] & (tcp-syn | tcp-ack) != 0» PS >  tcpdump.exe -c 10000 -w outfile.pcap ((dst host w.x.y.z1 and not src host w.x.y.z2) and (dst port 8040 or dst port 8043 or dst port 8050 or dst port 8053)) and «tcp[tcpflags] & (tcp-syn | tcp-ack) != 0» Запись в файл outfile.pcap текущего каталога всех SYN-, ACK-пакетов (в количестве 10000), отправленных на w.x.y.z1 с портов 8040, 8043, 8050 или 8053, кроме пакетов, принимаемых с w.x.y.z2. Этот фильтр не перехватывает SYN/ACK, отправленные с сервера на клиент – только инициализацию SYN- и SYN/ACK с клиента, а также все остальные ACK-пакеты от клиента. *nix $  tcpdump     -i 6 «ip[0] & 15 > 5» WSL $  tcpdump.exe -i 6 «ip[0] & 15 > 5» CMD >  tcpdump.exe -i 6 «ip[0] & 15 > 5» PS >  tcpdump.exe -i 6 «ip[0] & 15 > 5» Перехватывать весь IP-трафик на интерфейсе 6 имеющий в первом байте (0) значение больше, чем пять с маской 15 (0000 1111). В реальности данный фильтр будет показывать весь IP-трафик с заголовками больше, чем 20 байт (5 x 32bit блоки данных заголовков = 160 бит -> 160/8=20). *nix $  tcpdump     src net 67.207.148.0 mask 255.255.255.0 WSL $  tcpdump.exe src net 67.207.148.0 mask 255.255.255.0 CMD >  tcpdump.exe src net 67.207.148.0 mask 255.255.255.0 PS >  tcpdump.exe src net 67.207.148.0 mask 255.255.255.0 Перехватывать входящий трафик из конкретной сети с указанием маски подсети. *nix $  tcpdump     src net 67.207.148.0/24 WSL $  tcpdump.exe src net 67.207.148.0/24 CMD >  tcpdump.exe src net 67.207.148.0/24 PS >  tcpdump.exe src net 67.207.148.0/24 Перехватывать входящий трафик из конкретной сети в формате CIDR notation. *nix $  tcpdump     -len arp WSL $  tcpdump.exe -len arp CMD >  tcpdump.exe -len arp PS >  tcpdump.exe -len arp Перехватывать все ARP-пакеты (broadcast и не только), не производить обратное разрешение имен (DNS-resolving). *nix $  tcpdump     -en port 67 or port 68 WSL $  tcpdump.exe -en port 67 or port 68 CMD >  tcpdump.exe -en port 67 or port 68 PS >  tcpdump.exe -en port 67 or port 68 Перехватывать DHCP-пакеты.

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 вы сможете анализировать сетевой трафик и получать ценную информацию о передаваемых пакетах.

Содержание

  1. Установка tcpdump на Windows
  2. Запуск tcpdump на Windows
  3. Захват пакетов с использованием tcpdump
  4. Фильтрация пакетов в tcpdump
  5. Анализ данных с использованием tcpdump
  6. Трассировка сетевых пакетов с помощью tcpdump
  7. Использование tcpdump для отладки сетевых проблем

Установка tcpdump на Windows

Для установки tcpdump на операционной системе Windows вам понадобится скачать и установить виртуальную машину Oracle VirtualBox.

  1. Перейдите на официальный сайт Oracle VirtualBox и скачайте установочный файл для Windows
  2. Запустите установочный файл и следуйте инструкциям мастера установки
  3. После успешной установки VirtualBox, загрузите готовый образ Virtual Machine с установленной Linux-системой, в которой будет работать tcpdump
  4. Запустите VirtualBox и импортируйте скачанный образ Virtual Machine
  5. Запустите Virtual Machine и следуйте инструкциям мастера установки Linux
  6. Установите tcpdump в Linux-системе, используя менеджер пакетов системы (например, apt-get)
  7. После установки 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 необходимо выполнить следующие шаги:

  1. Установите tcpdump на свою систему. Для этого можно использовать предустановленный пакет совместимый с Windows или установить его самостоятельно.
  2. Откройте командную строку.
  3. Введите команду tcpdump, а затем укажите необходимые опции и фильтры для захвата пакетов.
  4. Нажмите 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 необходимо выполнить следующие шаги:

  1. Установить tcpdump: tcpdump доступен для Linux и Windows. Для установки на Windows можно воспользоваться подобными утилитами, как WinDump или Npcap.
  2. Запустить tcpdump: после установки tcpdump, необходимо запустить команду tcpdump в командной строке с указанием параметров захвата трафика.
  3. Анализировать захваченные данные: 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 для решения некоторых типичных сетевых проблем:

  1. Проверка наличия трафика: Если у вас возникли проблемы с подключением к удаленному хосту или вы не видите ожидаемые пакеты на вашем компьютере, tcpdump может помочь вам узнать, идет ли трафик через вашу сеть. Для этого просто запустите tcpdump с нужными фильтрами и выведите результат на экран.
  2. Анализ проблем с соединением: Если у вас возникают проблемы с соединением, tcpdump может помочь вам определить, где именно возникает проблема. Вы можете отслеживать пакеты с информацией о состоянии соединения, а также смотреть на заголовки пакетов, чтобы выяснить, какие могут быть причины проблемы.
  3. Поиск и устранение узких мест: Если ваша сеть работает медленно или у вас возникают проблемы с пропускной способностью, tcpdump поможет вам найти узкие места в сети. Вы можете анализировать трафик и искать пакеты с большими задержками или аномально большими размерами. Таким образом, вы можете определить, какие устройства или соединения вызывают проблемы и принять меры для исправления.
  4. Проверка наличия атак: 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 станет отличным помощником в вопросах обеспечения безопасности вашей сети.

image

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

mm

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.

  • Как запустить red alert 2 на windows 10
  • Как запустить tails с windows
  • Как запустить shell скрипт на windows 10
  • Как запустить realtek hd audio для windows 10
  • Как запустить rome total war на windows 10