Ключи
- -i any : слушать все интерфейсы (проверка сетевых карт).
- -n : не отображать имена хостов - только IP
- -nn : не отображать имена хостов и имена портов
- -X : показывать содержимое пакетов в ASCII и HEX
- -XX : аналогично -X, но отображает заголовок Ethernet
- -v, -vv, -vvv : уровень verbose - увеличение числа отображаемой информации
- -c : захватить первые c пакетов и остановиться
- -s : size - указать длину пакета для захвата, первые s байт. "-s 0" - неограниченная длинна
- -S : Sequence - отображать абсолютные числа последовательностей пакетов
- -e : Захватывать Ethernet-заголовок
- -q : Показывать меньше информации по протоколу
- -E : Расшифровать IPSEC траффик с помощью ключа
Варианты использования
Блок кода | ||||
---|---|---|---|---|
| ||||
tcpdump -nS # базовый мониторинг tcpdump -nnvvS # с подробностями по пакетам tcpdump -nnvvXSs 1514 -c2 # самый подробный вариант, с захватом 1514 байт от каждого пакета (пакет целиком), захватить 2 пакета |
Фильтрация
Блок кода | ||||
---|---|---|---|---|
| ||||
tcpdump host 1.2.3.4 # захват траффика с одного IP tcpdump src 2.3.4.5 # захват траффика, в котором указан IP источника tcpdump dst 2.3.4.5 # захват траффика, в котором указан IP цели tcpdump net 1.2.3.0/24 # захват траффика с указанной подсети tcpdump proto icmp # захват траффика определенного протокола. Ключевое слово "proto" можно не писать tcpdump port 3389 # захват траффика с определенного порта tcpdump portrange 21-23 # захват траффика с набора портов tcpdump less 32 # аналогично tcpdump > 32 захват пакетов больше 32 байт tcpdump greater 128 # аналогично tcpdump <= 128 захват пакетов меньше 128 байт |
Комбинация фильтров
Блок кода | ||||
---|---|---|---|---|
| ||||
tcpdump src port 1025 and tcp tcpdump udp and src port 53 |
Запись лога в файл
Для записи используется ключ -w, для чтения ключ -r:
Блок кода | ||||
---|---|---|---|---|
| ||||
tcpdump -s 1514 port 80 -w capture_file # запись целиковых пакетов с 80 порта tcpdump -r capture_file # чтение с файла |
Комбинации правил
Три варианта комбо: AND или &&, OR или ||, not или !
Блок кода | ||||
---|---|---|---|---|
| ||||
tcpdump -nnvvS and src 10.5.2.3 and dst port 3389 # захват пакетов с указанного IP и идущих на указанный порт tcpdump -nvvXSs 1514 dst 192.168.0.2 and src net 172.16.0.0/16 and not icmp # захват пакетов с указанного IP и из сети, не ICMP протокола |
Группировка
Для группировки используются скобки, а для их распознавания в строке используются одинарные кавычки
Блок кода | ||||
---|---|---|---|---|
| ||||
tcpdump 'src 10.0.2.4 and (dst port 3389 or 22)' # захват пакетов с указанного IP, идущих на один из двух портов |
Захват пакетов по признаку
Unskilled Attackers Pester Real Security Folks
Unskilled = URG
Attackers = ACK
Pester = PSH
Real = RST
Security = SYN
Folks = FIN
U A P R S F
32 16 8 4 2 1
Блок кода | ||||
---|---|---|---|---|
| ||||
Показать все 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' |