tcpdump

  • tcpdump -n -i eth0 -l | tee resolv.pcap
  • ssh root@HOST tcpdump -U -s0 -w - 'not port 22' | wireshark -k -i -

Фильтры

Фильтр Определение
host Служит для указания имени хоста
net Указывает IP подсети и сети
ip Служит для указания адреса протокола
src Выводит пакеты, которые были отправлены с указанного адреса
dst Выводит пакеты, которые были получены указанным адресом
arp, udp, tcp Фильтрация по одному из протоколов
port, portrange Отображает информацию, относящуюся к определенному порту, диапазону портов
and, or Служит для объединения нескольких фильтров в команде
less, greater Вывод пакетов меньше или больше указанного размера

Ключи

  • -i - Прослушиваемый интерфейс
  • port 9000, port 80
  • -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 - пользователь, от имени которого будут создаваться файлы.

Анализ DNS трафика

$ tcpdump -i eth0 -s0 -w resolv.pcap port 53

Анализ трафика HTTP сервера

$ tcpdump -An  tcp port 80

Анализ PHP-FPM на 9000 порту

$ tcpdump -nAs 20000 -i lo tcp port 9000

Анализирует траффик удаленно через SSH с помощью Wireshark

$ ssh root@HOST tcpdump -U -s0 -w - 'not port 22' | wireshark -k -i -

UDP трафик с и на IP xxx.xxx.xxx.251 destined for port 5060:

$ tcpdump -nnvvS udp and host xxx.xxx.xxx.251 and dst port 5060

Записать в файл mbill251 весь трафик с хоста xxx.xxx.xxx.251 за исключением трафика ssh

$ tcpdump -n -i eth0 host xxx.xxx.xxx.251 -vvv and not port 22 -w /home/mbill251

Прослушать порт 5060 с ip xxx.xxx.xxx.251

$ tcpdump -i eth0 -n -s 0 port 5060 and host xxx.xxx.xxx.251 -vvv -w /usr/local/tcpdumplog/log
$ tcpdump -i eth0 -n -s 0 port 1720 and host xxx.xxx.xxx.251 -vvv -w /usr/local/tcpdumplog

H.323 сигналинг ловим с двух IP. В таком виде с двух IP отказалось снимать, может быть OR нужно было поставить.

$ tcpdump -i eth0 -n -s 0 port 1720 and host xxx.xxx.164.1 and host xxx.xxx.107.1 -vvv -w /usr/local/tcpdumplog/logfile

перечислить доступные интерфейсы (которые можно прослушивать при помощи опции -i)

$ tcpdump -D

посмотреть трафик одного хоста:

$ tcpdump host 1.2.3.4

посмотреть трафик на порте:

$ tcpdump src port 80

посмотреть IP трафик на хост:

$ tcpdump ip host 1.2.3.4

посмотреть ARP трафик на хост:

$ tcpdump arp host 1.2.3.4

посмотреть RARP трафик на хост:

$ tcpdump rarp host 1.2.3.4

посмотреть трафик, кроме хоста unixserver:

$ tcpdump not host unixserver

посмотреть трафик на server1 и server2

$ tcpdump host server1 or host server2

посмотреть содержимое пакетов на интерфейсе tun0 на хост ya.ru

$ tcpdump -X -i tun0 host ya.ru

подсмотреть номера и пароли к icq

$ tcpdump -X -i fxp1 port aol

посмотреть содержимое пакетов на интерфейсе tun0 на хост ya.ru

посмотреть содержимое пакетов на интерфейсе tun0 на хост ya.ru, при этом прочитать из каждого пакета по 1500 байт и не преобразовывать IP в имя хоста

$ tcpdump -X -s 1500 -n -i tun0 host ya.ru

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

tcpdump на unix socket

nano ./host.conf, затем перезапускаем nginx

fastcgi_pass unix:/tmp/php-fpm.sock.socat;

Запускаем снифер и смотрим вывод

$ socat -t100 -x -v UNIX-LISTEN:/tmp/php-fpm.sock.socat,mode=777,reuseaddr,fork UNIX-CONNECT:/tmp/php-fpm.sock