any
, объединяющего трафик со всех интерфейсов. Если запустить tcpdump.exe
без указания прослушиваемого интерфейса, то прослушиваться будет первый обнаруженный.C:\>tcpdump -D 1.\Device\NdisWanBh (WAN Miniport (Network Monitor)) 2.\Device\{1F361AA0-9606-4422-836B-8D2465C812B6} (Realtek RTL8169/8110 Family Gigabit Ethernet NIC)
Вариант команды tcpdump.exe -i <номер_интерфейса>
значительно упрощает работу.
В Windows нет интерфейса any
, объединяющего трафик со всех интерфейсов. Если запустить tcpdump.exe
без указания прослушиваемого интерфейса, то прослушиваться будет первый обнаруженный.
Внимание: В приведённых ниже примерах интерфейс для прослушивания не указан.
<размер_файла>
задаёт размер файла в 1 000 000 байт (не 1 048 576 байт).-r
и -w
дает возможность отфильтровать данный PCAP-файл в новый PCAP-файлstdout
построчно для каждого пакета, иначе вывод происходит через буфер в 4096 байт. Удобно использовать с утилитой grep
(Linux, Windows Subsystem for Linux), FINDSTR
(CMD.EXE) или Select-String
(PowerShell).32
байт.64
байт.10.5.2.3
на порт назначения 3389
.10.100.0.0/16
в сеть 10.0.0.0/8
или 172.16.0.0/16
.172.16.0.0
на google.com
, исключая ICMP-пакеты.192.168.1.81
, кроме того, который приходит на порт назначения 22
(SSH).10.81.25.201
, записать в файл (в файл включается название хоста машины и дата, что очень удобно для дальнейшего хранения).10
.3306
.53
.-p
с фильтром ether host or ether broadcast
.80
, то есть только пакеты с данными (отфильтровать, например, SYN, FIN и ACK-пакеты).10.100.0.81
из сети 10.100.0.1
, отфильтровав ICMP-протокол.outfile.pcap
текущего каталога всех SYN-, ACK-пакетов (в количестве 10000
), отправленных на w.x.y.z1
с портов 8040
, 8043
, 8050
или 8053
, кроме пакетов, принимаемых с w.x.y.z2
. Этот фильтр не перехватывает SYN/ACK, отправленные с сервера на клиент – только инициализацию SYN- и SYN/ACK с клиента, а также все остальные ACK-пакеты от клиента.6
имеющий в первом байте (0) значение больше, чем пять с маской 15
(0000 1111
). В реальности данный фильтр будет показывать весь IP-трафик с заголовками больше, чем 20 байт (5 x 32bit блоки данных заголовков = 160 бит -> 160/8=20).Утилита tcpdump — отличный инструмент командной, который способен перехватывать и анализировать сетевой трафик. Может оказаться большим подспорьем при решении сетевых проблем. Пакеты можно сохранить в файл и анализировать позже. Рекомендуется время от времени запускать эту утилиту, чтобы следить за своей сетью.
Содержание:
- Вывод 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 станет отличным помощником в вопросах обеспечения безопасности вашей сети.
Tcpdump является одной из наиболее распространенных утилит для анализа сетевого трафика в операционной системе Linux. Однако, многие пользователи Windows сталкиваются с проблемой, поскольку данная утилита не входит в стандартный набор инструментов ОС. Но не стоит отчаиваться, ведь существует решение!
В данной статье мы рассмотрим пару методов, которые позволят вам использовать tcpdump на Windows. Они позволят вам анализировать сетевой трафик и получать ценную информацию о передаваемых пакетах.
Первый способ заключается в использовании среды Cygwin. Cygwin представляет собой коллекцию утилит Unix, которые позволяют работать в среде Windows. Установив и настроив Cygwin, вы сможете запустить tcpdump на своем компьютере и анализировать сетевой трафик так же, как это делается в Linux.
Пример команды для запуска tcpdump в Cygwin:
tcpdump -i eth0
Второй способ подразумевает использование форка tcpdump для Windows, таких как WinDump или Npcap. Они позволяют работать с tcpdump-совместимыми файлами pcap и обладают дополнительными функциями, такими как графический интерфейс и поддержка Wi-Fi карт. Установка WinDump или Npcap предоставит вам возможность использовать tcpdump на ОС Windows и анализировать передаваемый сетевой трафик.
Таким образом, хотя tcpdump не является частью стандартного набора инструментов Windows, вы можете использовать эту полезную утилиту на своем компьютере. С использованием Cygwin или форков tcpdump для Windows вы сможете анализировать сетевой трафик и получать ценную информацию о передаваемых пакетах.
Содержание
- Установка tcpdump на Windows
- Запуск tcpdump на Windows
- Захват пакетов с использованием tcpdump
- Фильтрация пакетов в tcpdump
- Анализ данных с использованием tcpdump
- Трассировка сетевых пакетов с помощью tcpdump
- Использование tcpdump для отладки сетевых проблем
Установка tcpdump на Windows
Для установки tcpdump на операционной системе Windows вам понадобится скачать и установить виртуальную машину Oracle VirtualBox.
- Перейдите на официальный сайт Oracle VirtualBox и скачайте установочный файл для Windows
- Запустите установочный файл и следуйте инструкциям мастера установки
- После успешной установки VirtualBox, загрузите готовый образ Virtual Machine с установленной Linux-системой, в которой будет работать tcpdump
- Запустите VirtualBox и импортируйте скачанный образ Virtual Machine
- Запустите Virtual Machine и следуйте инструкциям мастера установки Linux
- Установите tcpdump в Linux-системе, используя менеджер пакетов системы (например, apt-get)
- После установки tcpdump в Linux-системе, вы сможете использовать его для анализа сетевого трафика
Теперь у вас есть установленная и готовая к использованию утилита tcpdump на вашей Windows-системе. Вы можете использовать ее для захвата и анализа сетевого трафика на вашем компьютере или в сети.
Запуск tcpdump на Windows
Для использования утилиты tcpdump на ОС Windows, существует несколько способов.
1. Установка tcpdump с помощью WSL (Windows Subsystem for Linux):
WSL — это среда, которая позволяет запускать исполняемые файлы Linux на ОС Windows. Для установки tcpdump с помощью WSL, следуйте инструкциям:
Шаг | Команда |
---|---|
1 | Установите WSL, следуя официальным инструкциям. |
2 | Откройте терминал WSL и выполните команду sudo apt install tcpdump для установки tcpdump. |
3 | После установки tcpdump будет доступен для использования в терминале WSL. |
2. Использование контейнера Docker:
Если у вас установлен Docker на Windows, вы можете использовать контейнер с tcpdump. Выполните следующую команду в терминале Docker:
docker run --rm -it --network=host jess/tcpdump
После выполнения данной команды, tcpdump будет запущен в контейнере Docker и начнет захватывать и анализировать сетевой трафик на вашей машине.
3. Использование WinDump:
WinDump — это порт tcpdump для ОС Windows. Чтобы использовать WinDump, выполните следующие действия:
Шаг | Действие |
---|---|
1 | Загрузите WinDump с официального сайта и установите его. |
2 | Откройте командную строку Windows. |
3 | Перейдите в директорию, где установлен WinDump (обычно это C:\Program Files\WinDump). |
4 | Выполните команду windump -D , чтобы увидеть список доступных сетевых интерфейсов. |
5 | Выполните команду windump -i <interface> , где <interface> — это имя сетевого интерфейса, на котором вы хотите захватывать трафик. |
После выполнения всех необходимых шагов, tcpdump будет запущен на ОС Windows и готов к использованию.
Захват пакетов с использованием tcpdump
Для захвата пакетов с использованием tcpdump в операционной системе Windows необходимо выполнить следующие шаги:
- Установите tcpdump на свою систему. Для этого можно использовать предустановленный пакет совместимый с Windows или установить его самостоятельно.
- Откройте командную строку.
- Введите команду tcpdump, а затем укажите необходимые опции и фильтры для захвата пакетов.
- Нажмите Enter, чтобы выполнить команду.
Пример использования tcpdump для захвата пакетов:
tcpdump -i интерфейс -n -s 0 -w файл.pcap
В этом примере:
- -i интерфейс опция указывает tcpdump на то, с каким сетевым интерфейсом работать.
- -n опция отключает разрешение DNS-имен для IP-адресов.
- -s 0 опция указывает tcpdump не ограничивать размер захватываемых пакетов.
- -w файл.pcap опция указывает tcpdump на файл, в который сохранять захваченные пакеты.
После выполнения команды tcpdump начнет захватывать пакеты на указанном интерфейсе и сохранять их в файл.pcap. Для остановки захвата необходимо прервать выполнение команды, нажав сочетание клавиш Ctrl+C.
С помощью tcpdump можно также применять различные фильтры для выборочного захвата пакетов, анализировать их содержимое и многое другое. Данная утилита является незаменимым инструментом для работы с сетевым трафиком и предоставляет множество возможностей для его анализа и мониторинга.
Фильтрация пакетов в tcpdump
Фильтрация пакетов в tcpdump осуществляется с использованием выражений, которые задаются после ключевого слова ‘tcpdump’. Выражения могут быть достаточно сложными и могут включать в себя логические операторы, сравнения и другие функции.
Примеры фильтрации пакетов:
1. Фильтрация по IP-адресу источника:
tcpdump src 192.168.0.1
В данном примере будут отображены только те пакеты, которые исходят от узла с IP-адресом 192.168.0.1.
2. Фильтрация по IP-адресу назначения:
tcpdump dst 192.168.0.1
В этом случае будут показаны только пакеты, которые отправлены на узел с IP-адресом 192.168.0.1.
3. Фильтрация по порту назначения:
tcpdump dst port 80
В данном примере будут выведены только пакеты, отправленные на порт 80.
4. Фильтрация по протоколу:
tcpdump icmp
В этом случае будут отображены только ICMP-пакеты.
5. Сочетание условий фильтрации:
tcpdump src 192.168.0.1 and tcp port 80
В данном примере будут отображены только пакеты, исходящие с узла 192.168.0.1 и отправленные на порт 80.
Приведенные примеры демонстрируют лишь малую часть возможностей фильтрации пакетов в tcpdump. Утилита позволяет задавать более сложные фильтры, включая комбинации условий с использованием логических операторов. Это делает tcpdump мощным инструментом для анализа сетевого трафика.
Анализ данных с использованием tcpdump
Для анализа данных с использованием tcpdump необходимо выполнить следующие шаги:
- Установить tcpdump: tcpdump доступен для Linux и Windows. Для установки на Windows можно воспользоваться подобными утилитами, как WinDump или Npcap.
- Запустить tcpdump: после установки tcpdump, необходимо запустить команду tcpdump в командной строке с указанием параметров захвата трафика.
- Анализировать захваченные данные: tcpdump записывает захваченные данные в файл или отображает их в реальном времени в командной строке. Полученные данные можно анализировать с помощью различных инструментов и программ, таких как Wireshark или tcpdump с параметрами фильтрации.
Примечание: Анализ данных с использованием tcpdump требует некоторых навыков в области сетевой безопасности и протоколов. Рекомендуется изучить документацию tcpdump и получить предварительные знания о сетевых протоколах перед использованием данной утилиты.
Трассировка сетевых пакетов с помощью tcpdump
С помощью tcpdump можно отслеживать передачу пакетов между узлами сети и анализировать содержимое пакетов. Tcpdump предоставляет широкий спектр функций, позволяющих фильтровать пакеты по различным параметрам, например, по IP-адресу или порту назначения. Это позволяет получить информацию о конкретных взаимодействиях или даже атаках, происходящих в сети.
Для использования tcpdump на Windows необходимо установить WinPcap — библиотеку для захвата пакетов сетевого трафика. После установки WinPcap можно запускать tcpdump командой в командной строке.
Пример использования:
tcpdump -i eth0
В данном примере -i eth0 указывает tcpdump на сетевой интерфейс, с которого нужно захватывать пакеты. Запустив эту команду, tcpdump начнет выводить в консоль информацию обо всех пакетах, которые проходят через сетевой интерфейс eth0.
Tcpdump можно настроить для более тонкой настройки фильтрации пакетов. Например, команда tcpdump port 80 позволит отслеживать только пакеты с портом назначения 80 (HTTP), что может быть полезно для отладки веб-сайтов или приложений.
Это лишь небольшой пример того, как можно использовать tcpdump для трассировки сетевых пакетов в сети Windows. Утилита tcpdump обладает богатым функционалом и может быть полезной для решения различных задач, связанных с анализом сетевого трафика.
Использование tcpdump для отладки сетевых проблем
Ниже приведены примеры использования tcpdump для решения некоторых типичных сетевых проблем:
- Проверка наличия трафика: Если у вас возникли проблемы с подключением к удаленному хосту или вы не видите ожидаемые пакеты на вашем компьютере, tcpdump может помочь вам узнать, идет ли трафик через вашу сеть. Для этого просто запустите tcpdump с нужными фильтрами и выведите результат на экран.
- Анализ проблем с соединением: Если у вас возникают проблемы с соединением, tcpdump может помочь вам определить, где именно возникает проблема. Вы можете отслеживать пакеты с информацией о состоянии соединения, а также смотреть на заголовки пакетов, чтобы выяснить, какие могут быть причины проблемы.
- Поиск и устранение узких мест: Если ваша сеть работает медленно или у вас возникают проблемы с пропускной способностью, tcpdump поможет вам найти узкие места в сети. Вы можете анализировать трафик и искать пакеты с большими задержками или аномально большими размерами. Таким образом, вы можете определить, какие устройства или соединения вызывают проблемы и принять меры для исправления.
- Проверка наличия атак: Tcpdump также может быть полезен для обнаружения атак на вашу сеть. Вы можете отслеживать входящие и исходящие пакеты, проверять заголовки пакетов на наличие подозрительной активности и анализировать пакеты, связанные с возможными уязвимостями.
Tcpdump является мощным инструментом для отладки сетевых проблем и может быть использован для решения различных задач. Запустить tcpdump на Windows можно с помощью Cygwin или подобных инструментов, которые обеспечивают работу командной строки UNIX-подобной операционной системы на Windows.
Homepage: Official web site of tcpdump
Утилита tcpdump относится к числу так называемых «снифферов» — программ предназначенных для перехвата сетевого трафика. Одним словом, tcpdump предназначен для подслушивания. Разработан Группой сетевых исследований (Network Reseach Group, NRG) Отдела информационных и вычислительных технологий (Information and Computing Sciences Division, ICSD) в Национальной лаборатории Лоренс Беркли (Lawrence Berkeley National Laboratory, LBNL).
tcpdump не единственный Сетевые анализаторы снифферы, которым может пользоваться администратор. Кроме tcpdump можно обратить внимание на такие программы, как:
tcpdump работает при помощи интерфейса bpf (Berkeley Packet Filter). Если поддержку этого устройства отключить, сниффинг в BSD окажется невозможен. Права на запуск программы tcpdump определяются правами доступа к устройсву bpf (/dev/bpf0). Эти права можно регулировать через devfs. Если вы предоставляете, например, группе operator права на чтение из этого устройства, то это значит, что все члены этой группы смогут перехватывать любой трафик, в том числе трафик суперпользователя.
Если программа tcpdump вызвана для прослушивания некоторого интерфейса, она переводит его в «promiscuous mode» — «неразборчивый режим». В этом режиме интерфейс ловит вообще все пакеты, которые до него добрались, а не только пакеты адресованные непосредственно ему. Таким образом, если сеть собрана не на коммураторах (switch), а на репитерах (hub), то tcpdump позволит перехватить трафик между посторонними машинами, т.е. подслушать разговор двух сторонних машин. Сказанное не означает, что перехват трафика невозможен в сети собранной на коммутаторах. Впрочем, интерфейс можно и не переводить в promiscous mode, если передать программе аргумент -p.
Ключ -w применяется для записи данных в отдельный файл. Прочитать это файл можно применяя ключи -r и -X(показать заголовки), например:
# tcpdump -r tcpdumplog # tcpdump -X -r tcpdumplog
# tcpdump -i eth0 -n port 5060 -w mbill or # tcpdump -i eth0 -n -s 0 port 5060 -vvv -w /home/capture_file_name or # tcpdump -i eth0 -n host 89.31.241.2 -vvv -w /home/textcall
Анализирует траффик удаленно через SSH с помощью Wireshark
ssh root@HOST tcpdump -U -s0 -w - 'not port 22' | wireshark -k -i -
UDP трафик с и на IP xxx.xxx.xxx.251 destined for port 5060:
# tcpdump -nnvvS udp and host xxx.xxx.xxx.251 and dst port 5060
Записать в файл mbill251 весь трафик с хоста xxx.xxx.xxx.251 за исключением трафика ssh
# tcpdump -n -i eth0 host xxx.xxx.xxx.251 -vvv and not port 22 -w /home/mbill251
Прослушать порт 5060 с ip xxx.xxx.xxx.251
tcpdump -i eth0 -n -s 0 port 5060 and host xxx.xxx.xxx.251 -vvv -w /usr/local/tcpdumplog/log
tcpdump -i eth0 -n -s 0 port 1720 and host xxx.xxx.xxx.251 -vvv -w /usr/local/tcpdumplog
H.323 сигналинг ловим с двух IP. В таком виде с двух IP отказалось снимать, может быть OR нужно было поставить.
# tcpdump -i eth0 -n -s 0 port 1720 and host xxx.xxx.164.1 and host xxx.xxx.107.1 -vvv -w /usr/local/tcpdumplog/logfile
перечислить доступные интерфейсы (которые можно прослушивать при помощи опции -i)
tcpdump -D
посмотреть трафик одного хоста:
tcpdump host 1.2.3.4
посмотреть трафик на порте:
tcpdump src port 80
посмотреть IP трафик на хост:
tcpdump ip host 1.2.3.4
посмотреть ARP трафик на хост:
tcpdump arp host 1.2.3.4
посмотреть RARP трафик на хост:
tcpdump rarp host 1.2.3.4
посмотреть трафик, кроме хоста unixserver:
tcpdump not host unixserver
посмотреть трафик на server1 и server2
tcpdump host server1 or host server2
посмотреть содержимое пакетов на интерфейсе tun0 на хост ya.ru
tcpdump -X -i tun0 host ya.ru
подсмотреть номера и пароли к icq
tcpdump -X -i fxp1 port aol
посмотреть содержимое пакетов на интерфейсе tun0 на хост ya.ru, при этом прочитать из каждого пакета по 1500 байт и не преобразовывать IP в имя хоста
tcpdump -X -s 1500 -n -i tun0 host ya.ru
Примеры использования tcpdump AND OR EXCEPT
AND and or && OR or or || EXCEPT not or !
TCP traffic from 10.5.2.3 destined for port 3389:
# tcpdump -nnvvS tcp and src 10.5.2.3 and dst port 3389
Traffic originating from the 192.168 network headed for the 10 or 172.16 networks:
# tcpdump -nvX src net 192.168.0.0/16 and dst net 10.0.0.0/8 or 172.16.0.0/16
Non-ICMP traffic destined for 192.168.0.2 from the 172.16 network:
# tcpdump -nvvXSs 1514 dst 192.168.0.2 and src net 172.16.0.0/16 and not icmp
# tcpdump -nvvvpi rl0 tcp and not port ssh and not port smtp
Лечение: запускаем команду и ищем MAC c ошибкой
# tcpdump -vvv -n -l -e arp | grep 0.0.0.0 ... 16:43:57.407018 00:0e:89:1d:cc:87 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 60: arp who-has 86.90.285.175 (00:50:fc:f0:3e:e9) tell 0.0.0.0 ...
arplookup 0.0.0.0 failed: host is not on local network
Default route 0.0.0.0
# tcpdump -vvv -n -l -e arp # tcpdump -i rl1 -vvv -n -l -e arp
arpdig – dig an interface for arp responses. Выводит соответствие между IP и MAC. Пример использования:
# arpdig 195.143.151.1/28
gratuitous arp — самообращенные запросы. При таком запросе инициатор формирует пакет, где в качестве IP используется его собственный адрес.
Использование утилиты arping — Работа с ARP протоколом: очистка таблицы level «ping» utility Пример использования:
for /l %i in (1,1,254) do ping -n 1 -w 1 192.168.1.%i arp -a | find "арп"
Файлы tcpdump совместимы с Wireshark. Запуская ее с параметром -w filename, мы получаем файл, содержащий нужный нам сетевой трафик. К сожалению, по умолчанию в tcpdump каждый пакет ограничивается 96ю байтами (которых, как правило, достаточно для анализа любых пакетов). Однако если нужно залезть глубже и смотреть всё содержимое пакетов, нужно использовать команду -s size (где size — размер пакетов, которые нужно ловить). Для обычного ethernet’а размер пакетов равен 1500, для «разогнанного» гигабитного etherneta — порой до 65к.
Итого, имеем следующую команду:
# tcpdump -s 1500 -w filename
И используем ее для того, чтобы можно было создать полный дамп сетевого трафика, который можно смотреть в Wireshark без сообщений вида Packet size limited during capture
Если указать -s 0 тогда размер пакета не важен будет браться все.
Утилиту tcpdump можно использовать не только в Linux, но Windows.
TCPDUMP для Windows является клоном TCPDUMP, наиболее используемого сетевого анализатора / анализатора для UNIX, скомпилированного с исходным кодом tcpdump (tcpdump.org) и пакетом SDK от Microolap Packet Sniffer (без libpcap / WinPcap).
Клон TCPDUMP для Windows можно скачать на microolap.com
Читайте также
На чтение 4 мин Опубликовано Обновлено
Tcpdump – это утилита командной строки, которая позволяет анализировать сетевой трафик в режиме реального времени. Оригинальная версия Tcpdump была разработана для операционных систем Unix, но в настоящее время существуют альтернативные версии, предназначенные для других платформ, включая Windows.
Tcpdump может быть полезен во многих ситуациях, от решения проблем сети до мониторинга и анализа безопасности. С его помощью можно просматривать пакеты данных, перехватываемые сетевым адаптером, и анализировать их содержимое. Утилита позволяет отслеживать различные протоколы, такие как TCP, UDP, ICMP и другие, и выводить информацию о них в удобочитаемом формате.
Использование Tcpdump на Windows может оказаться полезным для сетевых администраторов и разработчиков, которым необходимо узнать, что происходит в сети в реальном времени. В данной статье мы рассмотрим, как установить и использовать Tcpdump на Windows, а также расскажем о некоторых основных командах, которые помогут вам использовать эту утилиту эффективно.
Содержание
- Определение и функции
- Установка и настройка
- Примеры использования
Определение и функции
Tcpdump для Windows представляет собой утилиту командной строки, которая позволяет анализировать и отлавливать сетевой трафик на компьютере под управлением операционной системы Windows. Эта утилита широко используется администраторами сетей и специалистами по безопасности для отладки, мониторинга и анализа сетевых протоколов.
Основные функции Tcpdump для Windows:
- Захват и отображение сетевого трафика: Tcpdump позволяет захватывать и анализировать в реальном времени все пакеты, проходящие через сетевой интерфейс компьютера. Он позволяет просматривать заголовки и содержимое пакетов, а также анализировать различные сетевые протоколы.
- Фильтрация и сортировка пакетов: Утилита позволяет применять разнообразные фильтры для отображения только нужной информации. Это позволяет существенно упростить анализ и уменьшить объем отображаемых данных.
- Анализ сетевых протоколов: Tcpdump предоставляет возможности для анализа различных сетевых протоколов, таких как IP, TCP, UDP, ICMP, DNS и других. Он позволяет просматривать и анализировать заголовки пакетов, содержимое полей и другие параметры протоколов.
- Отладка и устранение неполадок в сети: Tcpdump позволяет отслеживать и анализировать сетевой трафик для выявления проблем и неполадок в сети. Это позволяет администраторам сетей быстро определить и устранить проблемы, связанные с сетевыми настройками или настройками сетевого оборудования.
- Мониторинг безопасности: 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. Вы можете комбинировать различные фильтры, указывать другие параметры и получать детализированный анализ сетевого трафика по своим потребностям.