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 -nAs20000-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-s0 port 5060 and host xxx.xxx.xxx.251 -vvv-w/usr/local/tcpdumplog/log $ tcpdump -i eth0 -n-s0 port 1720 and host xxx.xxx.xxx.251 -vvv-w/usr/local/tcpdumplog
H.323 сигналинг ловим с двух IP. В таком виде с двух IP отказалось снимать, может быть OR нужно было поставить.
$ tcpdump -i eth0 -n-s0 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-s1500-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 -nvvXSs1514 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
Заголовок
$ tcpdump -i eth1 tcp and host 10.27.13.14 and port 6973-s0-vv-X-c1000