Table of Contents
🛰️ tcpdump: кратко и по делу#
tcpdump — мощный сниффер пакетов, анализ сетевого трафика на уровне IP/TCP/UDP/ICMP.
Используется для диагностики сети, отладки соединений и захвата пакетов для последующего анализа в Wireshark.
📝 Топ‑20 полезных флагов tcpdump#
-i IFACE— указать интерфейс (например,eth0).-D— показать список доступных интерфейсов.-n— не резолвить DNS, ускоряет работу.-nn— не резолвить DNS и сервисы (порты → числа).-c NUM— захватить NUM пакетов и выйти.-s SIZE— установить snaplen (размер данных пакета),-s 0= полный пакет.-w FILE— записать захваченные пакеты в файл.pcap.-r FILE— прочитать пакеты из файла.pcap.-v/-vv/-vvv— увеличить детализацию вывода.-X— показать пакет в hex + ASCII.-XX— показать пакет в hex + raw Ethernet header.-A— показать полезную нагрузку пакета в ASCII.-q— компактный режим, минимум информации.-tt— печатать абсолютные таймстемпы.-tttt— печатать таймстемпы в читаемом формате.-e— выводить MAC-адреса.-Z USER— понизить привилегии до пользователяUSER.-G SEC— ротация файлов каждыеSECсекунд.-C SIZE— ротация файлов по размеру (в мегабайтах).-U— писать в файл “на лету” (не ждать закрытия).
🚀 Айсберг команд tcpdump — от базового к гуру#
🟢 Уровень 1 — База (разогрев)#
tcpdump
- Сниффить пакеты на первом доступном интерфейсе
tcpdump -i eth0
- Захватить трафик на конкретном интерфейсе
tcpdump -i any
- Захватить трафик на всех интерфейсах
tcpdump -n
- Выводить IP-адреса вместо DNS-имён
tcpdump -c 10
- Захватить 10 пакетов и выйти
🟡 Уровень 2 — Фильтрация по IP и портам#
tcpdump -i eth0 host 8.8.8.8
- Трафик к/от 8.8.8.8
tcpdump -i eth0 src 192.168.1.10
- Только пакеты от источника
tcpdump -i eth0 dst 192.168.1.20
- Только пакеты к получателю
tcpdump -i eth0 port 443
- HTTPS трафик
tcpdump -i eth0 portrange 20-25
- Пакеты по диапазону портов
🟠 Уровень 3 — Фильтрация по протоколам#
tcpdump -i eth0 tcp
- Только TCP пакеты
tcpdump -i eth0 udp
- Только UDP пакеты
tcpdump -i eth0 icmp
- Пинг и ICMP пакеты
tcpdump -i eth0 arp
- ARP-запросы и ответы
tcpdump -i eth0 ether proto 0x888e
- Захват PPPoE/EAPOL пакетов
🔵 Уровень 4 — Расширенные фильтры#
tcpdump -i eth0 'tcp[tcpflags] & tcp-syn != 0'
- Показать только TCP SYN пакеты
tcpdump -i eth0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
- Только HTTP пакеты с полезной нагрузкой
tcpdump -i eth0 'src net 10.0.0.0/8'
- Пакеты только из подсети 10.0.0.0/8
tcpdump -i eth0 'tcp dst port 22 and tcp[tcpflags] & tcp-ack != 0'
- Проверка активных SSH соединений
tcpdump -i eth0 'ip6'
- Только IPv6 пакеты
🟣 Уровень 5 — Захват в файлы и чтение#
tcpdump -i eth0 -w dump.pcap
- Сохранить трафик в файл
tcpdump -r dump.pcap
- Прочитать захваченный файл
tcpdump -nn -r dump.pcap | less
- Читаем с отключением DNS резолвинга
tcpdump -r dump.pcap -vv
- Более детализированное чтение pcap
tshark -r dump.pcap
- Анализ того же файла через Wireshark CLI
🔴 Уровень 6 — Отладка приложений и сервисов#
tcpdump -i eth0 -A -s 0 'tcp port 80'
- Смотреть HTTP-запросы в ASCII
tcpdump -i eth0 -X -s 0 'tcp port 443'
- Смотреть расшифрованный HTTPS (если MITM)
tcpdump -i eth0 'port 22 and (tcp-syn|tcp-ack) != 0'
- Проверка активности SSH соединений
tcpdump -i eth0 udp port 53
- Анализ DNS-запросов
tcpdump -i eth0 dst port 25
- SMTP трафик (отправка почты)
🟤 Уровень 7 — Гуру‑режим#
tcpdump -i eth0 -G 60 -w 'dump-%Y-%m-%d_%H:%M:%S.pcap'
- Ротация файлов pcap раз в минуту
tcpdump -i eth0 'tcp[13] = 2'
- Только пакеты с установленным SYN-флагом
tcpdump -i eth0 'tcp[13] = 18'
- Только SYN+ACK пакеты
tcpdump -i eth0 'tcp[13] = 1'
- Только FIN пакеты
tcpdump -i eth0 -tttt -vv -c 100
- Точные таймстемпы + высокая детализация
🧩 Бонус — практические рецепты#
Захватить HTTP-трафик и посмотреть запросы:
tcpdump -i eth0 -A -s 0 tcp port 80
Сохранить трафик для анализа в Wireshark:
tcpdump -i eth0 -s 0 -w traffic.pcap
Показать только HTTPS-пакеты:
tcpdump -i eth0 port 443
Отслеживать только исходящие запросы:
tcpdump -i eth0 src host $(hostname -I | awk '{print $1}')
Анализировать DNS-запросы в реальном времени:
tcpdump -i eth0 udp port 53