Примеры применения

В данном разделе описываются основные примеры применения Microolap TCPDUMP for Windows
Ниже приведены примеры использования оригинального tcpdump в среде *nix и аналогичные команды TCPDUMP for Windows (tcpdump.exe) с указанием особенностей синтаксиса при запуске в средах:
  • Windows Subsystem for Linux
  • CMD.EXE
  • PowerShell

В среде Windows Subsystem for Linux рекомендуем использовать TCPDUMP for Windows, так как на данный момент оригинальный tcpdump не работает в WSL. При запуске возникает ошибка: tcpdump: socket: Invalid argument:

user@computer ~ $ date
Mon Jun 11 20:38:07 STD 2018

user@computer ~ $ uname -a
Linux computer 4.4.0-17134-Microsoft #81-Microsoft Sun May 20 01:14:00 PST 2018 x86_64 x86_64 x86_64 GNU/Linux

user@computer ~ $ cat /etc/issue
Ubuntu 16.04.4 LTS \n \l

user@computer ~ $ tcpdump --version
tcpdump version 4.9.2
libpcap version 1.7.4
OpenSSL 1.0.2g  1 Mar 2016

user@computer ~ $ tcpdump -i3
tcpdump: socket: Invalid argument

В средах PowerShell и CMD.EXE вместо tcpdump.exe допустимо использовать имя исполняемого файла без расширения – tcpdump. В среде Windows Subsystem for Linux необходимо использовать полное имя исполняемого файла – tcpdump.exe.

Для объединения части команды в один аргумент в примерах используются двойные кавычки ". В среде CMD.EXE для этой цели можно использовать только их, в средах *nix, PowerShell, Windows Subsystem for Linux также можно использовать одинарные кавычки '.

Вывести список сетевых интерфейсов, доступных системе
*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-пакеты.