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 — отличный инструмент командной, который способен перехватывать и анализировать сетевой трафик. Может оказаться большим подспорьем при решении сетевых проблем. Пакеты можно сохранить в файл и анализировать позже. Рекомендуется время от времени запускать эту утилиту, чтобы следить за своей сетью.

Содержание:

  • Вывод 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

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

Читайте также

На чтение 4 мин Опубликовано Обновлено

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

Tcpdump может быть полезен во многих ситуациях, от решения проблем сети до мониторинга и анализа безопасности. С его помощью можно просматривать пакеты данных, перехватываемые сетевым адаптером, и анализировать их содержимое. Утилита позволяет отслеживать различные протоколы, такие как TCP, UDP, ICMP и другие, и выводить информацию о них в удобочитаемом формате.

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

Содержание

  1. Определение и функции
  2. Установка и настройка
  3. Примеры использования

Определение и функции

Tcpdump для Windows представляет собой утилиту командной строки, которая позволяет анализировать и отлавливать сетевой трафик на компьютере под управлением операционной системы Windows. Эта утилита широко используется администраторами сетей и специалистами по безопасности для отладки, мониторинга и анализа сетевых протоколов.

Основные функции Tcpdump для Windows:

  1. Захват и отображение сетевого трафика: Tcpdump позволяет захватывать и анализировать в реальном времени все пакеты, проходящие через сетевой интерфейс компьютера. Он позволяет просматривать заголовки и содержимое пакетов, а также анализировать различные сетевые протоколы.
  2. Фильтрация и сортировка пакетов: Утилита позволяет применять разнообразные фильтры для отображения только нужной информации. Это позволяет существенно упростить анализ и уменьшить объем отображаемых данных.
  3. Анализ сетевых протоколов: Tcpdump предоставляет возможности для анализа различных сетевых протоколов, таких как IP, TCP, UDP, ICMP, DNS и других. Он позволяет просматривать и анализировать заголовки пакетов, содержимое полей и другие параметры протоколов.
  4. Отладка и устранение неполадок в сети: Tcpdump позволяет отслеживать и анализировать сетевой трафик для выявления проблем и неполадок в сети. Это позволяет администраторам сетей быстро определить и устранить проблемы, связанные с сетевыми настройками или настройками сетевого оборудования.
  5. Мониторинг безопасности: Tcpdump может использоваться специалистами по безопасности для обнаружения вторжений и малвари в сеть. Он позволяет отслеживать необычную активность, анализировать аномалии и определять подозрительный трафик.

Использование Tcpdump для Windows является полезным инструментом для администраторов сетей, специалистов по безопасности и разработчиков для решения различных задач, связанных с анализом сетевого трафика и отладкой сети.

Установка и настройка

Для использования Tcpdump на операционной системе Windows необходимо выполнить несколько шагов для установки и настройки.

Шаг Описание
1. Скачайте установочный файл Tcpdump для Windows с официального сайта разработчика.
2. Запустите установочный файл.
3. Следуйте инструкциям мастера установки, выбрав путь установки и другие параметры.
4. После завершения установки, проверьте наличие Tcpdump в системных переменных окружения. Добавьте путь к установленному Tcpdump в переменную «Path» в случае необходимости.
5. Откройте командную строку Windows и выполните команду «tcpdump» для проверки установки. Если установка прошла успешно, Tcpdump будет готов к использованию.

После установки и настройки Tcpdump на Windows, вы сможете использовать его для захвата и анализа сетевого трафика на вашем компьютере.

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

Ниже приведены примеры использования утилиты Tcpdump для Windows.

Пример команды Описание
tcpdump -i eth0 Захват и анализ сетевого трафика с помощью сетевого интерфейса eth0.
tcpdump -r capture.pcap Анализ сохраненного сетевого трафика из файла capture.pcap.
tcpdump host 192.168.0.1 and port 80 Захват и анализ сетевого трафика, проходящего через хост с IP-адресом 192.168.0.1 и порт 80.
tcpdump src 192.168.0.1 and dst 192.168.0.2 Захват и анализ сетевого трафика, исходящего от хоста с IP-адресом 192.168.0.1 и направленного к хосту с IP-адресом 192.168.0.2.
tcpdump -n -i eth0 Захват и анализ сетевого трафика с отключенным разрешением имен хостов.

Это лишь некоторые из возможностей утилиты Tcpdump для Windows. Вы можете комбинировать различные фильтры, указывать другие параметры и получать детализированный анализ сетевого трафика по своим потребностям.

  • Tcp windows size что это
  • Taskhostw exe как удалить вирус windows 10
  • Task host windows не дает выключить компьютер windows 10
  • Tcp windows auto tuning что это
  • Task host windows как включить