Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
| tcpdump [2016/05/21 13:56] – mirocow | tcpdump [2019/12/24 23:12] (текущий) – [tcpdump на unix socket] mirocow | ||
|---|---|---|---|
| Строка 2: | Строка 2: | ||
| ====== tcpdump ====== | ====== tcpdump ====== | ||
| - | |||
| - | * tcpdump -i eth0 -s0 -w resolv.pcap port 53 | ||
| ===== Анализ ===== | ===== Анализ ===== | ||
| * tcpdump -n -i eth0 -l | tee resolv.pcap | * tcpdump -n -i eth0 -l | tee resolv.pcap | ||
| - | * затем Wireshark | + | * 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 - выводить информацию уровня соединения для каждого пакета, | ||
| + | * -f - выводить доменное имя для ip адресов; | ||
| + | * -F - читать пакеты из файла, а не интерфейса; | ||
| + | * -G - создавать новый файл лога через указанный промежуток времени; | ||
| + | * -H - обнаруживать заголовки 802.11s; | ||
| + | * -i - имя интерфейса для перехвата пакетов. Вы можете захватывать пакеты со всех интерфейсов, | ||
| + | * -I - переключить интерфейс в режим монитора для захвата всех проходящих пакетов; | ||
| + | * -j - установить формат Timestamp для записи пакетов; | ||
| + | * -J - посмотреть доступные Timestamp; | ||
| + | * -K - не проверять контрольные суммы пакетов; | ||
| + | * -l - добавить поддержку прокрутки к выводу; | ||
| + | * -L - вывести поддерживаемые протоколы подключения для интерфейса; | ||
| + | * -n - не отображать доменные имена; | ||
| + | * -r - прочитать пакеты из файла, созданного с помощью -w; | ||
| + | * -v, -vv, -vvv - более подробный вывод; | ||
| + | * -q - выводить минимум информации; | ||
| + | * -w - записать вывод в файл; | ||
| + | * -Z - пользователь, | ||
| + | |||
| + | ===== Примеры ===== | ||
| + | |||
| + | === Анализ DNS трафика === | ||
| + | |||
| + | <code bash> | ||
| + | $ tcpdump -i eth0 -s0 -w resolv.pcap port 53 | ||
| + | </ | ||
| + | |||
| + | === Анализ трафика HTTP сервера === | ||
| + | |||
| + | <code bash> | ||
| + | $ tcpdump -An tcp port 80 | ||
| + | </ | ||
| + | |||
| + | === Анализ PHP-FPM на 9000 порту === | ||
| + | |||
| + | <code bash> | ||
| + | $ tcpdump -nAs 20000 -i lo tcp port 9000 | ||
| + | </ | ||
| + | |||
| + | === Анализирует траффик удаленно через SSH с помощью | ||
| + | |||
| + | <code bash>$ ssh root@HOST tcpdump -U -s0 -w - 'not port 22' | wireshark -k -i -</ | ||
| + | |||
| + | === UDP трафик с и на IP xxx.xxx.xxx.251 destined for port 5060: === | ||
| + | |||
| + | <code bash>$ tcpdump -nnvvS udp and host xxx.xxx.xxx.251 and dst port 5060</ | ||
| + | |||
| + | === Записать в файл mbill251 весь трафик с хоста xxx.xxx.xxx.251 за исключением трафика ssh === | ||
| + | |||
| + | <code bash>$ tcpdump -n -i eth0 host xxx.xxx.xxx.251 -vvv and not port 22 -w / | ||
| + | |||
| + | === Прослушать порт 5060 с ip xxx.xxx.xxx.251 === | ||
| + | |||
| + | <code bash> | ||
| + | $ tcpdump -i eth0 -n -s 0 port 5060 and host xxx.xxx.xxx.251 -vvv -w / | ||
| + | $ tcpdump -i eth0 -n -s 0 port 1720 and host xxx.xxx.xxx.251 -vvv -w / | ||
| + | </ | ||
| + | |||
| + | === H.323 сигналинг ловим с двух IP. В таком виде с двух IP отказалось снимать, | ||
| + | |||
| + | <code bash>$ tcpdump -i eth0 -n -s 0 port 1720 and host xxx.xxx.164.1 and host xxx.xxx.107.1 -vvv -w / | ||
| + | |||
| + | === перечислить доступные интерфейсы (которые можно прослушивать при помощи опции -i) === | ||
| + | |||
| + | <code bash>$ tcpdump -D</ | ||
| + | |||
| + | === посмотреть трафик одного хоста: === | ||
| + | |||
| + | <code bash>$ tcpdump host 1.2.3.4</ | ||
| + | |||
| + | === посмотреть трафик на порте: === | ||
| + | |||
| + | <code bash>$ tcpdump src port 80</ | ||
| + | |||
| + | === посмотреть IP трафик на хост: === | ||
| + | |||
| + | <code bash>$ tcpdump ip host 1.2.3.4</ | ||
| + | |||
| + | === посмотреть ARP трафик на хост: === | ||
| + | |||
| + | <code bash>$ tcpdump arp host 1.2.3.4</ | ||
| + | |||
| + | === посмотреть RARP трафик на хост: === | ||
| + | |||
| + | <code bash>$ tcpdump rarp host 1.2.3.4</ | ||
| + | |||
| + | === посмотреть трафик, | ||
| + | |||
| + | <code bash>$ tcpdump not host unixserver</ | ||
| + | |||
| + | ==== посмотреть трафик на server1 и server2 ==== | ||
| + | |||
| + | <code bash>$ tcpdump host server1 or host server2</ | ||
| + | |||
| + | === посмотреть содержимое пакетов на интерфейсе tun0 на хост ya.ru === | ||
| + | |||
| + | <code bash>$ tcpdump -X -i tun0 host ya.ru</ | ||
| + | |||
| + | === подсмотреть номера и пароли к icq === | ||
| + | |||
| + | <code bash>$ tcpdump -X -i fxp1 port aol</ | ||
| + | |||
| + | === посмотреть содержимое пакетов на интерфейсе tun0 на хост ya.ru === | ||
| + | |||
| + | посмотреть содержимое пакетов на интерфейсе tun0 на хост ya.ru, при этом прочитать из каждого пакета по 1500 байт и не преобразовывать IP в имя хоста | ||
| + | |||
| + | <code bash>$ tcpdump -X -s 1500 -n -i tun0 host ya.ru</ | ||
| + | |||
| + | === TCP traffic from 10.5.2.3 destined for port 3389: === | ||
| + | |||
| + | <code bash>$ 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: === | ||
| + | |||
| + | <code bash>$ tcpdump -nvX src net 192.168.0.0/ | ||
| + | |||
| + | === Non-ICMP traffic destined for 192.168.0.2 from the 172.16 network: === | ||
| + | |||
| + | <code bash>$ tcpdump -nvvXSs 1514 dst 192.168.0.2 and src net 172.16.0.0/ | ||
| + | $ tcpdump -nvvvpi rl0 tcp and not port ssh and not port smtp</ | ||
| + | |||
| + | === tcpdump на unix socket === | ||
| + | |||
| + | nano ./ | ||
| + | < | ||
| + | fastcgi_pass unix:/ | ||
| + | </ | ||
| + | |||
| + | Запускаем снифер и смотрим вывод | ||
| + | <code bash> | ||
| + | $ socat -t100 -x -v UNIX-LISTEN:/ | ||
| + | </ | ||
| + | |||
| + | === Заголовок === | ||
| - | ==== Ссылки ==== | + | <code bash> |
| + | $ tcpdump -i eth1 tcp and host 10.27.13.14 and port 6973 -s0 -vv -X -c 1000 | ||
| + | </ | ||
| + | ===== Ссылки | ||
| * http:// | * http:// | ||
| * http:// | * http:// | ||
| * http:// | * http:// | ||
| - | * | + | * https:// |
| + | * [[https:// | ||