Tcpdump windows как пользоваться


Как пользоваться tcpdump | Losst

Утилита tcpdump - это очень мощный и популярный инструмент для перехвата и анализа сетевых пакетов. Она позволяет просматривать все входящие и исходящие из определенного интерфейса пакеты и работает в командной строке. Конечно, вы могли бы пользоваться Wirshark для анализа сетевых пакетов, это графическая утилита, но иногда бывают ситуации когда нужно работать только в терминале.

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

Содержание статьи:

Установка tcpdump

Во многих дистрибутивах команда tcpdump поставляется по умолчанию, но если в вашем дистрибутиве ее нет, то вы можете очень просто ее установить из официальных репозиториев. Например, в Ubuntu/Debian:

sudo apt install tcpdump

В Fedora/Red Hat/CentOS:

sudo yum install tcpdump

Когда установка завершится, вы можете переходить к работе.

Команда tcpdump

Перед тем как перейти к примерам работы с утилитой, давайте рассмотрим ее синтаксис и основные опции. Команда имеет такой синтаксис:

$ tcpdump опции -i интерфейс фильтры

При вызове обязательно нужно передать интерфейс, который будете отслеживать. Если интерфейс не указать, то будет использован первый в списке. Опции настраивают отображение и основные возможности утилиты, а фильтры позволяют отсеять ненужные пакеты. А теперь рассмотрим основные опции:

  • -A - выводить все пакеты в формате ASCII;
  • -c - закрыть программу после перехвата n-ого количества пакетов;
  • -C - при записи пакетов в файл, проверять размер файла, и если он больше заданного - создать новый файл;
  • -D - вывести список доступных сетевых интерфейсов;
  • -e - выводить информацию уровня соединения для каждого пакета, это может быть полезно, например, для отображения MAC адреса;
  • -f - выводить доменное имя для ip адресов;
  • -F - читать пакеты из файла, а не интерфейса;
  • -G - создавать новый файл лога через указанный промежуток времени;
  • -H - обнаруживать заголовки 802.11s;
  • -i - имя интерфейса для перехвата пакетов. Вы можете захватывать пакеты со всех интерфейсов, для этого укажите any;
  • -I - переключить интерфейс в режим монитора для захвата всех проходящих пакетов;
  • -j - установить формат Timestamp для записи пакетов;
  • -J - посмотреть доступные Timestamp;
  • -K - не проверять контрольные суммы пакетов;
  • -l - добавить поддержку прокрутки к выводу;
  • -L - вывести поддерживаемые протоколы подключения для интерфейса;
  • -n - не отображать доменные имена;
  • -r - прочитать пакеты из файла, созданного с помощью -w;
  • -v, -vv, -vvv - более подробный вывод;
  • -q - выводить минимум информации;
  • -w - записать вывод в файл;
  • -Z - пользователь, от имени которого будут создаваться файлы.

Это не все опции, но их вам будет вполне достаточно для решения большинства задач. Чаще мы будем применять фильтры. С помощью фильтров вы можете отсеивать только те типы пакетов, которые хотите видеть. Вы можете фильтровать по ip адресу, протоколу, сети, интерфейсу и многим другим параметрам. Но фильтры tcpdump мы будем рассматривать уже на примерах.

Как пользоваться tcpdump

Перед тем как перейти к использованию tcpdump нужно посмотреть какие сетевые интерфейсы вы можете использовать. Для этого запустите команду с опцией -D:

sudo tcpdump -D

Начнем рассматривать примеры tcpdump с захвата трафика на интерфейсе eth0, у меня это основной интерфейс, который подключен к интернету. Для работы программе необходимы права суперпользователя, поэтому не забудьте указать sudo:

sudo tcpdump -i eth0

Чтобы остановить работу команды нажмите Ctrl+C. В выводе вы сразу же увидите все перехваченные пакеты. Формат записи для каждого пакета будет выглядеть следующим образом:

13:03:41.795599 IP udp032919uds.hawaiiantel.net.6881 > 192.168.1.2.52055: Flags [.], seq 640160396:640161844, ack 436677393, win 2050, options [nop,nop,TS val 3805626438 ecr 4677385], length 1448

Такой формат характерен для пакетов данных, в зависимости от протокола выделенный черным текст будет отличаться. Сначала идет временная метка, затем протокол, далее зеленым отмечен ip адрес отправителя, а синим адрес адресата, в данном случае, нашего компьютера. Дальше идут дополнительные параметры tcp и в конце размер пакета в байтах. Подробность вывода информации можно контролировать с помощью опций -v, Например:

sudo tcpdump -v -i eth0

Здесь уже появляется информация о протоколе IP:

IP (tos 0x0, ttl 64, id 50309, offset 0, flags [DF], proto TCP (6), length 64)

Мы можем узнать информацию о времени жизни пакета ttl, версию протокола TCP и длину поля заголовка. Опция -vv будет выводить проверку контрольных сумм пакета и содержимое в некоторых случаях.

После опций вы можете указывать фильтры для пакетов. Вот основные параметры, по которым можно отсеивать пакеты:

  • host - имя хоста;
  • ip - ip адрес;
  • proto - протокол;
  • net - адрес сети или подсети;
  • port - адрес порта;
  • src - параметр, касающийся отправителя;
  • dst - параметр, касающейся получателя;
  • Доступны такие протоколы: ether, fddi, tr, wlan, ip, ip6, arp, rarp, decnet, tcp и udp.

Вы можете все это комбинировать между собой, чтобы получить желаемый результат. Рассмотрим более детально на примерах. Отсеем только пакеты, адресованные нашему компьютеру:

sudo tcpdump -i eth0 ip dst 192.168.1.2

Также мы можем отобрать пакеты, отправляемые на определенный узел:

sudo tcpdump -i eth0 dst host google-public-dns-a.google.com

Как видите, это DNS пакеты и здесь вместо флагов TCP содержится полезная информация, запрос ip адреса хоста. Также вы можете выбрать ответные пакеты от определенного хоста:

sudo tcpdump -i eth0 src host google-public-dns-a.google.com

Здесь нет полного содержимого пакета, если вы хотите его получить нужно использовать опцию -v или -vv:

sudo tcpdump -vv -i eth0 host dst google-public-dns-a.google.com

С помощью оператора and вы можете объединить несколько фильтров в один:

sudo tcpdump -i eth0 dst host google-public-dns-a.google.com and src host google-public-dns-a.google.com

 

 

Из операций объедения доступны and и or, также можно применять скобки для обозначения приоритета. Вам необязательно указывать host, во многих случаях достаточно src или dst, утилита сама поймет что имелось в виду. Точно такую же конструкцию можно использовать для портов. Например, мы можем отсеять все запросы или ответы к DNS (на порт 53):

sudo tcpdump -vv -i eth0 port 53

Точно такое же можно провернуть для http (порт 80):

sudo tcpdump -vv -i eth0 port 80

Естественно, тут тоже можно применять dst и src для более конкретных результатов. Вы можете фильтровать не один порт, а целый диапазон портов:

sudo tcpdump portrange 21-23

Если указать один из протоколов, вы отфильтруете только пакеты этого протокола, например tcp, udp или arp:

sudo tcpdump -vv arp

Точно также можно выбрать все udp пакеты:

sudo tcpdump -vv udp

Также доступен фильтр по обозначению сети:

sudo tcpdump net 129.168.1.1/24

Кроме того, вы можете фильтровать пакеты по их размеру, например, меньше 32 байт:

sudo tcpdump less 32

Или больше 128:

tcpdump greater 128

Иногда бывает необходимо сохранить захваченный трафик в файл, для этого используется опция -w:

sudo tcpdump -i eth0 -w file.pcap

Этот файл можно открыть с помощью любой программы для чтения таких файлов, например, Wireshark. Чтобы открыть сохраненные в файл пакеты используйте опцию -r:

sudo tcpdump -r file.pcap

Остался еще один момент, на который стоит обратить внимание. Это формат отображения содержимого пакетов. Вы можете вывести содержимое пакета в формате ASCII используйте опцию -A:

sudo tcpdump -A -i eth0

Также вы можете отобразить содержимое в формате HEX и ASCII для этого используйте -XX:

sudo tcpdump -XX -i eth0

Выводы

В этой статье мы рассмотрели как пользоваться tcpdump. Это очень мощный сетевой анализатор, который работает только через командную строку. Надеюсь, эта информация была полезной для вас и теперь использование tcpdump будет намного проще, если у вас остались вопросы, спрашивайте в комментариях!

На завершение видео с лекцией о tcpdump:

tcpdump Linux примеры использования [АйТи бубен]

👉Английский по скайпу: стоит ли учить?💥

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-UNIX окажется невозможен. Права на запуск программы tcpdump определяются правами доступа к устройсву bpf (/dev/bpf0). Эти права можно регулировать через devfs. Если вы предоставляете, например, группе operator права на чтение из этого устройства, то это значит, что все члены этой группы смогут перехватывать любой трафик, в том числе трафик суперпользователя.

Если программа tcpdump вызвана для прослушивания некоторого интерфейса, она переводит его в «promiscuous mode» — «неразборчивый режим». В этом режиме интерфейс ловит вообще все пакеты, которые до него добрались, а не только пакеты адресованные непосредственно ему. Таким образом, если сеть собрана не на коммураторах (switch), а на репитерах (hub), то tcpdump позволит перехватить трафик между посторонними машинами, т.е. подслушать разговор двух сторонних машин. Сказанное не означает, что перехват трафика невозможен в сети собранной на коммутаторах. Впрочем, интерфейс можно и не переводить в promiscous mode, если передать программе аргумент -p.

tcpdump для VoIP SIP H.323

Ключ -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 [email protected] 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

tcpdump Packet Filter Firewall (PF)

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

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

Проблема +arplookup 0.0.0.0 failed: host is not on local network

Лечение: запускаем команду и ищем 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 "арп"

Wireshark: Packet size limited during capture

Файлы 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 использование в Windows 10

Утилиту tcpdump можно использовать не только в Linux, но Windows.

TCPDUMP для Windows является клоном TCPDUMP, наиболее используемого сетевого анализатора / анализатора для UNIX, скомпилированного с исходным кодом tcpdump (tcpdump.org) и пакетом SDK от Microolap Packet Sniffer (без libpcap / WinPcap).

Клон TCPDUMP для Windows можно скачать на microolap.com

Ссылки

tcpdump.txt · Последнее изменение: 2020/11/18 19:10 (внешнее изменение)

Команды и примеры использования tcpdump

Tcpdump полезное и необходимое приложения для Linux/UNIX систем. С помощью tcpdump легко снять трафик с вашего сетевого интерфейса, для дальнейшего разбора. Без tcpdump сложно разобрать ошибки, которые возникают при работе с сетью и IP телефонией в целом.
В данной статье мы рассмотрим, как установить приложение tcpdump на ваш сервер и научим как правильно им пользоваться.

Установка приложения tcpdump

В Debian/Ubuntu/Linux Mint системах необходимо сделать следующее:

sudo apt-get install tcpdump

В системе RedHat/CentOS/Fedora необходимо сделать следующее:

sudo yum install tcpdump

Описание ключей приложения tcpdump

Ниже приведены несколько примеров, которые помогут вам проще понять и упростить работу с приложением tcpdump.

Tcpdump, по умолчанию, принимает только первые 68 96 байт данных из пакета. Если вы хотите, посмотреть более подробные пакеты, то добавьте опцию -s <число>, где число обозначает количество байтов, которые вы хотите захватить. Если установить -s 0 (ноль)- это означает захватывать все пакеты. Вот краткий список опций, которые используются больше всего:

  • -i any - прослушивать трафик со всех имеющихся интерфейсов
  • -n - отображать IP адреса вместо имени хостов
  • -nn - отображать IP адреса и номера портов вместо имени хостов и названия протоколов
  • -X - показывать пакет в hex и ASCII формате
  • -XX - показывать пакет в hex и ASCII формате и выводить заголовок ethernet
  • -v, -vv, -vvv - уровни отображаемой информации о пакете, которую вы получаете
  • -c - получение определенного N количества пакетов, далее запись останавливается
  • -s - количество байтов в пакете, которые обрабатывает tcpdump
  • -S - позволяет не обрабатывать абсолютные порядковые номера в относительные
  • -e - получение ethernet заголовка
  • -q - показывает минимальное количество информации о пакете
  • -E - расшифровать трафик IPSec, предоставляя ключ шифрования
  • -r - позволяет приложению tcpdump прочитать данные из файла
  • -t - не отображать метку времени в каждой строке
  • -tt - отображать неформатированную метку времени в каждой строке
  • -ttt - показывать дату и время
  • -w - записывать данные в файл

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

Различные выражения позволяют вам легко найти необходимый трафик. Tcpdump позволяет гибко настроить фильтры. В приложении tcpdump есть три типа выражений: type, dir и proto.

Под выражениями type понимается следующее host, net и port. Выражения типа dir - это src, dst, src или dst и src и dst. Ниже представлены примеры использования различных выражений:

host - просматривает трафик на основе IP адреса или имени хоста, если вы не используете ключ -n

tcpdump host 192.168.3.114

src, dst - ищет от определенного источника или по определенному назначению (выбирает трафик только с одной стороны)

