Главная / Блог / Анализ PCAP файлов: пароли и файлы из дампа

9 мин.00

Анализ PCAP файлов: пароли и файлы из дампа

Анализ PCAP файлов: пароли и файлы из дампа

Три месяца назад на CTF я получил forensics-таск: PCAP на 180 МБ и одну подсказку — «the password hides in plain sight». Половина участников полтора часа фильтровала HTTP-трафик. Пароль лежал в FTP-сессии на порту 2121, которую Wireshark не распознал автоматически — диссектор привязан к стандартному 21-му порту, а нестандартный 2121 для него пустое место. Знакомо? Инструменты под рукой, а рабочего workflow нет. Дальше — пошаговый разбор анализа PCAP файлов от триажа дампа до извлечения учётных данных и восстановления файлов, с готовыми командами для forensics-тасков.

С чего начать разбор pcap файла в Wireshark

Главная ошибка на старте — открыть PCAP и скроллить пакеты. В дампе на 100 тысяч записей это гарантированный способ убить час без результата. Рабочий подход укладывается в три шага. Подробнее — в нашем руководстве по расследование кибератаки.

Шаг 1: метаданные. capinfos dump.pcap до открытия файла покажет количество пакетов, временной диапазон захвата, средний размер пакета и формат (pcap или pcapng). Секунда — и уже есть контекст: дамп за пять минут или за сутки, 200 пакетов или 200 тысяч.

Wireshark грузит весь дамп в оперативку — файл на 6 ГБ сожрёт 6 ГБ RAM. Для объёмных дампов лучше работать через tshark с фильтрами: он обрабатывает данные потоково и не требует столько памяти.

Шаг 2: Protocol Hierarchy. Statistics → Protocol Hierarchy. Таблица покажет процентное распределение протоколов в дампе. HTTP — шанс вытащить файлы и учётные данные в открытом виде. FTP — почти гарантия паролей plaintext. Telnet — аналогично. SMTP/IMAP — почтовые учётки. Высокая доля DNS при малом объёме остальных протоколов — индикатор DNS-туннелирования. TLS/SSL — содержимое зашифровано, но метаданные (SNI, сертификаты) видны.

Шаг 3: Conversations. Statistics → Conversations, вкладка TCP. Какие пары хостов гоняли больше всего данных. Сортировка по байтам мгновенно выделяет передачу файлов или эксфильтрацию. Вместо всего дампа — фокус на пяти-десяти подозрительных сессиях.

Для forensics-тасков CTF этот триаж занимает две-три минуты, но определяет весь дальнейший вектор.

Извлечение паролей из pcap: протоколы и фильтры

Извлечение учётных данных из сетевого трафика — классика network forensics. По MITRE ATT&CK это техника Network Sniffing (T1040, Credential Access): перехват трафика для получения учётных данных. На CTF пароли чаще всего лежат в незашифрованных протоколах — и это проще, чем кажется.

HTTP: Basic Auth и POST-формы

HTTP Basic Authentication передаёт логин и пароль в заголовке Authorization в base64. Фильтр http.authorization покажет все такие запросы. Значение после «Basic» декодируется так: echo "dXNlcjpwYXNz" | base64 -d — на выходе user:pass. Не шифрование, а обёртка — красивый фантик, который снимается за секунду.

Для форм авторизации (POST-запросы) фильтр http.request.method == "POST" отсекает шум. Правый клик на пакете → Follow → TCP Stream. В потоке ищите username=admin&password=secret123. Самый частый сценарий в forensics-тасках начального уровня.

На больших дампах ручной просмотр — пустая трата времени. tshark справляется одной строкой:

tshark -r dump.pcap -Y "http.request.method==POST" \
  -T fields -e http.host -e http.request.uri -e urlencoded-form.value

Хост, URI и значения полей форм из POST-запросов. На дампе в 500 МБ отрабатывает за секунды.

FTP и Telnet — учётные данные открытым текстом

FTP передаёт логин и пароль двумя командами: USER и PASS — обе открытым текстом. Фильтр ftp.request.command == "USER" || ftp.request.command == "PASS" мгновенно выдаёт все пары.

Критический нюанс для CTF: авторы тасков обожают нестандартные порты — FTP на 2121 или 8021. Стандартный фильтр ftp такой трафик не увидит, потому что диссектор привязан к порту 21. Решение: проверить Conversations на предмет необычных TCP-сессий с характерным паттерном коротких команд-ответов, затем принудительно назначить протокол через Analyze → Decode As → FTP. Именно на этом погорела половина участников с того CTF из вступления.

С Telnet ситуация интереснее: протокол передаёт каждый символ отдельным пакетом. Читать в Packet List невозможно — каша из однобайтовых пакетов. Follow → TCP Stream собирает сессию целиком, и вы видите ввод пользователя (включая пароль) как непрерывный текст. Обращайте внимание на эхо: если сервер отражает ввод, каждый символ будет продублирован.

