Введение
В этом лабораторном занятии вы научитесь анализировать TCP-разговоры с помощью командной строки tshark из пакета Wireshark. Вы научитесь захватывать TCP-трафик с использованием фильтров, перечислять разговоры и изучать конкретные порты, такие как HTTP (порт 80), при этом интерпретируя детальную информацию о пакетах.
С помощью практических упражнений, включая генерацию трафика с использованием curl и анализ файлов с захваченным трафиком, вы овладеете навыками изоляции TCP-потоков и определения ключевых метрик разговоров. Эти навыки повысят вашу способность к устранению неполадок в сети и анализу трафика с использованием Wireshark.
Захват TCP-трафика с использованием -f "tcp"
На этом этапе вы научитесь захватывать TCP-сетевой трафик с помощью командной строки tshark из пакета Wireshark. TCP (Transmission Control Protocol, Протокол управления передачей) является одним из основных протоколов Интернета, ответственным за надежный обмен данными между приложениями. Используя фильтр -f "tcp", мы можем сосредоточиться именно на TCP-пакетах, что полезно при анализе веб-браузинга, передачи файлов или электронной почты.
Сначала откройте терминал в виртуальной машине LabEx, нажав на иконку терминала на рабочем столе Xfce или используя сочетание клавиш
Ctrl+Alt+T. В терминале мы будем выполнять все команды для анализа сети.Перейдите в каталог по умолчанию, где мы будем хранить файлы с захваченным трафиком:
cd ~/projectЭто гарантирует, что все наши захваченные данные будут сохранены в одном месте, которое легко найти позже.
Начните захват TCP-трафика с помощью следующей команды:
sudo tshark -f "tcp" -w tcp_capture.pcapРазберем, что делает каждая часть этой команды:
sudoпредоставляет нам административные привилегии, необходимые для захвата пакетов.tshark- это командная строка Wireshark.-f "tcp"действует как фильтр захвата, указываяtsharkзаписывать только TCP-пакеты.-w tcp_capture.pcapсохраняет захваченные пакеты в файл с именем "tcp_capture.pcap".
Пока
tsharkработает, нам нужно сгенерировать пример TCP-трафика. Откройте другое окно терминала и выполните следующую команду:curl https://www.example.comЭта команда отправляет простой веб-запрос на сайт example.com, который использует TCP для связи. Команда
curlпокажет вам HTML-содержимое, возвращаемое сайтом.После ожидания нескольких секунд, чтобы захватить достаточно данных, остановите захват, нажав
Ctrl+Cв первом терминале, где запущенtshark. Это безопасно завершает процесс захвата пакетов.Теперь проверим, что мы захватили, изучив первые несколько строк нашего файла с захваченным трафиком:
tshark -r tcp_capture.pcap | head -n 5Эта команда считывает (
-r) наш файл с захваченным трафиком и отображает первые 5 пакетов. Вы должны увидеть вывод, показывающий процесс рукопожатия TCP, который включает:- Пакеты SYN (синхронизация), которые инициализируют соединение.
- Ответы SYN-ACK (синхронизация - подтверждение).
- IP-адреса источника и назначения.
- Номера портов, используемые для связи.
Показать разговоры с использованием -z conv,tcp
На этом этапе вы научитесь анализировать TCP-разговоры из захваченного трафика с помощью опции -z conv,tcp в Wireshark. TCP-разговор представляет собой полную сессию связи между двумя конечными точками, идентифицируемыми по их IP-адресам и номерам портов. Эта функция предоставляет сводку по всем TCP-разговорам в вашем захвате, показывая IP-адреса источника и назначения, порты и статистику пакетов, что необходимо для понимания моделей сетевого взаимодействия.
Сначала убедитесь, что вы находитесь в правильной директории, где хранится ваш файл с захваченным трафиком. Это важно, так как Tshark должен знать, где найти файл с захваченными пакетами:
cd ~/projectБазовая команда для перечисления TCP-разговоров анализирует захваченные пакеты и отображает сводную таблицу. Флаг
-rуказывает входной файл, а-z conv,tcpвключает функцию статистики разговоров:tshark -r tcp_capture.pcap -z conv,tcpВывод будет представлять собой таблицу, показывающую все TCP-разговоры, аналогичную этому примеру. Каждая строка представляет один разговор между двумя конечными точками, показывая количество кадров (пакетов) и переданных байтов в каждом направлении:
========================================================================= TCP Conversations Filter:<No Filter> | <- | | -> | | Total | | Frames Bytes | | Frames Bytes | | Frames Bytes | 192.168.1.2:49152 <-> 93.184.216.34:80 | 3 180 | | 3 216 | | 6 396 | =========================================================================Чтобы получить более детальный вид с абсолютными временными метками, показывающими, когда произошел каждый разговор, используйте опцию
-t ad. Это помогает понять временные рамки и последовательность сетевых событий:tshark -r tcp_capture.pcap -z conv,tcp -t adВы можете фильтровать разговоры по определенным критериям, используя фильтры отображения с опцией
-Y. Этот пример фильтрует разговоры, связанные с портом 80 (HTTP-трафик), что полезно, если вы хотите анализировать только веб-трафик:tshark -r tcp_capture.pcap -z conv,tcp -Y "tcp.port==80"Чтобы сохранить статистику разговоров для дальнейшего анализа или отчетности, перенаправьте вывод в текстовый файл. Это создаст постоянную запись вашего анализа, которую вы можете просмотреть или поделиться с другими:
tshark -r tcp_capture.pcap -z conv,tcp > tcp_conversations.txt
Фильтрация по определенному порту с использованием -Y "tcp.port==80"
На этом этапе вы научитесь фильтровать сетевой трафик по определенному TCP-порту (порту 80) с помощью синтаксиса фильтра отображения Wireshark и опции -Y "tcp.port==80". Порт 80 является стандартным портом для HTTP-веб-трафика, поэтому этот фильтр позволяет выделить веб-связанные коммуникации в вашем сетевом захвате.
Прежде чем мы начнем, разберем, что делает этот фильтр: он показывает все TCP-пакеты, в которых либо исходный, либо целевой порт равен 80. Это отличается от фильтрации конкретно по исходным или целевым портам, о чем мы поговорим позже.
Сначала убедитесь, что вы находитесь в правильной директории, где хранится ваш файл с захваченным трафиком:
cd ~/projectЧтобы отфильтровать ранее захваченный трафик по порту 80 (HTTP), выполните следующую команду:
tshark -r tcp_capture.pcap -Y "tcp.port==80"Флаг
-rуказывает входной файл, а-Yприменяет фильтр отображения. Эта команда считывает пакеты из файлаtcp_capture.pcap, но показывает только те, которые связаны с портом 80.Вывод будет показывать только пакеты, связанные с портом 80, как в качестве исходного, так и в качестве целевого:
1 0.000000000 192.168.1.2 → 93.184.216.34 TCP 74 49152 → 80 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 2 0.028763000 93.184.216.34 → 192.168.1.2 TCP 74 80 → 49152 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 3 0.028852000 192.168.1.2 → 93.184.216.34 TCP 66 49152 → 80 [ACK] Seq=1 Ack=1 Win=64240 Len=0Этот вывод показывает полный трехэтапный рукопожатие TCP (SYN, SYN-ACK, ACK) между клиентом (192.168.1.2) и веб-сервером (93.184.216.34).
Чтобы отфильтровать трафик, направленный на порт 80 (целевой порт), который показывает запросы к веб-серверам:
tshark -r tcp_capture.pcap -Y "tcp.dstport==80"Чтобы отфильтровать трафик, исходящий из порта 80 (исходный порт), который обычно представляет ответы веб-сервера:
tshark -r tcp_capture.pcap -Y "tcp.srcport==80"Вы можете комбинировать этот фильтр с другими для более точного анализа. Например, чтобы увидеть только HTTP-запросы GET (наиболее распространенный тип веб-запросов):
tshark -r tcp_capture.pcap -Y "tcp.port==80 && http.request.method==GET"Это комбинирует фильтр по порту с фильтром по протоколу HTTP, чтобы показать конкретно, когда веб-браузеры запрашивают страницы у серверов.
Показать результаты с использованием -V
На этом этапе мы рассмотрим, как просматривать подробные сведения о пакетах с помощью опции -V (verbose) в Wireshark. При устранении неполадок в сети просмотр полного разбора протокола является важным. Флаг -V показывает каждую прослойку сетевого стека, от Ethernet-кадров до протоколов приложений, что помогает понять, что именно происходит в сетевом трафике.
Сначала убедитесь, что вы находитесь в правильной директории, где хранится ваш файл с захваченным трафиком. Это важно, так как Tshark должен иметь доступ к файлу, который вы хотите проанализировать:
cd ~/projectБазовая команда для отображения всех деталей пакетов показывает все, что Tshark может декодировать. Это полезно, когда вам нужно изучить полную структуру сетевых коммуникаций:
tshark -r tcp_capture.pcap -VПодробный вывод отображает технические детали в структурированном формате. Вот что означает каждая часть:
- Frame (кадр): Информация о размере пакета на физическом уровне
- Ethernet II: MAC-адреса на уровне канального доступа
- IP: Адресация на сетевом уровне
- TCP: Порты и номера последовательности на транспортном уровне
Frame 1: 74 bytes on wire (592 bits), 74 bytes captured (592 bits) Ethernet II, Src: 00:11:22:33:44:55, Dst: 66:77:88:99:aa:bb Internet Protocol Version 4, Src: 192.168.1.2, Dst: 93.184.216.34 Transmission Control Protocol, Src Port: 49152, Dst Port: 80, Seq: 0, Ack: 0, Len: 0При работе с большими захватами комбинирование фильтров с подробным выводом помогает сосредоточиться на релевантном трафике. В этом примере показывается только HTTP-трафик (порт 80), и вывод ограничивается первыми 20 строками:
tshark -r tcp_capture.pcap -Y "tcp.port==80" -V | head -n 20Для документирования или дальнейшего анализа вы можете сохранить подробный вывод в текстовый файл. Это создаст постоянную запись вашего исследования пакетов:
tshark -r tcp_capture.pcap -V > verbose_output.txtЧтобы изучить определенные элементы протокола, такие как HTTP-заголовки, комбинируйте фильтры по протоколу с подробным режимом. Это полезно при отладке веб-приложений или анализе HTTP-транзакций:
tshark -r tcp_capture.pcap -Y "http" -V
Резюме
В этом лабораторном занятии вы научились анализировать TCP-разговоры с использованием командной строки tshark в Wireshark. Вы захватили TCP-трафик с использованием конкретных фильтров, изучили детали трехэтапного рукопожатия TCP и сгенерировали примерный трафик для анализа.
Кроме того, вы изучили методы перечисления TCP-разговоров между конечными точками и фильтрации трафика по определенному порту. В рамках лабораторной работы вы получили практический опыт изучения пакетов с использованием подробного вывода и статистики разговоров для эффективного анализа сети.