tcpdump src 192.168.4.115 
tcpdump dst 192.168.5.116

net - захватывает весь трафик в сети, необходимо установить маску подсети

tcpdump net 192.168.3.0/24

proto - работает с протоколами tcp, udp и icmp. (Не надо писать proto)

tcpdump icmp

port - захватывает трафик по определенному порту

tcpdump port 5060

src, dst port - захватывает трафик по определенному порту от источника или к IP адресу назанчения

tcpdump src port 5060
tcpdump dst port 5060

src/dst, port, protocol - сочетание всех трех выражений

tcpdump src port 5060 and tcp 
tcpdump udp and src port 5060

Также есть возможность фильтрации по диапазону портов.

portrange - захват трафика по диапазону портов

tcpdump portrange 5060-5062

less, greater - захват трафика определенного размера в байтах

tcpdump less 32 
tcpdump greater 128

Так же в этом случае вы можете использовать символы (>, <, <=, >=)

tcpdump > 32 
tcpdump <= 128

Запись в файл

Tcpdump позволяет сохранять захваченный трафик в файл. Для этого необходимо использовать ключ -w. Если вы хотите считать трафик из файла, то необходимо использовать ключ -r.

При сохранении файла желательно использовать расширение файла *.cap или *.pcap. В дальнейшем, полученный файл, можно будет открыть в WireShark.

Запись всего трафика по порту 5060 в файл.

tcpdump -s1514 port 5060 -w voipnotes.cap

При необходимости файл можно загрузить заново в tcpdump.

tcpdump -r voipnotes.cap

Использование выражений И, ИЛИ и ИЛИ НЕ

Tcpdump позволяет комбинировать выражения при помощи логических выражений

И

and или &&

ИЛИ

or или ||

ИЛИ НЕ

not или !

Примеры:

TCP трафик от 192.168.2.113 и порт назначения 5060

tcpdump -nnvvS src 192.168.2.113 and dst port 5060

Трафик из сети 192.168.0.0 в сети 10.0.0.0 или 172.16.0.0

tcpdump -nvX src net 192.168.0.0/16 and dst net 10.0.0.0/8 or 172.16.0.0/16

Исключение ICMP пакетов, пункт назначения 192.168.0.2, источник подсеть 172.16.0.0

tcpdump -nvvXSs 1514 dst 192.168.0.2 and src net and not icmp

Трафик от хоста office и не по порту SSH

tcpdump -vv src office and not dst port 22

Группировка фильтров

Можно группировать фильтры, для этого необходимо использовать скобки (). При сложных выражениях необходимо использовать кавычки ''.

Трафик от 192.168.2.114 и порты назначения 5060 или 22

tcpdump ‘src 192.168.2.114 and (dst port 5060 or 22)’

Расширенные настройки фильтра

Можно отфильтровать трафик на основе конкретных частей пакета. Бывает полезно при поиске отображать пакеты, которые содержат  ACK или SYN.

Показывать пакеты URGENT (URG)

tcpdump ‘tcp[13] & 32!=0‘

Показывать пакеты ACKNOWLEDGE (ACK)

tcpdump ‘tcp[13] & 16!=0‘

Показывать пакеты PUSH (PSH)

tcpdump ‘tcp[13] & 8!=0‘

Показывать пакеты RESET (RST)

tcpdump ‘tcp[13] & 4!=0‘

Показывать пакеты SYNCHRONIZE (SYN)

tcpdump ‘tcp[13] & 2!=0‘

Показывать пакеты FINISH (FIN)

tcpdump ‘tcp[13] & 1!=0‘

Показывать пакеты SYNCHRONIZE/ACKNOWLEDGE (SYNACK)

tcpdump ‘tcp[13]=18‘

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

Здесь мы покажем фильтры, которые мы сами используем для захвата SIP трафика.

- Захват всего трафика по порту 5060 и сохранение в файл

tcpdump -iany -nnv -s1514 port 5060 -w ~/Test.cap

- Захват трафика по порту 5060 с определенного IP адреса и сохранение в файл

tcpdump -iany -nnv -s1514 port 5060 src 192.168.1.150 -w ~/Test.cap

- Захват трафика по порту 5060 на определенный IP адрес и сохранение в файл

tcpdump -iany -nnv -s1514 port 5060 dst 192.168.1.150 -w ~/Test.cap

- Захват трафика по порту 5060 на определенный IP адрес и сохранение в файл, с указанием каталога

tcpdump -iany -nnv -s1514 port 5060 dst 192.168.1.150 -w ~/usr/temp/Test.cap

- Захват трафика со всех интерфейсов, по хосту 10.81.25.201 и записывать в файл(в файл включается название хоста машины и дата, очень удобно для дальнейшего хранения)

tcpdump -iany -nnv -s1514 –C 100 host 10.81.25.201  -w ~/sipvoipnotesru__${HOSTNAME}_$(date +%Y-%m-%d).cap

Если вы в статье нашли ошибки или несоответствия, мы будем благодарны, если вы напишите нам о них в комментариях.

 

Руководство по tcpdump

.

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

Введение

Tcpdump был первоначально разработан в 1988 году Van Jacobson, Sally Floyd, Vern Paxson и Steven McCanne. Они работали в исследовательской группе Lawrence Berkeley Laboratory Network.

Инструмент дает своим пользователям возможность отображать TCP / IP и другие пакеты, принимаемые и передаваемые по сети. Он работает на большинстве операционных систем на базе Linux. Инструмент использует библиотеку libpcap для захвата пакетов. Она является библиотекой на основе C/C++. Tcpdump также имеет версию для Windows. Она называется Windump. Этот инструмент использует winpcap для своей библиотеки.

Доступные функции

Человек может использовать следующий параметр для печати строк tcpdump и libpcap. Кроме того, он способен распечатать сообщение об использовании инструмента, в котором указаны все доступные параметры.

tcpdump -h tcpdump --help
Список интерфейсов

Интерфейс — это точка соприкосновения компьютера и сети. Человек может использовать следующий параметр для печати списка сетевых интерфейсов, доступных в системе. Он также способен обнаруживать интерфейсы, на которых tcpdump может захватывать пакеты. Каждому сетевому интерфейсу присваивается номер. Это число можно использовать с параметром «- i» для захвата пакетов на конкретном интерфейсе.

Может возникнуть ситуация, когда машина, с которой работает пользователь, не способна перечислить сетевые интерфейсы, на которых она функционирует. Это проблема совместимости, препятствующая выполнению некоторых конкретных команд (ifconfig-a).

tcpdump –list-interface tcpdump -D
Захват по умолчанию

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

tcpdump

Захват трафика конкретного интерфейса

Пользователь будет захватывать трафик с помощью сети Еthernet, которая известна как «eth0». Этот тип интерфейса обычно соединяется с сетевым кабелем категории 5.

Для выбора этого интерфейса нужно использовать параметр «-i».

tcpdump -i eth0
Количество пакетов

Tcpdump обладает некоторыми удивительными функциями, которые пользователь может использовать, чтобы сделать свой анализ трафика более эффективным. Он способен получить доступ к некоторым из этих функций, используя различные параметры. Человек использует параметр «-c», который поможет ему захватить точное количество данных, которые нужны, и отобразить их. Так будет уточняться объем данных, которые захватил пользователь.

tcpdump -i eth0 -c10
Verbose mode

Verbose mode предоставляет человеку информацию о сканировании трафика. Например, время жизни (TTL), идентификацию данных, общую длину и доступные опции для IP-пакетов. Он позволяет также проводить дополнительные проверки целостности пакетов, такие как проверка заголовков IP и ICMP.

Чтобы получить дополнительную информацию с помощью сканирования, нужно использовать параметр «-v».

TCPDump предоставляет нам множество параметров, которые cвязаны с этим режимом, например -v, -vv, – vvv, где каждый из них имеет свою уникальную функцию.

  • параметр v — это традиционный режим;
  • параметр -vv – это уже чуть больше, чем простой традиционный режим, дополнительные поля печатаются из ответных пакетов NFS (Network File System), а SMB-пакеты полностью декодируются;
  • параметр -vvv способен обеспечить функционал tenet.
tcpdump -i eth0 -c 5 -v
Печать каждого пакета в формате ASCII

ASCII — это аббревиатура стандарта американского кода для обмена информацией. Это стандарт кодирования символов для связи по сети. Коды ASCII представляют собой текст на компьютерах и других устройствах. Большинство современных методов кодирования символов были основаны на кодах ASCII. Чтобы напечатать каждый пакет в коде ASCII, нужно использовать параметр «-a».

tcpdump -i eth0 -c 5 -A
Не стоит преобразовывать адрес

С помощью параметра tcpdump «-nn» человек может видеть фактический фоновый адрес без каких-либо фильтров. Эта функция помогает лучше понимать чистый трафик данных.

tcpdump -i eth0 -c 5 tcpdump -i eth0 -c 5 -nn
Фильтр портов

Фильтр портов помогает анализировать трафик данных конкретного порта. Таким образом, пользователь отслеживает порты назначения TCP / UDP или другие сетевые протоколы на основе этих портов.

tcpdump -i eth0 -c 5 -v port 80
Фильтр хостов

Этот фильтр помогает человеку проанализировать трафик данных конкретного хоста. Он также позволяет придерживаться определенного хоста, благодаря которому анализ становится еще лучше. Кроме того, можно применить несколько параметров, таких как «-v, -c, -а, -n», чтобы получить дополнительную информацию о хосте.

tcpdump host 104.28.6.89 -c10 -A -n
Заголовок каждого пакета

Заголовок содержит все инструкции для отдельных пакетов о переносимых ими данных. Эти инструкции могут быть длиной пакета, рекламой, синхронизацией, кодом ASCII, шестнадцатеричными значениями. Человек способен использовать параметр «-х», чтобы увидеть эту информацию, хранящуюся в пакетах данных.

tcpdump -i eth0 -c 3 -X
Порядковый номер TCP

Все байты в TCP-соединениях имеют порядковый номер, который является случайно выбранным начальным порядковым номером (ISN). SYN-пакеты имеют один порядковый номер, поэтому данные будут начинаться с ISN+1. Порядковый номер — это номер байта данных в пакете TCP, который передается дальше. Параметр «-s» используется для просмотра этих сегментов данных захваченных пакетов.

tcpdump -i eth0 -nnXS
Фильтр пакетов

Еще одна функция, предоставляемая tcpdump, — это фильтрация пакетов. Это помогает видеть результаты пакетной обработки конкретного пакета данных в сканировании. Если человек хочет применить этот фильтр в его сканировании, нужно просто добавить нужный пакет.

tcpdump -i eth0 icmp -c 10
Пакеты данных

Для определения направления потока данных в трафике человек может использовать следующий параметр:

tcpdump -i eth0 icmp -c 5 -Q in

Для просмотра всех запросов, которые человек отправляет на сервер, можно использовать следующий параметр (- Q out):

tcpdump -i eth0 icmp -c 5 -Q out
Функция «Live number count»

Человек также может включить функцию подсчета живых номеров, чтобы увидеть, сколько пакетов было отсканировано или захвачено во время сканирования трафика данных. Параметр «-number» используется для подсчета количества пакетов, захваченных при сканировании в живом режиме. Пользователь сравнивает количество пакетов с количеством активных номеров, чтобы оценить точность анализа.

Чтение и запись файла

С помощью tcpdump человек может читать и записывать файл расширения pcap. Write (- w) позволяет записывать необработанные пакеты данных, которые пользователь отправляет в качестве выходных данных в стандартный файл расширения pcap. Где опция read (- r) помогает прочитать этот файл. Чтобы записать выходные данные в файл .pcap, следует сделать следующее:

tcpdump -i eth0 icmp -c 10 -w file.pcap

Чтобы прочитать этот файл, пользователю нужно ввести:

tcpdump -r file.pcap
Длина снимка

Длина моментального снимка / snaplen считается байтами данных из каждого пакета. По умолчанию этот параметр установлен на 262144 байта. С помощью tcpdump пользователь способен настроить этот предел в соответствии с его требованиями, чтобы лучше проанализировать результат. Параметр «-s» помогает сделать это.

tcpdump -i eth0 icmp -s10 -c2 tcpdump -i eth0 icmp -s25 -c2 tcpdump -i eth0 icmp -s40 -c2 tcpdump -i eth0 icmp -s45 -c2
Dump mode

Dump mode имеет несколько параметров, таких как -d, -dd, -ddd. Где -D параметр сбрасывает скомпилированный соответствующий код в читаемый вывод, -DD параметр сбрасывает код в виде фрагмента программы на языке C, параметр -DDD сбрасывает дампы кода в виде десятичного числа с подсчетом. Чтобы увидеть эти результаты в сканировании, нужно ввести следующее:

tcpdump -i eth0 -c 5 -d tcpdump -i eth0 -c 5 -dd tcpdump -i eth0 -c 5 -ddd

Заголовок канального уровня

Tcpdump предоставляет возможность продемонстрировать заголовки каждого пакета данных на уровне каналов. Человек использует параметр «-e», чтобы получить эту информацию в результате имеющегося трафика данных. Как правило, используя этот параметр, человек получает MAC-адрес для таких протоколов, как Ethernet и IEEE 802.11.