Хеши NTLM и Kerberos из SMB-трафика

Не все учётные данные в трафике — открытый текст. NTLM-аутентификация в SMB передаёт challenge-response хеши. Wireshark декодирует NTLMSSP-пакеты: фильтр ntlmssp.auth показывает стадию аутентификации с именем домена, логином и хешем. Эти хеши годятся для офлайн-брутфорса или pass-the-hash.

Для автоматической обработки есть BruteShark — open-source NFAT (Network Forensic Analysis Tool). Он вытаскивает пароли и хеши из HTTP, FTP, Telnet, IMAP, SMTP, а также хеши Kerberos, NTLM, CRAM-MD5 и HTTP-Digest. Главное — BruteShark конвертирует хеши напрямую в формат Hashcat. CLI-версия работает на Linux:

BruteSharkCli -m Credentials -d /path/to/pcaps/ -o /tmp/results/

На выходе — таблица с логинами, паролями и хешами плюс готовые файлы для Hashcat. По MITRE ATT&CK извлечённые артефакты соответствуют технике Credentials In Files (T1552.001, Credential Access).

Восстановление файлов из сетевого дампа

File carving из трафика — вторая по частоте задача после извлечения паролей. В forensics-контексте это помогает выявить, какие файлы злоумышленник загрузил на скомпрометированный хост или вывел наружу — техника Ingress Tool Transfer (T1105, Command and Control) по MITRE ATT&CK.

Export Objects — встроенный механизм Wireshark

File → Export Objects → HTTP (или SMB, TFTP, FTP-DATA). Для HTTP-трафика функция покажет список всех переданных файлов с именами, MIME-типами и размерами. Выбираете нужный, Save — готово. Для большинства CTF-тасков среднего уровня этого хватает за глаза.

Ограничения: Export Objects работает только для распознанных прикладных протоколов. Если файл передан по «сырому» TCP без прикладного заголовка или через нестандартный бинарный протокол — механизм его не увидит. И тут начинается ручная работа.

File carving с tcpflow и foremost

Когда Export Objects не справляется, алгоритм такой:

  1. Найдите интересующую TCP-сессию через Conversations или фильтр по IP.
  2. Правый клик → Follow → TCP Stream. Переключите отображение в Raw.
  3. Save As — сохраните поток в файл.
  4. foremost -i stream_raw.bin -o /tmp/carved/ — натравите на сохранённый файл.

foremost ищет файлы по сигнатурам заголовков (magic bytes): JPEG (FF D8 FF), PNG (89 50 4E 47), PDF (25 50 44 46), ZIP (50 4B 03 04). Алгоритм «Header-Footer» хорошо работает для файлов с известными заголовками и терминаторами — JPG, PNG, PDF. Альтернатива — binwalk, который помимо сигнатур анализирует энтропию данных и находит вложенные архивы (вот где прячутся матрёшки из стеганографических тасков).

Для массовой реконструкции сессий tcpflow -r dump.pcap -o /tmp/flows/ автоматически разбирает все TCP-потоки в отдельные файлы с именами вида IP1-port1-IP2-port2. Дальше — file * для определения типов и strings для поиска текстовых данных. На больших дампах это на порядок быстрее ручного Follow TCP Stream.

NetworkMiner — GUI-альтернатива, которая автоматически вытаскивает файлы, изображения и учётные данные из PCAP. Открываете дамп — инструмент реконструирует сессии и раскладывает результаты по вкладкам: Files, Images, Credentials, Sessions. Для быстрого триажа на CTF — самый экономный по времени вариант. Я обычно начинаю с NetworkMiner для общей картины, а потом лезу в tshark за деталями.

Автоматизация анализа дампа трафика с tshark

На соревнованиях время ограничено. Набор однострочников tshark решает 80% задач первичного анализа сетевого трафика без открытия GUI.

Извлечь все DNS-запросы и найти аномалии — DNS-туннели, C2-каналы (техника Exfiltration Over C2 Channel, T1041, Exfiltration):

tshark -r dump.pcap -Y "dns.qr==0" -T fields -e dns.qry.name | sort | uniq -c | sort -rn | head -20

Если один домен запрашивается сотни раз с длинными высокоэнтропийными поддоменами — перед вами DNS-туннель.

Извлечь все HTTP-URL:

tshark -r dump.pcap -Y "http.request" -T fields -e http.host -e http.request.uri

Уникальные IP назначения для конкретного хоста:

tshark -r dump.pcap -Y "ip.src==10.0.0.5" -T fields -e ip.dst | sort -u

Все FTP-учётки из дампа:

