Баннер мобильный (3) Пройти тест

Перехват сетевого трафика с tcpdump: инструкция

Что это за инструмент, зачем нужен и как им пользоваться

Инструкция

10 июня 2025

Поделиться

Скопировано
Перехват сетевого трафика с tcpdump: инструкция

Содержание

    tcpdump — популярный инструмент для анализа сетевого трафика. Он позволяет перехватывать пакеты данных и анализировать их содержание. В статье рассказываем, как использовать tcpdump на операционной системе Linux и Windows.

    Что такое tcpdump

    tcpdump — это утилита командной строки для захвата и анализа пакетов в компьютерных сетях. Она поддерживает работу с разными сетевыми протоколами, например TCP, UDP, ICMP и другими. Ее используют для:

    • отладки сетевых приложений;
    • выявления проблем с сетью;
    • обнаружения сетевых атак;
    • анализа безопасности;
    • мониторинга трафика.

    Утилита tcpdump входит в стандартный пакет инструментов Linux, но на Windows его необходимо установить вручную.

    По сути, перехват трафика — это просто чтение пакетов с сетевого интерфейса. Перехватить можно любой пакет и сделать это разными способами. Обычно tcpdump используют специалисты наступательной безопасности — те, кто занимается пентестом, анализом защищенности, поиском уязвимостей. Иногда — системные администраторы для диагностики сети. И, конечно, злоумышленники.Хотя заполучить чужую конфиденциальную информацию с помощью tcpdump практически невозможно, потому что она не отправляется в открытом виде. Практически во всех взаимодействиях в сети используется шифрование. Для расшифровки нужен приватный ключ или сертификат. Все современные протоколы этот приватный ключ напрямую через трафик не отправляют

    Константин Зубченко, независимый эксперт по кибербезопасности, автор Skillfactory

    Преимущества tcpdump 

    tcpdump — один из самых популярных инструментов для анализа сетевого трафика. Его любят за:

    • простоту: у tcpdump несложный интерфейс, а вся работа происходит в командной строке;
    • гибкость фильтрации: с помощью утилиты можно захватывать только тот трафик, который вас интересует. Например, фильтровать пакеты по IP-адресу, портам, протоколам;
    • универсальность: tcpdump поддерживает разные сетевые протоколы. Можно изучать трафик на уровне Ethernet, IP, TCP, UDP;
    • легкость интеграции: утилиту легко интегрировать в скрипты и автоматизированные процессы. Это помогает автоматизировать мониторинг сети и анализ трафика;
    • низкие системные требования: инструмент не требует много ресурсов и подходит для работы на серверах или во встраиваемых системах;
    • доступность: tcpdump поддерживают большинство UNIX-подобных систем, включая Linux и macOS. На Windows его можно использовать через эмуляторы терминала. 

    Установка tcpdump

    Чтобы установить tcpdump на устройство с Linux:

    1. Откройте терминал (Ctrl + Alt + T).
    2. Обновите список доступных пакетов. Для этого введите команду из списка и нажмите Enter:
    • Ubuntu и Debian: sudo apt update 
    • CentOS/RHEL: sudo yum check-update
    • Fedora: sudo dnf check-update
    • Arch Linux: sudo pacman -Sy

    После этого вас попросят ввести пароль. Используйте тот же, что в вашей учетной записи пользователя. 

    3) Установите tcpdump. Используйте одну из команд ниже в зависимости от дистрибутива:

    • Ubuntu/Debian: sudo apt install tcpdump
    • CentOS/RHEL: sudo yum install tcpdump
    • Fedora: sudo dnf install tcpdump
    • Arch Linux: sudo pacman -S tcpdump

    После этого нажмите Enter и подтвердите установку (Y, а затем Enter).

    4) Проверьте установку с помощью команды tcpdump —version. Если установка прошла успешно, вы увидите информацию о версии утилиты. Теперь можно использовать утилиту.

    Чтобы работать с tcpdump на Windows, скачайте и установите соответствующую версию для этой операционной системы. Обычно используют программы WinPcap или Npcap, которые предоставляют драйверы для работы с сетевыми интерфейсами.

    Как пользоваться tcpdump на Linux

    Для захвата пакетов потребуются права суперадминистратора. Чтобы запустить утилиту, зайдите в терминал и введите команду sudo tcpdump.

    tcpdump будет перехватывать трафик на всех интерфейсах и выводить информацию о пакетах в режиме реального времени. Если у вас несколько сетевых интерфейсов, укажите, какой именно нужно использовать:

    • Посмотрите список доступных интерфейсов: sudo tcpdump -D
    • Выберите нужный интерфейс (например, eth0 или wlan0) и запустите tcpdump с указанием интерфейса: sudo tcpdump -i eth0

    Когда нужно собрать не все данные, используйте фильтры tcpdump:

    • По IP-адресу: sudo tcpdump -i eth0 host 192.168.1.100
    • По определенному порту: sudo tcpdump -i eth0 port 80
    • По протоколу (например, ICMP): sudo tcpdump -i eth0 icmp

    Разные фильтры можно настраивать одновременно с помощью операторов AND (и), OR (или) и NOT (не). Например, чтобы перехватить трафик на интерфейсе eth1 от IP-адреса 10.0.0.1 с целевым портом 80, можно использовать команду:

    tcpdump -n -i eth1 src 10.0.0.1 and dst port 80

    Утилита будет продолжать перехват пакетов и выводить заголовки до тех пор, пока вы не нажмете Ctrl + C.

    Вывод
    Вывод перехваченного трафика. Источник

    Основные опции tcpdump

    Для управления сетевым трафиком и фильтрами используют специальные параметры tcpdump: 

    • -i <interface> — указывает интерфейс для перехвата (tcpdump -i eth0);
    • -n — выводит IP-адреса и номера портов в числовом формате. Это ускоряет работу и упрощает вывод (tcpdump -n);
    • -v, -vv, -vvv — увеличивает подробность выводимой информации, от минимальной v до максимальной vvv (tcpdump -vv);
    • -c <count> ограничивает количество перехваченных пакетов (tcpdump -c 10);
    • -w <file> — записывает перехваченные данные в файл (tcpdump -w capture.pcap). Чтобы прочитать их, используйте команду -r <file> (sudo tcpdump -r capture.pcap)
    • -s — устанавливает размер захватываемого пакета. По умолчанию tcpdump захватывает только первые 68 или 96 байт. Чтобы захватить полный пакет, можно установить размер в 0 (tcpdump -s 0);
    • -A — показывает содержимое пакетов в ASCII-формате для анализа текстовых данных (tcpdump -A);
    • -X — выводит данные пакета в шестнадцатеричном формате (tcpdump -X).

    tcpdump на linux — пример анализа пакетов

    Если вы хотите увидеть детали TCP-соединения, можно использовать опцию -v, например:

    sudo tcpdump -i eth0 -v tcp

    Так вы получите информацию о каждом TCP-пакете, включая флаги SYN, ACK, FIN. Это может быть полезно для диагностики проблем с соединением.

    Вывод tcpdump будет выглядеть примерно так:

    12:34:56.789123 IP 192.168.1.1.12345 > 192.168.1.2.80: Flags [S], seq 123456789, win 29200, length 0

    Что он включает: 

    • 12:34:56.789123 — время захвата пакета;
    • IP — тип протокола;
    • 192.168.1.1.12345 — адрес и порт отправителя;
    • 192.168.1.2.80 — адрес и порт получателя;
    • Flags [S] — флаг SYN, указывающий на начало TCP-соединения;
    • seq 123456789 — номер последовательности;
    • win 29200 — размер окна (window size);
    • length 0 — длина данных в пакете.

    Чтобы сохранить перехваченные данные в отдельный файл, используйте опцию -w. Готовый файл можно загрузить в Wireshark — там есть удобный графический интерфейс для анализа перехваченных пакетов.

    Программа Wireshark
    Программа для анализа компьютерных сетей Wireshark. Источник

    Wireshark дает более полное представление о данных: можно посмотреть содержимое пакетов в hex-формате, отследить каналы общения. Есть диссекторы, которые помогают разобрать полученное сообщение, особенно если оно поступило по необычному протоколу. В основном все используют Wireshark, когда есть доступ к графическому интерфейсу. Но tcpdump дает достаточное представление о пакетах для рутинных задач. Это очень выручает, когда нет интерфейса и приходится работать из командной строки.

    Константин Зубченко, независимый эксперт по кибербезопасности, автор Skillfactory

    Главное о перехвате сетевого трафика с помощью tcpdump

    • Утилита tcpdump помогает понять, что происходит в сети, и быстро диагностировать проблемы.
    • tcpdump — простой, гибкий и поддерживает разные сетевые протоколы.
    • tcpdump работает на Linux и MacOS, на Windows для полноценной работы необходимо установить дополнительные компоненты, например Npcap.
    • С tcpdump можно собирать весь трафик или фильтровать его по номеру порта, IP-адресу, протоколу и другим параметрам.
    • Перехваченные данные можно сохранять в отдельный файл и загружать в Wireshark для анализа.

    Инструкция

    Поделиться

    Скопировано
    0 комментариев
    Комментарии