tcpdump -i eth0 -c5 tcpdump -i eth0 -c5 -e
Анализ синтаксиса и печать

Как все знают, разговор конкретного синтаксиса с абстрактным синтаксисом называется синтаксическим анализом. Разговор абстрактного синтаксиса с конкретным синтаксисом называется распаковкой или печатью. Теперь для разбора пакета данных пользователь может использовать параметр «-x», а для вывода абстрактного синтаксиса – параметр «-xx». В дополнение к печати заголовков каждого пакета данных, человек также может распечатать пакет в шестнадцатеричном формате вместе с его snaplen.

tcpdump -i eth0 -c 2 -x tcpdump -i eth0 -c 2 -xx

Если пользователь хочет, чтобы эта информация предоставлялась ему с помощью параметра «-x» вместе с ее ASCII-кодом, то нужно использовать как раз его, а если он желает получить результаты параметра «-xx» вместе с их ASCII-кодами, то его нужно применить. Чтобы использовать эти параметры в анализе данных, человеку следует ввести следующие команды:

tcpdump -i eth0 -c 2 -X tcpdump -i eth0 -c 2 -XX
Сканирование пользователя

Если пользователь запускает tcpdump как root, то перед открытием любого сохраненного файла для анализа он заметит, что файл изменяет ID пользователя на пользователя, а идентификаторы групп – на основную группу своих пользователей.

Tcpdump включает в себя параметр -Z, с помощью которого человек может справиться с этой проблемой, но ему нужно указать имя пользователя следующим образом:

tcpdump -i eth0 -c 2 -Z root tcpdump -i eth0 -c 2 -Z kali

Есть еще один способ сделать это с помощью параметра «–relinquish-privileges=».

Точность временных меток

Метка времени — это время, зарегистрированное в файле, журнале или уведомлении, которые могут записывать, когда данные добавляются, удаляются, изменяются или передаются. В tcpdump есть множество параметров, которые связаны со значениями временных меток. Среди них: -t, -tt, -ttt, -tttt, -ttttt, где каждый параметр имеет свою уникальную функцию и значение.

  • параметр -t отключает печать метки времени на каждой строке дампа;
  • параметр -tt ставит метку времени за несколько секунд;
  • параметр -ttt способен включить печать разрешения за микросекунды или наносекунды в зависимости от точности временной метки между текущей и предыдущей строкой на строке дампа. Здесь микросекунда — это разрешение по умолчанию;
  • параметр -tttt дает возможность печатать метку времени в виде часов, минут, секунд и долей секунды;
  • параметр -ttttt очень похож на -ttt; он может установить временной промежуток между текущей и первой строкой на каждой линии дампа.

Чтобы применить эти функции в сканировании, нужно выполнить следующие команды:

tcpdump -i eth0 -c 2 tcpdump -i eth0 -c 2 -t tcpdump -i eth0 -c 2 -tt tcpdump -i eth0 -c 2 -ttt tcpdump -i eth0 -c 2 -tttt tcpdump -i eth0 -c 2 -ttttt
Форсирование пакетов

В tcpdump пользователь может принудительно сканировать трафик данных, чтобы просмотреть какой-то конкретный протокол. При использовании функции «force packet» человек способен интерпретировать указанный тип. С помощью параметра «-t» пользователь может увидеть в пакетах данных только нужные ему результаты протокола.

Основной синтаксис всех пакетов force останется таким же, как и другие параметры «-t», за которыми следует нужный протокол. Ниже приведены некоторые протоколы форсирования пакетов:

RADIUS

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

tcpdump -i eth0 -c5 -T radius
AODV

Протокол Adhoc On-demand Distance Vector — это протокол маршрутизации для мобильных и других беспроводных сетей. Этот протокол маршрутизации используется для получения низкой скорости передачи данных в беспроводных сетях. Чтобы увидеть эти результаты в сканировании, следует сделать следующее:

tcpdump -i eth0 -c5 -T aodv
RPC 

Remote procedure call – это протокол, который одна программа может использовать для запроса обслуживания для другой программы, расположенной на ином компьютере в сети, без необходимости разбираться в деталях соединения. Вызов процедуры также известен как вызов функции. Для получения этого протокола в сканировании следует использовать следующую команду:

tcpdump -i eth0 -c5 -T rpc
CNFP 

Протокол Cisco NetFlow – это сетевой протокол, разработанный компанией Сisco для сбора и мониторинга сетевого трафика, потока данных, генерируемых маршрутизаторами и коммутаторами с поддержкой NetFlow. Он экспортирует статистику трафика по мере ее записи, которая затем коллекционируется и сохраняется с помощью его сборщика. Чтобы получить этот протокол, следует выполнить следующее:

tcpdump -i eth0 -c5 -T rpc
LMP

Протокол Link Management предназначен для облегчения настройки и управления оптическими сетевыми устройствами. Чтобы понять работу LMP в сети, нужно применить этот протокол в сканировании.

tcpdump -i eth0 -c5 -T lmp
PGM 

Pragmatic general multicast – это надежный транспортный протокол многоадресной сети. Он может обеспечить постоянную последовательность пакетов для нескольких получателей одновременно. Что еще больше делает его пригодным для передачи файлов нескольким приемникам. Чтобы понять его работу в трафике данных, следует выполнить:

tcpdump -i eth0 -c5 -T pgm
RTP

Протокол Real-time application может кодировать мультимедийные потоки данных, такие как аудио или видео. Он делит их на пакеты и передает по IP-сети. Чтобы проанализировать этот протокол в трафике, нужно ввести данную команду:

tcpdump -i eth0 -c5 -T rtp
RTCP 

Протокол Real-time application control обладает всеми возможностями RTP наряду с дополнительными функциями. С помощью них человек может контролировать его работу в сетевой среде. Чтобы понять работу этого протокола в трафике данных, следует применить следующие команды:

tcpdump -i eth0 -c5 -T rtcp
SNMP 

Протокол Simple Network Management – это стандартный протокол Интернета для сбора и организации информации об управляемых устройствах в IP-сетях с целью изменения этой информации для корректировки поведения устройств. Чтобы увидеть его работу в трафике, нужно ввести эту команду:

tcpdump -i eth0 -c5 -T snmp
TFTP

Протокол Trivial File Transfer — это простой протокол передачи файлов lockstep, который позволяет своим клиентам получить файл с удаленного хоста. Он используется на ранних стадиях загрузки узла из локальной сети. Чтобы понять его трафик, необходимо выполнить эту команду:

tcpdump -i eth0 -c5 -T tftp

VAT

Visual Audio Tool был разработан Van Jacobson и Steven McCanne. Это электронный носитель, обрабатывающий как звуковые, так и видео файлы. Чтобы понять его пакеты данных в трафике, нужно ввести эти команды:

tcpdump -i eth0 -c5 -T vat
WB

Эта программа позволяет своим пользователям рисовать и печатать сообщения на холсте. Все должно быть синхронизировано для других пользователей, которые находятся в той же сети. Новые пользователи также должны получить все, что уже было оставлено на доске, когда они подключаются. Чтобы понять ее пакеты данных, следует выполнить следующую команду:

tcpdump -i eth0 -c5 -T wb
VXLAN

Virtual Xtensible Local Area Network – это технология в сфере сетевой виртуализации, с помощью которой человек пытается решить проблемы масштабируемости, связанные с большой областью облачных вычислений. Этот предлагаемый протокол инкапсуляции третьего уровня облегчит сетевым инженерам масштабирование облачных вычислений. Чтобы понять, что представляет его трафик, надо выполнить следующие команды:

tcpdump -i eth0 -c5 -T vxlan

Это всего лишь некоторые из протоколов, которые используются в параметре forced packets для получения фиксированного желаемого трафика данных после сканирования.

Promiscuous Mode

В сети Promiscuous Mode используется в качестве контроллера интерфейса, который заставит tcpdump передавать трафик, что он отправляется сразу на компьютер.

Чтобы настроить этот режим, следует выполнить данные команды:

ifconfig eth0 promisc ifconfig eth0

После включения Promiscuous Mode в сети надо захватить некоторые пакеты, применив эти команды:

tcpdump -i eth0 -c 10

Отключение Promiscuous Mode

В предыдущей главе читатели узнали о Promiscuous Mode, который означает, что сетевая интерфейсная карта будет передавать все полученные данные в ОС для обработки. По сравнению с традиционной операцией, когда в ОС будут передаваться только данные, связанные с MAC-адресом сетевой карты. Как правило, Promiscuous Mode используется для снифинга трафика. Но если человек хочет переключиться в режим многоадресной рассылки, нужно использовать параметр «-no-promiscuous-mode», который поможет ему добиться желаемого.

tcpdump -i eth0 -c 5 --no-promiscuous-mode

Сведения о версии

Стоит начать с одной из самых простых команд, чтобы читатели могли понять и связать все практические действия. Человек может использовать данный параметр для печати строк tcpdump, libpcap и OpenSSL.

tcpdump --version
Quick Mode

Если скорость сети очень медленная, выполнение любой операции займет больше времени, чем обычно. Человек, который разработал tcpdump, подумал об этой проблеме и предоставил пользователям способ ускорить процесс с помощью параметра «-q». Там образом, будет печататься меньше информации о протоколах и пакетах данных, чтобы сэкономить время.

tcpdump -i eth0 -c 5 tcpdump -i eth0 -c 5 -q
Запросы HTTP

Как известно, HTTP-запросы – это информационное сообщение от клиента к серверу по протоколу передачи гипертекста (HTTP). Существуют различные методы для доставки этой информации. Эти способы чувствительны к регистру и всегда упоминаются в верхней его части. С помощью tcpdump пользователь может захватить эти запросы для анализа трафика, отправленного по указанному протоколу.

Метод, который мы можем исследовать с помощью tcpdump, состоит в следующем:

GET — это запрос, который используется для получения информации с сервера по заданному URL-адресу.

tcpdump -s 0 -A -vv 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'

POST — это запрос, который используется для отправки данных на сервер. Например, информация о клиентах, загрузке файлов и использовании HTML-форм. Трафик по этому протоколу можно проанализировать с помощью следующей команды:

tcpdump -s 0 -A -vv 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354'

Request-URL – это единый идентификатор ресурса, который идентифицирует ресурс, к которому нужно применить запросы. Наиболее распространенная форма используется для идентификации ресурса на сервере. Если клиент хочет получить данные непосредственно с сервера, откуда они были взяты, то он создаст соединение с портом 80 хоста и отправит запрос. Эти запросы можно перехватить с помощью следующих команд:

tcpdump -v -n -l | egrep -i "POST /|GET /|Host:"
Агент пользователя

С помощью TCPDump человек также может увидеть, какой трафик генерируется из какого приложения. Он способен найти пользовательские агенты в трафике данных с помощью следующей команды:

tcpdump -nn -A -s150 -l | grep "User-Agent:"
Диапазон портов

Некоторые фильтры портов помогают анализировать трафик на конкретном порту. Но в tcpdump пользователь устанавливает диапазон портов, через которые он может отслеживать назначение TCP/UDP или других сетевых протоколов.

tcpdump -i eth0 portrange 21-80
Назначение

Чтобы проверить поток данных в сетевом трафике к определенному месту назначения, следует использовать следующую команду:

tcpdump -i eth0 dst google.com
Источник

Чтобы проверить трафик данных, поступающий из определенного источника, можно ввести следующую команду:

tcpdump -i eth0 src google.com
Сеть

Чтобы найти пакеты, связанные с определенной сетью, пользователь может использовать следующую функцию для анализа трафика:

tcpdump net 192.168.0.1 -c5

Пакеты TCP

TCP-пакет — это формат, состоящий из таких полей, как исходный порт и поле порта назначения. С помощью этих полей пользователь может идентифицировать конечные точки соединений, а также захватить эти TCP-пакеты в различных форматах флагов, то есть SYN, RST и ACK.

SYN-флаг известен как тот, который синхронизирует порядковые номера для инициирования TCP-соединения. Пользователь может захватить этот конкретный пакет из трафика с помощью tcpdump.

tcpdump 'tcp[tcpflags] == tcp-syn'

RST-флаг известен как флаг сброса. Этот флаг передается от получателя к отправителю, если пакет отправляется определенному хосту, который его там ждет. Первый флаг используется, чтобы восстановить соединение конечных точек TCP. Пользователь может захватить этот флаг из трафика данных с помощью tcpdump.

tcpdump 'tcp[tcpflags] == tcp-rst'

ACK-флаг известен как флаг подтверждения. Этот флаг используется для подтверждения того, что пакет данных успешно получен. Пользователь может захватить эти флаги с помощью tcpdump для изучения трафика данных.

tcpdump 'tcp[tcpflags] == tcp-ack' -c5

Tcpdump и Wireshark

Единственное различие между Wireshark и TCPDump заключается в том, что Wireshark — это графический интерфейс пользователя, а tcpdump – инструмент командной строки. Но с помощью нескольких источников пользователь использует команду tcpdump и просматривает результаты своего трафика данных в Wireshark, что, по мнению автора, является лучшим способом анализа трафика. Это можно сделать с помощью следующей команды:

