Back to: tcpdump — аналіз трафіку
0
tcpdump — анализ трафика
tcpdump — мощный инструмент для перехвата и анализа сетевого трафика в командной строке. Позволяет «увидеть», какие пакеты проходят через сетевой интерфейс.
Базовое использование
# Перехват на интерфейсе eth0 (нужен root)
sudo tcpdump -i eth0
# Перехват на всех интерфейсах
sudo tcpdump -i any
# Ограничить количество пакетов
sudo tcpdump -i eth0 -c 10
# Запись в файл (pcap)
sudo tcpdump -i eth0 -w capture.pcap
# Чтение из файла
tcpdump -r capture.pcap
Фильтрация по хосту
# Трафик с конкретным хостом
sudo tcpdump -i eth0 host 192.168.1.1
# Только исходящий трафик
sudo tcpdump -i eth0 src host 192.168.1.1
# Только входящий трафик
sudo tcpdump -i eth0 dst host 192.168.1.1
# Два хоста
sudo tcpdump -i eth0 host 192.168.1.1 and host 10.0.0.5
Фильтрация по порту
# TCP-трафик на порт 80 (HTTP)
sudo tcpdump -i eth0 tcp port 80
# Порт 22 (SSH)
sudo tcpdump -i eth0 port 22
# Диапазон портов
sudo tcpdump -i eth0 portrange 80-90
# UDP-трафик
sudo tcpdump -i eth0 udp port 53
Фильтрация по протоколу
# Только TCP
sudo tcpdump -i eth0 tcp
# Только UDP
sudo tcpdump -i eth0 udp
# Только ICMP (ping)
sudo tcpdump -i eth0 icmp
# Комбинированный фильтр
sudo tcpdump -i eth0 "tcp port 80 or tcp port 443"
Опции вывода
# Без DNS-разрешения (быстрее, IP вместо имён)
sudo tcpdump -i eth0 -n
# Без разрешения портов
sudo tcpdump -i eth0 -nn
# Подробный вывод
sudo tcpdump -i eth0 -v
# Очень подробный
sudo tcpdump -i eth0 -vvv
# Показать содержимое пакетов (hex + ASCII)
sudo tcpdump -i eth0 -X
# Только ASCII
sudo tcpdump -i eth0 -A
# Полный пакет
sudo tcpdump -i eth0 -vvv -X -nn
Комбинированные фильтры
# HTTP-трафик к конкретному серверу
sudo tcpdump -i eth0 -nn host 93.184.216.34 and tcp port 80
# Всё, кроме ARP и DNS
sudo tcpdump -i eth0 "not arp and not port 53"
# TCP SYN-пакеты (попытки соединения)
sudo tcpdump -i eth0 "tcp[tcpflags] & tcp-syn != 0"
# Пакеты с конкретного MAC
sudo tcpdump -i eth0 ether host 00:11:22:33:44:55
Практические примеры
# Поймать 20 пакетов HTTP и сохранить
sudo tcpdump -i eth0 -c 20 -w http.pcap tcp port 80
# Мониторить DNS-запросы
sudo tcpdump -i eth0 -nn udp port 53
# Найти, кто обращается к порту 22
sudo tcpdump -i eth0 -nn port 22 and tcp[tcpflags] & tcp-syn != 0
Анализ pcap-файла
# Читать файл
tcpdump -r capture.pcap
## Читать с фильтром
tcpdump -r capture.pcap port 80
# Конвертировать в текст
tcpdump -r capture.pcap -nn -vvv
ℹ️ Для графического анализа pcap-файлов используйте Wireshark.
Практическое задание
- Поймайте 10 пакетов:
sudo tcpdump -i any -c 10 -nn - Поймайте DNS-запросы:
sudo tcpdump -i any -nn udp port 53 -c 5 - Сохраните трафик в файл:
sudo tcpdump -i any -c 50 -w /tmp/capture.pcap - Прочитайте файл:
tcpdump -r /tmp/capture.pcap -nn - Поймайте только TCP SYN:
sudo tcpdump -i any -nn "tcp[tcpflags] & tcp-syn != 0" -c 5


Добавить комментарий