tshark -r dump.pcap -Y "ftp.request.command==USER || ftp.request.command==PASS" -T fields -e ftp.request.arg

Каждая из этих команд отрабатывает за секунды даже на гигабайтных дампах. Для тренировки — публичные PCAP-репозитории: Wireshark Sample Captures на wiki.wireshark.org, коллекция malware-traffic-analysis.net и DEFCON CTF PCAPs на media.defcon.org. Полный список с десятками источников ведёт Netresec на странице Public PCAP Files — там дампы от ICS-трафика до реальных инцидентов.

Ошибки новичков в forensics-тасках CTF

Пять вещей, которые стабильно стоят командам времени и очков.

Нестандартные порты. HTTP на 8080, FTP на 2121, SSH на 2222. Wireshark привязывает диссекторы к стандартным портам — без Decode As половина трафика останется нераспарсенной. Всегда проверяйте Conversations на предмет активных портов, которых нет в Protocol Hierarchy.

Пропуск Protocol Hierarchy. Сразу фильтровать http — значит пропустить FTP, Telnet, SMTP и всё остальное. Protocol Hierarchy за секунду покажет полную картину.

Игнорирование DNS и ICMP. Эксфильтрация через DNS-туннели (base64-данные в поддоменах) и ICMP-payload — классика CTF средней сложности. Фильтр dns.qry.name с визуальной проверкой длины поддоменов выявляет туннели. Для ICMP — смотрите payload на предмет ASCII-строк. На одном CTF флаг был побайтово раскидан по ICMP echo-request'ам — без tshark собирать это вручную было бы мучением.

TLS без ключей. Если в дампе есть TLS-трафик и задача не предоставила SSLKEYLOGFILE или приватный ключ — содержимое не расшифровать. Но SNI в ClientHello виден открытым текстом: фильтр tls.handshake.extensions_server_name покажет домены, к которым обращался клиент. Иногда этого хватает для флага.

Один инструмент вместо конвейера. Wireshark хорош для анализа сетевого трафика, но не единственный вариант. tcpflow лучше для массовой реконструкции сессий, NetworkMiner — для быстрого извлечения файлов, BruteShark — для хешей и паролей. Правильная комбинация даёт результат в разы быстрее, чем попытка всё сделать в одном окне.

Большинство writeup'ов по forensics-таскам описывают решение задним числом: «открыл Wireshark, применил фильтр X, нашёл флаг». Из таких разборов невозможно понять, как выглядит процесс в реальном времени — ошибочные гипотезы, тупиковые ветви, возвраты к Protocol Hierarchy после получаса копания в неправильном TCP-потоке. На практике 70% времени уходит не на извлечение данных, а на понимание того, что именно нужно искать. Workflow «capinfos → Protocol Hierarchy → Conversations → целевое извлечение» не гарантирует мгновенного решения, но систематически сокращает время блуждания. Я работал с командами, которые решают forensics за 15 минут, и с теми, кто тратит два часа на идентичный таск. Разница почти никогда не в знании экзотических инструментов — Wireshark, tshark, tcpflow стоят в каждом Kali. Разница в наличии структурированного подхода к первичному триажу: одни начинают с Protocol Hierarchy и Conversations, другие — со случайного скроллинга. Если хочешь не просто читать writeup'ы, а пройти полную цепочку от дампа до результата — на WAPT сетевую часть проходят в нескольких модулях с лабами.

🚀 Хочешь закрепить на практике? Реши задачи по теме на HackerLab — категория «forensics».

Поделиться

0 комментариев

Пожалуйста, войдите, чтобы оставить комментарий.

Загрузка комментариев...

Читайте также

Burp Suite с нуля: настройка и первые CTF-таски

14 мин.

8

Burp Suite с нуля: настройка и первые CTF-таски

Пошаговая настройка Burp Suite: прокси, сертификат, FoxyProxy, Repeater и Intruder. Разбираем реальный веб-таск CTF от первого запроса до флага

5 ОКТЯБРЬ, 2026

Insecure Deserialization в CTF: PHP и Python

12 мин.

5

Insecure Deserialization в CTF: PHP и Python

Пошаговый разбор insecure deserialization в CTF: gadget chains PHP (CVE-2020-15148, phpggc), pickle RCE в Python, black-box брутфорс и PHAR-вектор

4 ОКТЯБРЬ, 2026

Основы сетей для CTF: OSI, TCP/IP и анализ PCAP

14 мин.

8

Основы сетей для CTF: OSI, TCP/IP и анализ PCAP

7 уровней OSI на языке CTF-задач: где в пакете искать флаг, фильтры Wireshark и tcpdump, пошаговый workflow разбора PCAP и привязка атак к MITRE ATT&CK.

4 ОКТЯБРЬ, 2026