ssh [email protected] 'tcpdump -c20 -nn -w - not port 22' | wireshark -k -i –

После выполнения этой команды человек немедленно откроет Wireshark и получит подробную информацию о сканировании. Нужно нажать на кнопку «OK», чтобы двигаться дальше.

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

После окончания всех формальностей появится экран захвата данных в реальном времени.

Выполнив все эти шаги, пользователь может запустить команду tcpdump и записать ее результаты в Wireshark.

Важно! Информация исключительно в учебных целях. Пожалуйста, соблюдайте законодательство и не применяйте данную информацию в незаконных целях.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Поделиться ссылкой

Утилита tcpdump, примеры опции фильтры

Довольно часто в системном администрировании возникают ситуации, для которых необходимо видеть подробную «картину» того, что происходит с передачей данных по сети. Проследить за трафиком и выявить проблемы в таких случаях позволяют утилиты-анализаторы пакетов. Одной из таких (и самой распространённой) является tcpdump – стандартный анализатор пакетов для Linux-систем.

Кроме tcpdump существуют и другие инструменты для анализа сетевого трафика, например такие как Wireshark и Tshark, которые являются усовершенствованными версиями tcpdump, но стандартным и до сих пор эффективным остаётся утилита tcpdump. С её помощью можно перехватывать, фильтровать по определённому критерию, а также выводить пакеты. Нужно заметить, что для полноценного доступа к пакетам необходимо запускать tcpdump от имени суперпользователя, поскольку сами пакеты — это низкоуровневые объекты системы. Кроме этого существуют определённые условия, в зависимости от сетевого оборудования, которые позволяют (или не позволяют) перехватывать все или только определённые пакеты или предоставлять только определённую информацию о них. Сетевое оборудование (сетевая карта, маршрутизатор и т. д.) должны поддерживать/разрешать доступ к пакетам, т. е. иметь (или предоставлять) механизм для передачи сведений о пакетах на более высокий программный уровень и в этом случае tcpdump, как впрочем и другие анализаторы пакетов, оказываются максимально эффективными. Кстати, аппаратные интерфейсы, если они работают в режиме «promiscuous mode», т. е. в так называемом «беспорядочном» режиме, позволяют системному ядру «видеть» все пакеты, т. е. даже и те, что адресуются для других компьютеров и устройств.

Принцип работы tcpdump

Как уже отмечалось, tcpdump является стандартной утилитой для анализа сетевого трафика в дистрибутивах Linux. Автором утилиты является Ван Якобсон. За всё время своего применения tcpdump проявил себя как весьма эффективный и надёжный инструмент. Поэтому в настоящее время многие аналоги в качестве основного формата файлов для чтения/записи результатов трассировки трафика используют формат tcpdump – libcap.

При запуске tcpdump автоматически производит поиск сетевых интерфейсов и для анализа использует первый найденный. Поэтому нужно обращать внимание на вывод, чтобы удостовериться, что анализируется нужный интерфейс. В противном случае легко вручную задать использование нужного интерфейса. Утилита умеет работать в режиме, который очень полезен при неработоспособной или слишком медленной службе DNS, т. е. когда есть риск потери пакетов до того как их сможет проанализировать tcpdump.

tcpdump опции

Для задания нужного сетевого интерфейса следует использовать опцию -i. Если необходимо знать адреса устройств (компьютеров, оборудования), то нужно задавать опцию -n. Это также очень полезно при проблемах с DNS. Опция -r позволяет читать информацию о пакетах из файла. Когда необходимы более подробные сведения о пакетах — поможет опция -v. Также существует опция -w для фиксирования информации в файле. Следует отметить, что в случае использования опции -w в файл записывается информация только о заголовках пакетов. Опция -s со значением 1056 (хотя это значение зависит от размера MTU-пакета) позволяет (совместно с -w) писать в файл дополнительную информацию. Объёмы данных могут быть очень большими и сложными по своей структуре (несмотря на то, что это текст) и поэтому в дальнейшем для их обработки рекомендуется использовать соответствующие высокопроизводительные утилиты, например awk.

Формат команды tcpdump следующий:

tcpdump [-опции] [фильтры]

В официальной документации (команда man tcpdump) можно найти несколько примеров использования этой утилиты для разных случаев с применением довольно разнообразных и сложных фильтров.

Важно заметить также, что tcpdump (да и вообще все анализаторы пакетов) при своей работе могут генерировать огромные массивы информации и сильно загружать работу сети, вплоть до отказов в её работе. Поэтому при анализе трафика следует применять рациональный подход — в зависимости от ситуации и условий задачи (или проблемы) использовать фильтры, тем более, что это является очень эффективной частью функционала tcpdump.

Наиболее часто используемые ключи при запуске tcpdump приведены таблице

ключ

описание

-a

Преобразовывает сетевые и широковещательные адреса в доменные имена.

-e

Отображает данные канального уровня (MAC-адрес, протокол, длина пакета). Помимо IP-адресов будут отображаться MAC-адреса компьютеров.

-F файл

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

-i

Указывает на то, какой сетевой интерфейс будет использоваться для захвата пакетов. По умолчанию — eth0, для выбора всех интерфейсов — any. Если отсутствует локальная сеть, то можно воспользоваться интерфейсом обратной связи lo.

-l

Использовать стандартный потоковый вывод tcpdump (stdout), например для записи в файл:

shell# tcpdump -l | tee out.log //отобразит работу tcpdump и сохранит результат в файле out.log

-N

Не добавляет доменное расширение к именам узлов. Например tcpdump отобразит ‘net’ вместо ‘net.library.org’

-n

Отображает IP-адрес вместо имени хоста.

-nn

Отображает номер порта вместо используемого им протокола.

-p

Не переводит интерфейс в режим приема всех пакетов (promiscuous mode).

-q

Выводит минимум информации. Обычно это имя протокола, откуда и куда шел пакет, порты и количество переданных данных.

-r

Этот параметр позволяет tcpdump прочесть трафик из файла, если он был предварительно сохранен параметром -w.

-S

Позволяет не обрабатывать абсолютные порядковые номера (initial sequence number — ISN) в относительные.

-s число

Количество байтов пакета, которые будет обрабатывать tcpdump. При установке большого числа отображаемых байтов информация может не уместиться на экране и её будет трудно изучать. В зависимости от того, какие цели вы преследуете, и следует выбирать значение этого параметра. По умолчанию tcpdump захватывает первые 68 байт (для SunOS минимум 96 байт), однако если вы хотите увидеть содержимое всего пакета, используйте значение в 1514 байт (максимально допустимый размер кадра в сети Ethernet).

-t

Не отображает метку времени в каждой строке.

-T тип

Интерпретация пакетов заданного типа. Поддерживаются типы aodv, cnfp, rpc, rtp, rtcp, snmp, tftp, vat, wb.

-tt

Отображает неформатированную метку времени в каждой строке.

-tttt

Показывает время вместе с датой.

-v

Вывод подробной информации (TTL; ID; общая длина заголовка, а также его параметры; производит проверку контрольных сумм IP и ICMP-заголовков)

-vv

Вывод ещё более полной информации, в основном касается NFS и SMB.

-vvv

Вывод максимально подробной информации.

-w файл

Сохраняет данные tcpdump в двоичном формате. Преимущества использования данного способа по сравнению с обычным перенаправлением в файл является высокая скорость записи и возможность чтения подобных данных другими программами, например snort, но этот файл нельзя прочитать человеку. Возможен вывод двоичных данных на консоль, для этого необходимо использовать -w —

-x

Делает распечатку пакета в шестнадцатеричной системе, полезно для более детального анализа пакета. Количество отображаемых данных зависит от параметра -s

-xx

То же, что и предыдущий параметр -x, но включает в себя заголовок канального уровня

-X

Выводит пакет в ASCII- и hex-формате. Полезно в случае анализа инцидента связанного со взломом, так как позволяет просмотреть какая текстовая информация передавалась во время соединения.

-XX

То же, что и предыдущий параметр -X, но включает заголовок канального уровня.

-с число

tcpdump завершит работу после получения указанного числа пакетов.

-U

Собранные пакеты будут сразу складываться в файл, а иначе копиться в памяти до тех пор, пока она не закончится

Фильтры tcpdump

Фильтры разделяются на следующие классификации

Тип:

host— адрес узла сети

port – порт на котором нужно ловить пакеты

portrange – диапазон портов

net – сеть

пример

tcpdump net 192.168.0.0/24

захват всего трафика в котором в качестве источника или получателя стоят ip адреса из сети 192.168.0.0/24

tcpdump  port 80

Будет захватываться весь трафик на 80-м порту.

Направление трафика по отношению к объекту мониторинга

src – отправитель

dst — получатель

например команда

src host 172.31.25.200

Захват трафика у которого отправитель ip адрес 172.31.25.200

Протокол

ether – базовая сетевая технология Ethernet, как правило указывает на то что в фильтре используется аппаратный MAC адрес

ip – протокол IPv4

ip6 – протокол IPv6

arp – протокол ARP

tcp – протокол TCP

udp – протокол UDP

Если протокол не указан, то будет захвачен трафик по все протоколам

Например команда

udp port 5060

захват трафика по протоколу udp порт 5060

Составные фильтры

Для того что бы более гибко фильтровать трафик можно использовать логические операции

«И» – and (&&)

«ИЛИ» – or (||)

«НЕ» – not (!) – инверсия значения

При этом приоритет этих операций следующий:

наивысшим приоритетом обладает операция инверсии

потом логическое «И»

наименьшим приоритетом обладает операция «ИЛИ».

Приоритет операций можно менять с помощью круглых скобок.

(net 172.16.0.0/24 or host 172.31.0.5) and tcp port 80  

захват трафика протокола TCP и использующего порт 80 принадлежащего сети 172.16.0.0/24 или хосту 172.31.0.5, как любому хосту по отдельности так и вместе

(net 172.16.0.0/24 || host 172.31.0.5) && not tcp port 80  

захват любого трафика кроме трафика протокола TCP и использующего порт 80 принадлежащего сети 172.16.0.0/24 или хосту 172.31.0.5 как любому хосту по отдельности так и вместе

tcpdump linux примеры

Запись вывода в файл

$ sudo tcpdump -w sshtrace.tcpdump tcp port 22

Файл sshtrace.tcpdump при этом будет по-умолчанию создан в домашнем каталоге текущего пользователя. Для вывода информации из файла  myrouter.tcpdump следует использовать опцию -r:

$ tcpdump -r sshtrace.tcpdump

Снять весь трафик с интерфейса eth2

$ tcpdump –i eth2

Снять трафик с диапазона портов на интерфейсе eth2

$ tcpdump -i eth2 portrange 100-200

весь трафик, идущий к 172.16.0.1, который не является ICMP.

tcpdump dst 172.16.0.1 and not icmp

Ловим весь входящий трафик, исключая трафик генерируемый нашей SSH-сессией.

$ tcpdump -i eth0 -n -nn -ttt 'dst host 172.16.0.10 and not ( src host 172.16.0.11 and dst port 22 )'

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

 

TCPDUMP. 12 примеров использования - Cryptoworld

Любому уважающему себя системному администратору необходимо знать, как работать с  сетевыми анализаторами, будь то tcpdump или Wireshark. Поэтому сегодня расскажу вам о сетевом анализаторе tcpdump и покажу 12 примеров его применения.

tcpdump — утилита UNIX (есть клон для Windows), позволяющая перехватывать и анализировать сетевой трафик, проходящий через компьютер, на котором запущена данная программа.

Если tcpdump у вас еще не установлен, то воспользуйтесь следующей командой.

# apt-get install tcpdump

1. Захват пакетов с конкретного интерфейса. tcpdump -i

Когда tcpdump выполняется без опций, то будут захватываться все пакеты на всех интерфейсах. Поэтому, чтобы захватить пакеты с определенного интерфейса, необходимо воспользоваться опцией -i.

# tcpdump -i eth0
 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
 listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
 14:03:39.403288 IP 192.168.1.3.ntp > ntp1.vniiftri.ru.ntp: NTPv4, Client, length 48
 14:03:39.403647 IP 192.168.1.3.47995 > 192.168.1.1.domain: 48869+ PTR? 142.76.117.62.in-addr.arpa. (44)
 14:03:39.445481 IP gw-comreg.vniiftri.ru > 192.168.1.3: ICMP host ntp1.vniiftri.ru unreachable - admin prohibited filter, length 84
 14:03:39.496036 IP 192.168.1.1.domain > 192.168.1.3.47995: 48869 1/0/0 PTR ntp1.vniiftri.ru. (74)

В этом примере tcpdump захватывает все пакеты идущие через интерфейс eth0. Можно конечно было и не указывать eth0, т.к. tcpdump считает eth0 интерфейсом по умолчанию.

2. Захват определенного количества пакетов. tcpdump -c

Когда мы выполняем tcpdump. Он выдает нам все пакеты до тех пор пока мы не завершим его работу нажав Ctrl + C. Используя опцию -c, можно указать конкретное количество пакетов для захвата, после чего tcpdump закроется.

# tcpdump -c 7 -i eth0
 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
 listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
 14:17:49.972652 IP 192.168.1.3.53397 > 192.168.1.1.domain: 20528+ A? www.google.ru. (31)
 14:17:49.972675 IP 192.168.1.3.53397 > 192.168.1.1.domain: 27106+ AAAA? www.google.ru. (31)
 14:17:49.973012 IP 192.168.1.3.52114 > 192.168.1.1.domain: 48629+ PTR? 1.1.168.192.in-addr.arpa. (42)
 14:17:49.973704 IP 192.168.1.3.45633 > 192.168.1.1.domain: 16713+ A? www.aldeid.com. (32)
 14:17:49.973711 IP 192.168.1.3.45633 > 192.168.1.1.domain: 7826+ AAAA? www.aldeid.com. (32)
 14:17:50.065806 IP 192.168.1.1.domain > 192.168.1.3.52114: 48629 NXDomain 0/0/0 (42)
 14:17:50.065982 IP 192.168.1.3.36930 > 192.168.1.1.domain: 1687+ PTR? 3.1.168.192.in-addr.arpa. (42)
 7 packets captured
 13 packets received by filter
 0 packets dropped by kernel

tcpdump указано захватить 7 пакетов.

3. Отображать захваченные пакеты в формате ASCII. tcpdump -A

Давайте для примера укажем захватить 7 пакетов и отобразить в формате ASCII.

# tcpdump -A -c 7 -i eth0
 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
 listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
 14:22:07.033387 IP 192.168.1.3.56814 > bk-in-f101.1e100.net.www: Flags [F.], seq 1827308969, ack 3970156663, win 125, options [nop,nop,TS val 1580605 ecr 3457196390], length 0
 [email protected]@.&A......Ee...Pl......w...}.......
 ...=...f
 14:22:07.033773 IP 192.168.1.3.51256 > 192.168.1.1.domain: 26283+ PTR? 101.69.194.173.in-addr.arpa. (45)
 [email protected]@............8.5.5..f............101.69.194.173.in-addr.arpa.....
 14:22:07.114784 IP bk-in-f101.1e100.net.www > 192.168.1.3.56814: Flags [.], ack 1, win 178, options [nop,nop,TS val 3457210473 ecr 1580605], length 0
 E..4`...0.uK..Ee.....P.....wl.......vy.....
 ...i...=
 14:22:07.123829 IP 192.168.1.1.domain > 192.168.1.3.51256: 26283 1/0/0 PTR bk-in-f101.1e100.net. (79)
 E..kJ...0............5.8.W.qf............101.69.194.173.in-addr.arpa.................
 bk-in-f101.1e100.net.
 14:22:07.124020 IP 192.168.1.3.45050 > 192.168.1.1.domain: 50302+ PTR? 3.1.168.192.in-addr.arpa. (42)
 [email protected]@..............5.2{     .~...........3.1.168.192.in-addr.arpa.....
 14:22:07.213627 IP 192.168.1.1.domain > 192.168.1.3.45050: 50302 NXDomain 0/0/0 (42)
 E..F.M..0............5...2...~...........3.1.168.192.in-addr.arpa.....
 14:22:07.213809 IP 192.168.1.3.52997 > 192.168.1.1.domain: 21551+ PTR? 1.1.168.192.in-addr.arpa. (42)
 [email protected]@..............5.2.OT/...........1.1.168.192.in-addr.arpa.....
 7 packets captured
 8 packets received by filter
 0 packets dropped by kernel

4. Отображать захваченные пакеты в HEX и ASCII форматах. tcpdump -XX

Многим необходимо анализировать пакеты в hex значениях. Задав опцию -XX, tcpdump позволяет отображать пакеты в HEX и ASCII форматах.

# tcpdump -XX -c 5 -i eth0
 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
 listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
 14:26:22.025863 IP 192.168.1.3.42468 > bk-in-f113.1e100.net.www: Flags [F.], seq 681713275, ack 442747703, win 108, options [nop,nop,TS val 1644353 ecr 3091190628], length 0
         0x0000:  0021 9154 c6b9 001f 1601 c56d 0800 4500  .!.T.......m..E.
         0x0010:  0034 3a41 4000 4006 4ba4 c0a8 0103 adc2  .4:[email protected]@.K.......
         0x0020:  4571 a5e4 0050 28a2 1e7b 1a63 cb37 8011  Eq...P(..{.c.7..
         0x0030:  006c 4b86 0000 0101 080a 0019 1741 b83f  .lK..........A.?
         0x0040:  d364                                     .d
 14:26:22.026256 IP 192.168.1.3.49752 > 192.168.1.1.domain: 44366+ PTR? 113.69.194.173.in-addr.arpa. (45)
         0x0000:  0021 9154 c6b9 001f 1601 c56d 0800 4500  .!.T.......m..E.
         0x0010:  0049 1741 4000 4011 a00e c0a8 0103 c0a8  [email protected]@.........
         0x0020:  0101 c258 0035 0035 862d ad4e 0100 0001  ...X.5.5.-.N....
         0x0030:  0000 0000 0000 0331 3133 0236 3903 3139  .......113.69.19
         0x0040:  3403 3137 3307 696e 2d61 6464 7204 6172  4.173.in-addr.ar
         0x0050:  7061 0000 0c00 01                        pa.....
 14:26:22.107844 IP bk-in-f113.1e100.net.www > 192.168.1.3.42468: Flags [.], ack 1, win 117, options [nop,nop,TS val 3091202466 ecr 1644353], length 0
         0x0000:  001f 1601 c56d 0021 9154 c6b9 0800 4500  .....m.!.T....E.
         0x0010:  0034 4b41 0000 3006 8aa4 adc2 4571 c0a8  .4KA..0.....Eq..
         0x0020:  0103 0050 a5e4 1a63 cb37 28a2 1e7c 8010  ...P...c.7(..|..
         0x0030:  0075 1d3f 0000 0101 080a b840 01a2 0019  [email protected]
         0x0040:  1741                                     .A
 14:26:22.116644 IP 192.168.1.1.domain > 192.168.1.3.49752: 44366 1/0/0 PTR bk-in-f113.1e100.net. (79)
         0x0000:  001f 1601 c56d 0021 9154 c6b9 0800 4500  .....m.!.T....E.
         0x0010:  006b 7fbd 0000 3011 8770 c0a8 0101 c0a8  .k....0..p......
         0x0020:  0103 0035 c258 0057 81a6 ad4e 8180 0001  ...5.X.W...N....
         0x0030:  0001 0000 0000 0331 3133 0236 3903 3139  .......113.69.19
         0x0040:  3403 3137 3307 696e 2d61 6464 7204 6172  4.173.in-addr.ar
         0x0050:  7061 0000 0c00 01c0 0c00 0c00 0100 001b  pa..............
         0x0060:  bb00 160a 626b 2d69 6e2d 6631 3133 0531  ....bk-in-f113.1
         0x0070:  6531 3030 036e 6574 00                   e100.net.
 14:26:22.116853 IP 192.168.1.3.60930 > 192.168.1.1.domain: 19760+ PTR? 3.1.168.192.in-addr.arpa. (42)
         0x0000:  0021 9154 c6b9 001f 1601 c56d 0800 4500  .!.T.......m..E.
         0x0010:  0046 1758 4000 4011 9ffa c0a8 0103 c0a8  [email protected]@.........
         0x0020:  0101 ee02 0035 0032 b44f 4d30 0100 0001  .....5.2.OM0....
         0x0030:  0000 0000 0000 0133 0131 0331 3638 0331  .......3.1.168.1
         0x0040:  3932 0769 6e2d 6164 6472 0461 7270 6100  92.in-addr.arpa.
         0x0050:  000c 0001                                ....
 5 packets captured
 8 packets received by filter
 0 packets dropped by kernel

5. Захватить пакеты и направить вывод в файл. tcpdump -w

# tcpdump -w file_name.pcap -i eth0
 tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
 706 packets captured
 706 packets received by filter
 0 packets dropped by kernel

Расширение файла должно быть .pcap для того, чтобы его могли прочитать другие сетевые анализаторы. Wireshark например.

6. Чтение пакетов из файла. tcpdump -r

Чтобы прочитать пакеты из pcap файла и отобразить их содержимое для анализа, воспользуйтесь следующей командой.

# tcpdump -XX -r file_name.pcap
 reading from file file_name.pcap, link-type EN10MB (Ethernet)
 15:03:14.980144 IP 192.168.1.3.36854 > 192.168.1.1.domain: 31011+ A? sourceforge.net. (33)
         0x0000:  0021 9154 c6b9 001f 1601 c56d 0800 4500  .!.T.......m..E.
         0x0010:  003d 8857 4000 4011 2f04 c0a8 0103 c0a8  [email protected]@./.......
         0x0020:  0101 8ff6 0035 0029 dd8a 7923 0100 0001  .....5.)..y#....
         0x0030:  0000 0000 0000 0b73 6f75 7263 6566 6f72  .......sourcefor
         0x0040:  6765 036e 6574 0000 0100 01              ge.net.....
 15:03:14.980161 IP 192.168.1.3.36854 > 192.168.1.1.domain: 22859+ AAAA? sourceforge.net. (33)
         0x0000:  0021 9154 c6b9 001f 1601 c56d 0800 4500  .!.T.......m..E.
         0x0010:  003d 8858 4000 4011 2f03 c0a8 0103 c0a8  [email protected]@./.......
         0x0020:  0101 8ff6 0035 0029 e262 594b 0100 0001  .....5.).bYK....
         0x0030:  0000 0000 0000 0b73 6f75 7263 6566 6f72  .......sourcefor
         0x0040:  6765 036e 6574 0000 1c00 01              ge.net.....
 15:03:14.985797 IP 192.168.1.3.56923 > bc1.sgmn.net.www: Flags [S], seq 3546006763, win 5840, options [mss 1460,sackOK,TS val 2197593 ecr 0,nop,wscale 6], length 0
         0x0000:  0021 9154 c6b9 001f 1601 c56d 0800 4500  .!.T.......m..E.
         0x0010:  003c 4cb2 4000 4006 1950 c0a8 0103 b24d  .<[email protected]@..P.....M
         0x0020:  60c1 de5b 0050 d35b c4eb 0000 0000 a002  `..[.P.[........
         0x0030:  16d0 5d09 0000 0204 05b4 0402 080a 0021  ..]............!
         0x0040:  8859 0000 0000 0103 0306                 .Y........
 15:03:14.989195 IP 192.168.1.3.56924 > bc1.sgmn.net.www: Flags [S], seq 3810406905, win 5840, options [mss 1460,sackOK,TS val 2197594 ecr 0,nop,wscale 6], length 0
         0x0000:  0021 9154 c6b9 001f 1601 c56d 0800 4500  .!.T.......m..E.
         0x0010:  003c b9a3 4000 4006 ac5e c0a8 0103 b24d  .<[email protected]@..^.....M
         0x0020:  60c1 de5c 0050 e31e 31f9 0000 0000 a002  `...P..1.......
         0x0030:  16d0 e036 0000 0204 05b4 0402 080a 0021  ...6...........!
         0x0040:  885a 0000 0000 0103 0306                 .Z........
 15:03:15.069385 IP 192.168.1.1.domain > 192.168.1.3.36854: 31011 1/0/0 A 216.34.181.60 (49)
         0x0000:  001f 1601 c56d 0021 9154 c6b9 0800 4500  .....m.!.T....E.
         0x0010:  004d 96ab 0000 3011 70a0 c0a8 0101 c0a8  .M....0.p.......
         0x0020:  0103 0035 8ff6 0039 e298 7923 8180 0001  ...5...9..y#....
         0x0030:  0001 0000 0000 0b73 6f75 7263 6566 6f72  .......sourcefor
         0x0040:  6765 036e 6574 0000 0100 01c0 0c00 0100  ge.net..........
         0x0050:  0100 0003 0800 04d8 22b5 3c              ........".<

7. Захватить пакеты и отобразить IP-адрес вместо имени хоста. tcpdump -n

Во всех предыдущих примерах, пакеты отображались с DNS-адресами, но не с IP-адресами. Следующий пример показывает, как отображать IP-адреса захваченных пакетов.

# tcpdump -n -i eth0
 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
 listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
 15:14:36.230605 IP 192.168.1.3.42311 > 192.168.1.1.53: 41264+ A? www.aldeid.com. (32)
 15:14:36.230628 IP 192.168.1.3.42311 > 192.168.1.1.53: 36217+ AAAA? www.aldeid.com. (32)
 15:14:36.321354 IP 192.168.1.1.53 > 192.168.1.3.42311: 41264 2/0/0 CNAME aldeid.com., A 46.252.206.1 (62)
 15:14:36.329376 IP 192.168.1.1.53 > 192.168.1.3.42311: 36217 1/1/0 CNAME aldeid.com. (114)
 15:14:36.329548 IP 192.168.1.3.50184 > 46.252.206.1.80: Flags [S], seq 2843670781, win 5840, options [mss 1460,sackOK,TS val 2367929 ecr 0,nop,wscale 6], length 0
 15:14:36.416523 IP 46.252.206.1.80 > 192.168.1.3.50184: Flags [S.], seq 2979506353, ack 2843670782, win 5792, options [mss 1460,nop,nop,TS val 1058588753 ecr 2367929,nop,wscale 7], length 0

8. Захват пакетов и отображение даты. tcpdump -tttt

# tcpdump -tttt -c 10 -i eth0
 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
 listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
 2011-12-16 15:20:19.119186 IP ch4.sourceforge.net.www > 192.168.1.3.60183: Flags [R.], seq 1733868151, ack 2799185013, win 149, length 0
 2011-12-16 15:20:19.119551 IP 192.168.1.3.55011 > 192.168.1.1.domain: 18361+ PTR? 3.1.168.192.in-addr.arpa. (42)
 2011-12-16 15:20:19.210840 IP 192.168.1.1.domain > 192.168.1.3.55011: 18361 NXDomain 0/0/0 (42)
 2011-12-16 15:20:19.210990 IP 192.168.1.3.60408 > 192.168.1.1.domain: 5597+ PTR? 60.181.34.216.in-addr.arpa. (44)
 2011-12-16 15:20:19.302479 IP 192.168.1.1.domain > 192.168.1.3.60408: 5597 1/0/0 PTR ch4.sourceforge.net. (77)
 2011-12-16 15:20:19.302673 IP 192.168.1.3.36084 > 192.168.1.1.domain: 46921+ PTR? 1.1.168.192.in-addr.arpa. (42)
 2011-12-16 15:20:19.393648 IP 192.168.1.1.domain > 192.168.1.3.36084: 46921 NXDomain 0/0/0 (42)
 2011-12-16 15:20:19.930727 IP 192.168.1.3.60184 > ch4.sourceforge.net.www: Flags [S], seq 4213911820, win 5840, options [mss 1460,sackOK,TS val 2453829 ecr 0,nop,wscale 6], length 0
 2011-12-16 15:20:19.933450 IP 192.168.1.3.35159 > jangle.cacetech.com.www: Flags [F.], seq 2251522727, ack 3157887949, win 108, options [nop,nop,TS val 2453830 ecr 25896294], length 0
 2011-12-16 15:20:19.933479 IP 192.168.1.3.35160 > jangle.cacetech.com.www: Flags [F.], seq 4109229407, ack 3305525460, win 108, options [nop,nop,TS val 2453830 ecr 25896294], length 0
 10 packets captured
 14 packets received by filter
 0 packets dropped by kernel

9. Чтение пакетов, которые больше или равно N байт

# tcpdump -w file_name.pcap greater 1024

10. Принимать пакеты только определенного типа

Если вам нужны пакеты конкретного типа, например: fddi, tr, wlan, ip, ip6, arp, rarp, decnet, tcp или udp. В конце команды необходимо написать тип протокола.

# tcpdump -i eth0 arp
 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
 listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
 15:33:56.326109 ARP, Request who-has 192.168.1.3 tell 192.168.1.1, length 46
 15:33:56.326125 ARP, Reply 192.168.1.3 is-at 00:1f:16:01:c5:6d (oui Unknown), length 28
 15:34:29.576256 ARP, Request who-has 192.168.1.3 tell 192.168.1.1, length 46
 15:34:29.576271 ARP, Reply 192.168.1.3 is-at 00:1f:16:01:c5:6d (oui Unknown), length 28

11. Чтение пакетов, которые меньше или равно N байт

# tcpdump -w file_name.pcap less 1024

12. Принимать пакеты приходящие на конкретный порт. tcpdump port

Если вы хотите проанализировать пакеты, которые приходят на определенный порт, то нужно воспользоваться следующей командой.

# tcpdump -i eth0 port 22
 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
 listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
 15:43:02.915883 IP 192.168.1.3.57565 > 109.120.144.208.addr.datapoint.ru.ssh: Flags [S], seq 3940766754, win 5840, options [mss 1460,sackOK,TS val 2794575 ecr 0,nop,wscale 6], length 0
 15:43:05.912246 IP 192.168.1.3.57565 > 109.120.144.208.addr.datapoint.ru.ssh: Flags [S], seq 3940766754, win 5840, options [mss 1460,sackOK,TS val 2795325 ecr 0,nop,wscale 6], length 0
 15:43:05.952443 IP 192.168.1.3.57565 > 109.120.144.208.addr.datapoint.ru.ssh: Flags [S], seq 3940766754, win 5840, options [mss 1460,sackOK,TS val 2795335 ecr 0,nop,wscale 6], length 0

На сегодня все. Дальше будет еще интереснее. Если возникнут вопросы, обращайтесь.

Click to rate this post!

[Total: 3 Average: 4]

примеров Tcpdump - 22 тактических команды

Практические примеры tcpdump для поднятия уровня устранения неполадок сети и игра для тестирования безопасности . Команды и советы не только по использованию tcpdump , но и по освоению способов изучения вашей сети.

Знание tcpdump - важный навык, который пригодится любому системному администратору , сетевому инженеру или специалисту по безопасности .

Практические примеры tcpdump

Первый Основы

Нарушение командной строки Tcpdump

Следующая команда использует общие параметры, часто встречающиеся при использовании скальпеля tcpdump .

: ~ $ sudo tcpdump -i eth0 -nn -s0 -v порт 80 

-i: Выберите интерфейс, на котором будет происходить захват, часто это будет карта Ethernet или беспроводной адаптер, но также может быть vlan или что-то более необычное. Не всегда требуется при наличии только одного сетевого адаптера.
-nn: одиночный ( n ) не разрешает имена хостов. Двойное значение ( nn ) не разрешает имена хостов или порты. Это удобно не только для просмотра номеров IP / портов, но и при захвате большого объема данных, поскольку разрешение имени замедлит захват .
-s0: Длина захвата - размер захваченного пакета. -s0 установит неограниченный размер - используйте это, если хотите захватить весь трафик. Требуется, если вы хотите вытащить двоичные файлы / файлы из сетевого трафика.
-v: Подробно, использование ( -v ) или ( -vv ) увеличивает количество деталей, отображаемых в выходных данных, часто показывая больше информации, относящейся к протоколу.
порт 80: это обычный фильтр портов для захвата трафика только на порт 80 , обычно это HTTP.

Показать текст ASCII

При добавлении -A в командную строку вывод будет включать строки ascii из захвата. Это позволяет легко читать и анализировать вывод с помощью grep или других команд. Другой вариант, который показывает как шестнадцатеричный вывод, так и ASCII, - это вариант -X .

: ~ $ sudo tcpdump -A -s0 порт 80 
Захват по протоколу

Фильтр UDP-трафика. Другой способ указать это - использовать протокол 17 , то есть udp .Эти две команды дадут одинаковый результат. Эквивалент фильтра tcp - это протокол 6 .

: ~ $ sudo tcpdump -i eth0 udp : ~ $ sudo tcpdump -i eth0 proto 17 
Захват хостов на основе IP-адреса

Использование фильтра узла будет захватывать трафик, идущий к (получателю) и от (источнику) IP-адреса.

: ~ $ sudo tcpdump -i eth0 хост 10.10.1.1 

В качестве альтернативы захватывайте только пакеты, идущие в одну сторону, используя src или dst .

: ~ $ sudo tcpdump -i eth0 dst 10.10.1.20 
Записать файл захвата

Обычным вариантом команд является запись стандартного файла pcap . Запись файла захвата на диск позволяет открыть файл в Wireshark или других инструментах анализа пакетов.

: ~ $ sudo tcpdump -i eth0 -s0 -w test.pcap 
Режим линейной буферизации

Без опции принудительной строковой ( -l ) буферизации (или режима буферизации пакетов -C ) вы не всегда получите ожидаемый ответ при передаче вывода tcpdump другой команде, например grep .При использовании этой опции выходные данные немедленно отправляются переданной команде, что дает немедленный ответ при устранении неполадок.

: ~ $ sudo tcpdump -i eth0 -s0 -l порт 80 | grep 'Сервер:' 
Комбинированные фильтры

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

  и  или  &&   или  или  ||  , а не  или !  

Практические примеры

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

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

Часто при поиске неисправностей просто хочется получить результат. Фильтрация порта и выбор вывода ascii в сочетании с grep , cut или awk часто дает такой результат.При необходимости вы всегда можете углубиться в пакет.

Например, при захвате HTTP-запросов и ответов вы можете отфильтровать все пакеты, кроме данных, удалив SYN / ACK / FIN , однако, если вы используете grep , шум все равно будет отфильтрован. Будь проще.

Это можно увидеть на следующих примерах, цель которых - получить результат самым простым (и, следовательно, самым быстрым) способом.

1. Извлечение пользовательских агентов HTTP

Извлечь HTTP-агент пользователя из заголовка HTTP-запроса.

: ~ $ sudo tcpdump -nn -A -s1500 -l | grep "User-Agent:" 

Используя egrep и несколько совпадений, мы можем получить пользовательский агент и хост (или любой другой заголовок) из запроса.

: ~ $ sudo tcpdump -nn -A -s1500 -l | egrep -i 'Агент пользователя: | Хост:' 

2. Захватывайте только пакеты HTTP GET и POST

Углубляясь в фильтр, мы можем указать только пакеты, соответствующие GET.

: ~ $ sudo tcpdump -s 0 -A -vv 'tcp [((tcp [12: 1] & 0xf0) >> 2): 4] = 0x47455420' 

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

: ~ $ sudo tcpdump -s 0 -A -vv 'tcp [((tcp [12: 1] & 0xf0) >> 2): 4] = 0x504f5354' 

Шестнадцатеричное число, соответствующее этим выражениям, соответствует ascii для GET и POST.

В качестве объяснения tcp [((tcp [12: 1] & 0xf0) >> 2): 4] сначала определяет расположение интересующих нас байтов (после заголовка TCP), а затем выбирает 4 байта, которые мы хочу сравняться с.

3. Извлеките URL-адрес HTTP-запроса

Анализирует Хост и Местоположение HTTP-запроса из трафика. Если не нацеливаться на порт 80 , мы можем найти эти запросы на любом порту, например HTTP-сервисах, работающих на высоких портах.

: ~ $ sudo tcpdump -s 0 -v -n -l | egrep -i "POST / | GET / | Хост:" tcpdump: прослушивание enp7s0, тип канала EN10MB (Ethernet), размер захвата 262144 байта POST /wp-login.php HTTP / 1.1 Хост: dev.example.com ПОЛУЧИТЬ / wp-login.php HTTP / 1.1 Хост: dev.example.com ПОЛУЧИТЬ /favicon.ico HTTP / 1.1 Хост: dev.example.com GET / HTTP / 1.1 Хост: dev.example.com 

4. Извлечение паролей HTTP в запросах POST

Получим пароли из данных POST. Будет включать Host: и местоположение запроса, чтобы мы знали, для чего используется пароль.

: ~ $ sudo tcpdump -s 0 -A -n -l | egrep -i "POST / | pwd = | passwd = | password = | Host:" tcpdump: подробный вывод подавлен, используйте -v или -vv для полного декодирования протокола прослушивание enp7s0, тип канала EN10MB (Ethernet), размер захвата 262144 байта 11:25:54.799014 IP 10.10.1.30.39224> 10.10.1.125.80: флаги [P.], seq 1458768667: 1458770008, ack 2440130792, win 704, options [nop, nop, TS val 461552632 ecr 208

1], длина 1341: HTTP: POST /wp-login.php HTTP / 1.1 ..... s..POST /wp-login.php HTTP / 1.1 Хост: dev.example.com ..... s..log = admin & pwd = notmypassword & wp-submit = Log + In & redirect_to = http% 3A% 2F% 2Fdev.example.com% 2Fwp-admin% 2F & testcookie = 1

5. Захват файлов cookie с сервера и от клиента

МММммм Cookies! Захватите файлы cookie с сервера, выполнив поиск по Set-Cookie: (с сервера) и Cookie: (от клиента).

: ~ $ sudo tcpdump -nn -A -s0 -l | egrep -i 'Установить-Cookie | Хост: | Cookie:' tcpdump: подробный вывод подавлен, используйте -v или -vv для полного декодирования протокола прослушивание wlp58s0, тип канала EN10MB (Ethernet), размер захвата 262144 байта Хост: dev.example.com Cookie: wordpress_86be02xxxxxxxxxxxxxxxxxxxc43 = admin% 7C152xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfb3e15c744fdd6; _ga = GA1.2.21343434343421934; _gid = GA1.2.927343434349426; wordpress_test_cookie = WP + Cookie + проверка; wordpress_logged_in_86be654654645645645654645653fc43 = admin% 7C15275102testtesttesttestab7a61e; wp-settings-time-1 = 1527337439 

6.Захватить все пакеты ICMP

Просмотр всех пакетов ICMP на проводе.

: ~ $ sudo tcpdump -n icmp tcpdump: подробный вывод подавлен, используйте -v или -vv для полного декодирования протокола прослушивание enp7s0, тип канала EN10MB (Ethernet), размер захвата 262144 байта 11: 34: 21.5 IP 10.10.1.217> 10.10.1.30: эхо-запрос ICMP, идентификатор 27948, последовательность 1, длина 64 11: 34: 21.5 IP 10.10.1.30> 10.10.1.217: эхо-ответ ICMP, id 27948, seq 1, длина 64 11:34:27.680307 IP 10.10.1.159> 10.10.1.1: ICMP 10.10.1.189 порт UDP 59619 недоступен, длина 115 

7. Показать пакеты ICMP, которые не являются ECHO / REPLY (стандартный ping)

Фильтр по типу icmp для выбора пакетов icmp , которые не являются стандартными пакетами ping .

: ~ $ sudo tcpdump 'icmp [icmptype]! = Icmp-echo и icmp [icmptype]! = Icmp-echoreply' tcpdump: подробный вывод подавлен, используйте -v или -vv для полного декодирования протокола прослушивание enp7s0, тип канала EN10MB (Ethernet), размер захвата 262144 байта 11:37:04.041037 IP 10.10.1.189> 10.10.1.20: ICMP 10.10.1.189 порт udp 36078 недоступен, длина 156 

8. Захват электронной почты SMTP / POP3

Можно извлечь тело письма и другие данные, в этом примере мы анализируем только получателей письма.

: ~ $ sudo tcpdump -nn -l порт 25 | grep -i 'ПОЧТА ИЗ \ | RCPT НА' 

9. Устранение неполадок с запросом и ответом NTP

В этом примере мы видим NTP-запрос и ответ.

: ~ $ sudo tcpdump dst порт 123 tcpdump: подробный вывод подавлен, используйте -v или -vv для полного декодирования протокола прослушивание eth0, тип канала EN10MB (Ethernet), размер захвата 65535 байт 21:02:19.112502 IP test33.ntp> 199.30.140.74.ntp: NTPv4, клиент, длина 48 21: 02: 19.113888 IP 216.239.35.0.ntp> test33.ntp: NTPv4, Сервер, длина 48 21: 02: 20.150347 IP test33.ntp> 216.239.35.0.ntp: NTPv4, клиент, длина 48 21: 02: 20.150991 IP 216.239.35.0.ntp> test33.ntp: NTPv4, Сервер, длина 48 

10. Захват SNMP-запросов и ответов

Используя onesixtyone , быстрый сканер протокола SNMP, мы тестируем службу SNMP в нашей локальной сети и захватываем GetRequest и GetResponse .Для тех, кто имел (не) удовольствие устранять неполадки SNMP, это отличный способ точно увидеть, что происходит в сети. Вы можете отчетливо видеть OID в пробке, что очень полезно при борьбе с MIBS .

: ~ $ onesixtyone 10.10.1.10 общедоступно Сканирование 1 хоста, 1 сообщества 10.10.1.10 [общедоступный] Linux test33 4.15.0-20-generic # 21-Ubuntu SMP Вт, 24 апреля, 06:16:15 UTC 2018 x86_64 
: ~ $ sudo tcpdump -n -s0 порт 161 и udp tcpdump: подробный вывод подавлен, используйте -v или -vv для полного декодирования протокола прослушивание wlp58s0, тип канала EN10MB (Ethernet), размер захвата 262144 байта 23:39:13.725522 IP 10.10.1.159.36826> 10.10.1.20.161: GetRequest (28) .1.3.6.1.2.1.1.1.0 23: 39: 13.728789 IP 10.10.1.20.161> 10.10.1.159.36826: GetResponse (109) .1.3.6.1.2.1.1.1.0 = "Linux testmachine 4.15.0-20-generic # 21-Ubuntu SMP Tue Apr 24 06:16:15 UTC 2018 x86_64 " 

11. Захват учетных данных и команд FTP

Захват команд FTP и данных для входа очень прост. После того, как аутентификация установлена, сеанс FTP может быть активным или пассивным , это определит, будет ли часть сеанса передачи данных выполняться через TCP-порт 20 или другой временный порт.С помощью следующей команды вы введете USER и PASS в вывод (который может быть передан в grep), а также команды FTP, такие как LIST, CWD и PASSIVE.

: ~ $ sudo tcpdump -nn -v порт ftp или ftp-data 

12. Повернуть файлы захвата

При захвате большого объема трафика или в течение длительного периода времени может быть полезно автоматически создавать новые файлы фиксированного размера. Это делается с помощью параметров -W , -G и -C .

В этой команде файл capture- (час).pcap будет создаваться каждые (-G) 3600 секунд (1 час). На следующий день файлы будут перезаписаны. Таким образом, вы должны получить захват - {1-24} .pcap , если час был 15 , новый файл будет ( /tmp/capture-15.pcap ).

: ~ $ tcpdump -w /tmp/capture-%H.pcap -G 3600 -C 200 

13. Захват IPv6-трафика

Захват IPv6-трафика с помощью фильтра ip6 . В этих примерах мы указали протоколы TCP и UDP, используя proto 6 и proto 17 .

 tcpdump -nn ip6 proto 6 

IPv6 с UDP и чтение из ранее сохраненного файла захвата.

 tcpdump -nr ipv6-test.pcap ip6 proto 17 

14. Обнаружение сканирования портов в сетевом трафике

В следующем примере вы можете увидеть трафик, идущий из одного источника в один пункт назначения. Флаги [S] и [R] можно увидеть и сопоставить с кажущимся случайным рядом портов назначения. Эти порты видны в RESET, который отправляется, когда SYN находит закрытый порт в системе назначения.Это стандартное поведение для сканирования портов с помощью такого инструмента, как Nmap.

У нас есть еще один учебник по Nmap, в котором подробно описаны захваченные сканирования портов ( открытых / закрытых / отфильтрованных ) в ряде захватов Wireshark.

: ~ $ tcpdump -nn 21: 46: 19.693601 IP 10.10.1.10.60460> 10.10.1.199.5432: флаги [S], seq 116466344, win 29200, параметры [mss 1460, sackOK, TS val 35470 ecr 0, nop, wscale 7], длина 0 21: 46: 19.693626 IP 10.10.1.10.35470> 10.10.1.199.513: флаги [S], seq 3400074709, win 29200, параметры [mss 1460, sackOK, TS val 35470 ecr 0, nop, wscale 7], длина 0 21:46:19.693762 IP 10.10.1.10.44244> 10.10.1.199.389: флаги [S], seq 2214070267, win 29200, параметры [mss 1460, sackOK, TS val 35470 ecr 0, nop, wscale 7], длина 0 21: 46: 19.693772 IP 10.10.1.199.389> 10.10.1.10.44244: флаги [R.], seq 0, ack 2214070268, win 0, length 0 21: 46: 19.693783 IP 10.10.1.10.35172> 10.10.1.199.1433: флаги [S], seq 2358257571, win 29200, параметры [mss 1460, sackOK, TS val 35470 ecr 0, nop, wscale 7], длина 0 21: 46: 19.693826 IP 10.10.1.10.33022> 10.10.1.199.49153: флаги [S], seq 2406028551, win 29200, параметры [mss 1460, sackOK, TS val 35470 ecr 0, nop, wscale 7], длина 0 21: 46: 19.695567 IP 10.10.1.10.55130> 10.10.1.199.49154: флаги [S], seq 3230403372, win 29200, параметры [mss 1460, sackOK, TS val 35470

ecr 0, nop, wscale 7], длина 0 21: 46: 19.695590 IP 10.10.1.199.49154> 10.10.1.10.55130: флаги [R.], seq 0, ack 3230403373, win 0, length 0 21: 46: 19.695608 IP 10.10.1.10.33460> 10.10.1.199.49152: флаги [S], seq 3289070068, win 29200, параметры [mss 1460, sackOK, TS val 35470

ecr 0, nop, wscale 7], длина 0 21:46:19.695622 IP 10.10.1.199.49152> 10.10.1.10.33460: флаги [R.], seq 0, ack 3289070069, win 0, length 0 21: 46: 19.695637 IP 10.10.1.10.34940> 10.10.1.199.1029: флаги [S], seq 140319147, win 29200, параметры [mss 1460, sackOK, TS val 35470

ecr 0, nop, wscale 7], длина 0 21: 46: 19.695650 IP 10.10.1.199.1029> 10.10.1.10.34940: флаги [R.], seq 0, ack 140319148, win 0, length 0 21: 46: 19.695664 IP 10.10.1.10.45648> 10.10.1.199.5060: флаги [S], seq 2203629201, win 29200, параметры [mss 1460, sackOK, TS val 35470

ecr 0, nop, wscale 7], длина 0 21:46:19.695775 IP 10.10.1.10.49028> 10.10.1.199.2000: флаги [S], seq 6359

, win 29200, параметры [mss 1460, sackOK, TS val 35470

ecr 0, nop, wscale 7], длина 0 21: 46: 19.695790 IP 10.10.1.199.2000> 10.10.1.10.49028: флаги [R.], seq 0, ack 6359

, win 0, length 0

15. Пример фильтра, показывающего тестирование сценария Nmap NSE

В этом примере показан сценарий Nmap NSE http-enum.nse , проверяющий действительные URL-адреса для открытой службы HTTP.

На машине Nmap:

: ~ $ nmap -p 80 --script = http-enum.nse targetip 

На целевой машине:

: ~ $ tcpdump -nn порт 80 | grep "GET /" ПОЛУЧИТЬ / w3perl / HTTP / 1.1 GET / w-agora / HTTP / 1.1 GET / way-board / HTTP / 1.1 GET / web800fo / HTTP / 1.1 GET / webaccess / HTTP / 1.1 GET / webadmin / HTTP / 1.1 GET / webAdmin / HTTP / 1.1 

16. Захват начальных и конечных пакетов каждого нелокального хоста

Этот пример взят прямо из справочной страницы tcpdump . Выбирая на пакетах tcp-syn и tcp-fin , мы можем отображать каждый установленный TCP-диалог с отметками времени, но без данных.Как и в случае со многими фильтрами, это позволяет уменьшить количество шума, чтобы сосредоточиться на важной информации.

: ~ $ tcpdump 'tcp [tcpflags] & (tcp-syn | tcp-fin)! = 0, а не src и dst net localnet' 

17. Захват DNS-запроса и ответа

Исходящий DNS-запрос к общедоступному DNS Google и ответ A-записи (IP-адрес) можно увидеть в этом захвате.

: ~ $ sudo tcpdump -i wlp58s0 -s0 порт 53 tcpdump: подробный вывод подавлен, используйте -v или -vv для полного декодирования протокола прослушивание wlp58s0, тип канала EN10MB (Ethernet), размер захвата 262144 байта 14:19:06.879799 IP test.53852> google-public-dns-a.google.com.domain: 26977+ [1au] A? play.google.com. (44) 14: 19: 07.022618 IP-адрес google-public-dns-a.google.com.domain> test.53852: 26977 1/0/1 A 216.58.203.110 (60) 

18. Захват пакетов данных HTTP

Захват только пакетов данных HTTP на порту 80. Избегайте захвата настройки сеанса TCP (SYN / FIN / ACK).

 tcpdump 'tcp порт 80 и (((ip [2: 2] - ((ip [0] & 0xf)> 2))! = 0) »

19. Захват с помощью tcpdump и просмотр в Wireshark

Разбор и анализ полных потоков приложений, таких как HTTP, намного проще выполнить с помощью Wireshark (или tshark), чем tcpdump .Часто более практичным является захват трафика в удаленной системе с помощью tcpdump с опцией записи файла. Затем скопируйте pcap на локальную рабочую станцию ​​для анализа с помощью Wireshark.

Помимо перемещения файла из удаленной системы на локальную рабочую станцию ​​вручную, можно передать захваченный файл в Wireshark через соединение SSH в реальном времени. Этот совет - любимый , направьте необработанный вывод tcpdump прямо в wirehark на вашем локальном компьютере. Не забывайте, что - это , а не порт 22 , поэтому вы не перехватываете свой SSH-трафик.

: ~ $ ssh root @ remotesystem 'tcpdump -s0 -c 1000 -nn -w - не порт 22' | wirehark -k -i - 

Еще один совет - использовать счетчик -c на удаленном tcpdump , чтобы позволить завершить захват, иначе нажатие ctrl-c убьет не только tcpdump , но также Wireshark и ваш захват.

20. Лучшие хосты по пакетам

Перечислите наиболее активных участников за период времени или количество пакетов.Используя простое извлечение поля из командной строки, чтобы получить IP-адрес, отсортировать и подсчитать случаи. Захват ограничен опцией счетчика -c .

 sudo tcpdump -nnn -t -c 200 | вырезать -f 1,2,3,4 -d '.' | сортировать | uniq -c | sort -nr | голова -n 20 tcpdump: подробный вывод подавлен, используйте -v или -vv для полного декодирования протокола прослушивание enp7s0, тип канала EN10MB (Ethernet), размер захвата 262144 байта 200 пакетов захвачено 261 пакет получен фильтром 0 пакетов отброшено ядром 108 IP 10.10.211.181 91 IP 10.10.1.30 1 IP 10.10.1.50 

21. Захватить все пароли в виде открытого текста

В этой команде мы фокусируемся на стандартных текстовых протоколах и выбираем grep для всего, что связано с пользователем или паролем. Выбирая опцию -B5 в grep , цель состоит в том, чтобы получить предыдущие 5 строк, которые могут предоставить контекст вокруг захваченного пароля (имя хоста, IP-адрес, система).

: ~ $ sudo tcpdump порт http или порт ftp, или порт smtp, или порт imap, или порт pop3, или порт telnet -l -A | egrep -i -B5 'pass = | pwd = | log = | login = | user = | username = | pw = | passw = | passwd = | password = | pass: | user: | username: | password: | login: | pass | user '

22.Пример DHCP

И наш последний пример tcpdump предназначен для мониторинга запросов и ответов DHCP. Запросы DHCP поступают на порт 67 , а ответ - на 68 . Используя подробный параметр -v , мы можем увидеть параметры протокола и другие детали.

: ~ $ sudo tcpdump -v -n порт 67 или 68 tcpdump: прослушивание enp7s0, тип канала EN10MB (Ethernet), размер захвата 262144 байта 14: 37: 50.059662 IP (tos 0x10, ttl 128, id 0, смещение 0, flags [none], протокол протокола UDP (17), длина 328) 0.0.0.0.68> 255.255.255.255.67: BOOTP / DHCP, запрос от 00: 0c: xx: xx: xx: d5, длина 300, xid 0xc9779c2a, флаги [нет] Клиент-Ethernet-адрес 00: 0c: xx: xx: xx: d5 Vendor-rfc1048 Расширения Волшебное печенье 0x63825363 Параметр сообщения DHCP 53, длина 1: запрос Запрошенный IP, опция 50, длина 4: 10.10.1.163 Вариант имени хоста 12, длина 14: "test-ubuntu" Параметр-запрос вариант 55, длина 16: Маска подсети, BR, часовой пояс, шлюз по умолчанию Имя домена, Сервер доменного имени, опция 119, имя хоста Netbios-Name-Server, Netbios-Scope, MTU, бесклассовый-статический-маршрут NTP, Classless-Static-Route-Microsoft, Static-Route, опция 252 14:37:50.059667 IP (tos 0x10, ttl 128, id 0, смещение 0, флаги [нет], протокол UDP (17), длина 328) 0.0.0.0.68> 255.255.255.255.67: BOOTP / DHCP, запрос от 00: 0c: xx: xx: xx: d5, длина 300, xid 0xc9779c2a, флаги [нет] Клиент-Ethernet-адрес 00: 0c: xx: xx: xx: d5 Vendor-rfc1048 Расширения Волшебное печенье 0x63825363 Параметр сообщения DHCP 53, длина 1: запрос Запрошенный IP, опция 50, длина 4: 10.10.1.163 Вариант имени хоста 12, длина 14: "test-ubuntu" Параметр-запрос вариант 55, длина 16: Маска подсети, BR, часовой пояс, шлюз по умолчанию Имя домена, Сервер доменного имени, опция 119, имя хоста Netbios-Name-Server, Netbios-Scope, MTU, бесклассовый-статический-маршрут NTP, Classless-Static-Route-Microsoft, Static-Route, опция 252 14:37:50.060780 IP (tos 0x0, ttl 64, id 53564, смещение 0, флаги [нет], протокол UDP (17), длина 339) 10.10.1.1.67> 10.10.1.163.68: BOOTP / DHCP, ответ, длина 311, xid 0xc9779c2a, флаги [нет] Ваш IP 10.10.1.163 Сервер-IP 10.10.1.1 Клиент-Ethernet-адрес 00: 0c: xx: xx: xx: d5 Vendor-rfc1048 Расширения Волшебное печенье 0x63825363 Параметр DHCP-сообщения 53, длина 1: ACK Параметр Server-ID 54, длина 4: 10.10.1.1 Вариант аренды на срок 51, длина 4: 86400 РН Вариант 58, длина 4: 43200 RB Option 59, длина 4: 75600 Маска подсети, вариант 1, длина 4: 255.255.255.0 BR Вариант 28, длина 4: 10.10.1.255 Вариант 6 сервера доменного имени, длина 4: 10.10.1.1 Вариант имени хоста 12, длина 14: "test-ubuntu" T252 Вариант 252, длина 1:10 Вариант 3 шлюза по умолчанию, длина 4: 10.10.1.1 

Завершение

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

Комбинация tcpdump с Wireshark - мощная комбинация, особенно когда вы хотите углубиться в сеансы полного уровня приложения, поскольку декодеры могут собрать полный поток. Недавно мы сделали крупное обновление нашего учебника Wireshark.

Спасибо за чтение. Посетите страницу man для получения более подробной информации, и если у вас есть какие-либо комментарии или предложения, напишите мне, используя контактную форму. Удачного анализа пакетов!

Знай свою поверхность атаки

От обнаружения до выявления уязвимости

.

Windump - Как использовать Windump (tcpdump) в Windows 7 - Наглядное руководство

Tcpdump - классический инструмент для мониторинга пакетов. Есть версия для windows.

Шаг 1. Загрузите и установите Windump

.

http://www.winpcap.org/windump/

Вам нужно будет перевести вашу сетевую карту в неразборчивый режим - для этого установите WinPcap.

Шаг 2. Загрузите и установите WinPcap

.

http://www.winpcap.org/install/default.htm

Шаг 3. Откройте командную строку с правами администратора

Пуск> Стандартные> Командная строка

Щелкните правой кнопкой мыши> Запуск от имени администратора

Измените каталог на каталог загрузки - обычно в Windows это:

cd c: \ Users \ Smile \ Downloads

Smile будет заменено вашим именем пользователя, например cd c: \ Users \ ваше имя пользователя \ Downloads

Шаг 4. Запустите windump, чтобы найти сетевой адаптер

ветряк -D

Windump перечислит ваш адаптер с номером.

В списке может быть несколько адаптеров. Вы выбираете интерфейс для запуска windump (как показано в шаге 5 с использованием интерфейса номер 2).

Шаг 5. Запустите windump для сбора пакетов и записи в файл

Это создаст каталог c: \ perflogs \ и файл с именем diagTrace0.

Переключатели означают это:

    • -i - это номер NIC, выбранный на предыдущем шаге
    • -w <имя> - это префикс файлов для создания
    • -n регистрация не разрешает имена хостов, все данные будут в формате IP-адреса
    • -C размер в миллионах байтов, до которого файлы журналов увеличиваются до перехода к следующему файлу
    • -W количество циклических файлов журнала, которые нужно сохранить в дополнение к текущему файлу журнала, укажите в <путь>, где файлы должны храниться
    • -U при сохранении каждого пакета он будет записан в выходной файл
    • -s уменьшает объем буферизации пакетов, установите нулевое значение

Шаг 6. Используйте Wireshark, чтобы открыть файл

Если у вас не установлен wirehark, загрузите его отсюда:

http: // www.wirehark.org/download.html

Файл> Открыть> C: \ perflogs> diagTraces0

Wireshark покажет все пакетные данные. Дважды щелкните каждое событие, чтобы просмотреть больше данных.

Или щелкните столбец «Протокол» для сортировки по Arp, TCP, UDP или DNS и т. Д.

Вот и все !!

******

Wireshark - это мощный инструмент с открытым исходным кодом, который идеально подходит для проверки и фильтрации файлов захвата данных tcpdump / windump.

Чтобы дать вам пример эффекта «детализации», вот DNS-пакет windump / wirehark для WordPress.com

Артикул:

http://www.symantec.com/business/support/index?page=content&id=TECH86409

****

****

Если наклейка с лицензией изношена или сошла с компьютера, лицензионные ключи можно извлечь вручную. * Сделайте это перед переустановкой ОС, а не после этого

Как найти лицензионные ключи Windows 7, включая ключи Windows 10, Exchange, SQL Server и OFFICE

https: // uwnthesis.wordpress.com/2016/01/01/how-to-find-windows-7-license-keys-windows-10-all-windows-server-sql-products/

Нравится:

Нравится Загрузка ...

.

TCPDUMP (сниффер / анализатор командной строки) для Windows

Получать уведомления о новых версиях

Это не шутка:
Совместимая с UEFI и Secure Boot версия TCPDUMP для Windows, подписанная всеми мыслимыми сертификатами (SHA-1, SHA-256, EV) и проверенная Microsoft.

TCPDUMP для Windows ® является клоном TCPDUMP, наиболее часто используемый сетевой сниффер / анализатор для UNIX, скомпилированный с использованием исходного кода tcpdump (tcpdump.org) и нашей собственной технологии захвата пакетов Microolap Packet Sniffer SDK (без libpcap / WinPcap / npcap).

Что под капотом?
TCPDUMP для Windows ® использует почти тот же стек технологий захвата сетевого трафика, что и EtherSensor , платформа анализа сетевого трафика, которая помогает нашим клиентам решать многие задачи S безопасность O вводить задачи в сочетании с DLP, SIEM, U (E) BA, eDiscovery, Enterprise Archiving и т. Д.

Сколько?
TCPDUMP для Windows ® бесплатен для некоммерческого / образовательного использования, и вы можете использовать его неограниченное время.

Но если вы собираетесь использовать его в коммерческих целях, добро пожаловать в , заказывайте Коммерческая лицензия - TCPDUMP для Windows ® сэкономит вам массу нервов и времени, если вы работаете в гетерогенной среде Unix / Windows.


Ничего необычного: выглядит так же, как в Unix-подобных операционных системах.

Microolap TCPDUMP для Windows ® точно воспроизводит все функции оригинального tcpdump от Группа сетевых исследований LBNL, разработала для систем UNIX.

Начиная с Microolap TCPDUMP для Windows ® компилируется с Packet Sniffer SDK имеет следующие преимущества:

Переносной

Microolap TCPDUMP для Windows ® не требует установки и может запускаться с любого съемного устройства: он скомпилирован с помощью Packet Sniffer SDK, поэтому никаких предустановленных сторонних драйверов захвата пакетов не требуется.Просто запустите tcpdump.exe и используйте оригинальный интерфейс командной строки tcpdump , с которым вы уже знакомы.

Совместимость

Microolap TCPDUMP для Windows ® полностью совместим с UEFI и безопасной загрузкой.
Вот список операционных систем семейства Windows, поддерживаемых Microolap TCPDUMP для Windows ® : Windows XP, WinXP x64, Windows Vista, Vista x64, Windows 2003, Win2003 x64, Windows 2008, Windows 2012, Windows 8, Windows 10 , Windows Server 2016, Windows server 2019 и различные версии Windows PE .Сообщите нам, если какое-либо из обновлений Windows сокращает этот список.

Компактность

Microolap TCPDUMP для Windows ® поставляется в виде одного файла .EXE размером 600 КБ, который можно загрузить на удаленный компьютер. Сетевой трафик Windows PC Box, который необходимо проанализировать, а затем запустить с помощью любого средства удаленного администрирования.

Пробная и коммерческая версии TCPDUMP для Windows ® не содержат компонентов управления лицензиями или DRM.Пробная версия автоматически проверяет наличие более новой версии на одном из наших веб-серверов и может открывать соответствующую веб-страницу в браузере по умолчанию.

В коммерческой версии этого делать не нужно: мы уведомляем зарегистрированных пользователей о новой версии по электронной почте.

Кроме того, зарегистрированные пользователи получают как 32-битную, так и 64-битную версии, а также версию, совместимую с Windows PE.

.

TCPDUMP для Windows® - FAQ

В каких случаях мне нужен TCPDUMP для Windows ® ?

TCPDUMP для Windows ® необходим, если вы работаете в гетерогенной среде Unix / Windows и хотите использовать tcpdump , с которым вы знакомы, на обеих платформах.

Как получить пробную версию TCPDUMP для Windows ® ?

Добро пожаловать в последнюю пробную версию TCPDUMP для Windows ® в разделе загрузки.

Какие ограничения есть у пробной версии TCPDUMP для Windows ® ?

Все оценочные версии TCPDUMP для Windows ® полностью функциональны, хотя существуют лицензионные ограничения. Кроме того, пробная версия TCPDUMP для Windows ® автоматически проверяет наличие новой версии на одном из наших веб-серверов и может открывать соответствующую веб-страницу в браузере по умолчанию.

Какая техническая поддержка доступна для зарегистрированных пользователей TCPDUMP для Windows ® ?

Наша служба поддержки TCPDUMP для Windows ® предлагает следующее: бесплатно предпродажная поддержка, которая может помочь вам узнать больше об этом продукте, и послепродажная поддержка для зарегистрированным пользователям для решения всех возможных технических проблем.

Пробуя вашу программу TCPDUMP, как мне узнать индекс интерфейса?

Попробуйте это:

 C: \> tcpdump -D 

а затем:

 C: \> tcpdump -i <номер интерфейса> <что угодно> 

Предположим, вы хотите взглянуть на HTTP-трафик на порту 80. Очевидно, NdisWanBh intrface не представляет интереса:

 C: \> tcpdump -D 1. \ Device \ NdisWanBh (минипорт WAN (сетевой монитор)) 2. \ Устройство \ {1F361AA0-9606-4422-836B-8D2465C812B6} / (Сетевая карта Gigabit Ethernet семейства Realtek RTL8169 / 8110) 

Теперь запустим tcpdump для второго интерфейса из списка:

 C: \> tcpdump -i 2 -vv -x -X -s 1500 порт 80 
.

tcpdump - как читать файл pcap, фильтровать по IP-адресу и порту, а затем записывать данные в другой файл

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
.

как я могу сбрасывать в tcpdump только исходящие IP-пакеты?

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
.

Смотрите также