Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
tcpflow — Демультиплексор пакетов TCP/IP. Скачать с: | Kitploit
Инструменты/GitHubGitHub/simsong/tcpflow
Сниффинг и анализ пакетовСетевая криминалистикаФорензикаЦифровая криминалистика
GitHubsimsong/tcpflow

tcpflow

Демультиплексор пакетов TCP/IP. Скачать с:

РепозиторийСайт
1.8k2456 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

TCPFLOW CI (c++14)

TCPFLOW 1.5.0

Директория загрузок: http://digitalcorpora.org/downloads/tcpflow/

Установка

В большинстве распространённых дистрибутивов GNU/Linux tcpflow уже есть в репозиториях. Поэтому в Debian/Ubuntu и подобных можно выполнить:

root@kitploit:~
sudo apt-get install tcpflow

а в Fedora/RedHat/CentOS и подобных:

root@kitploit:~
sudo dnf install tcpflow

И всё. Если по какой-то причине этого недостаточно, можно собрать из исходников:

Сборка из исходников

Для компиляции под Linux

Убедитесь, что у вас есть все необходимые предварительные зависимости. В корневом каталоге есть файлы, которые сделают это за вас, в зависимости от вашей операционной системы:

CONFIGURE_ARCH_17_8.sh CONFIGURE_FEDORA_18.sh CONFIGURE_FEDORA_26.sh CONFIGURE_UBUNTU_16_04.sh

В зависимости от вашей ОС просто выполните:

root@kitploit:~
# sudo bash CONFIGURE_<ВАША_ОС>.sh

После настройки ОС скомпилируйте и установите с помощью:

root@kitploit:~
./configure
make
sudo make install

Если вы хотите загрузить дерево разработки через git, обязательно выполните полный checkout с --recursive, а затем запустите bootstrap.sh, configure и make:

root@kitploit:~
git clone --recursive https://github.com/simsong/tcpflow.git
cd tcpflow
bash bootstrap.sh
./configure
make
sudo make install  

Для загрузки и компиляции под Amazon AMI:

root@kitploit:~
ssh ec2-user@<ваш экземпляр ec2>
sudo bash yum -y install git make gcc-c++ automake autoconf boost-devel cairo-devel libpcap-devel openssl-devel zlib-devel
git clone --recursive https://github.com/simsong/tcpflow.git
sh bootstrap.sh

Для компиляции под Windows с mingw на Fedora Core:

root@kitploit:~
yum -y install mingw64-gcc mingw64-gcc-c++ mingw64-boost mingw64-cairo mingw64-zlib
mingw64-configure
make

Для использования CMake см. подробные инструкции: cmake/README.md

Сборка RPM

Из чистого репозитория от обычного пользователя (не root):

root@kitploit:~
./bootstrap.sh     # Генерирует файл ./configure
./configure        # Генерирует файл tcpflow.spec
rpmbuild -bb tcpflow.spec --build-in-place

Проверьте spec-файл и полученный RPM:

root@kitploit:~
rpmlint tcpflow.spec
rpmlint ~/rpmbuild/RPMS/x86_64/tcpflow-....rpm

Установка:

root@kitploit:~
sudo dnf install ~/rpmbuild/RPMS/x86_64/tcpflow-....rpm

Введение в tcpflow

tcpflow — это программа, которая захватывает данные, передаваемые в рамках TCP-соединений (потоков), и сохраняет их в удобном для анализа протоколов и отладки виде. Каждый TCP-поток сохраняется в отдельный файл. Таким образом, типичный TCP-поток сохраняется в два файла — по одному для каждого направления. tcpflow также может обрабатывать сохранённые пакетные потоки tcpdump.

tcpflow сохраняет все захваченные данные в файлы с именами следующего вида:

root@kitploit:~
   [временная_меткаT]исходный_ip.исходный_порт-целевой_ip.целевой_порт[--VLAN][cNNNN]

где: временная_метка — необязательная метка времени первого пакета T — разделитель, указывающий, что временная метка была предоставлена исходный_ip — IP-адрес источника исходный_порт — порт источника целевой_ip — IP-адрес назначения целевой_порт — порт назначения VLAN — VLAN-порт c — разделитель, указывающий на наличие нескольких соединений NNNN — счётчик соединений, когда существует несколько соединений с одинаковой комбинацией [время]/исходный_ip/исходный_порт/целевой_ip/целевой_порт. Обратите внимание, что счётчик соединений редко используется, если применяется префикс временной метки.

Вот несколько примеров:

root@kitploit:~
   128.129.130.131.02345-010.011.012.013.45103

Содержимое указанного выше файла будет представлять данные, переданные от хоста 128.129.131.131 порт 2345, к хосту 10.11.12.13 порт 45103.

root@kitploit:~
   128.129.130.131.02345-010.011.012.013.45103c0005

Шестое соединение от 128.129.131.131 порт 2345, к хосту 10.11.12.13 порт 45103.

root@kitploit:~
   1325542703T128.129.130.131.02345-010.011.012.013.45103

Соединение от 128.129.131.131 порт 2345, к хосту 10.11.12.13 порт 45103, которое началось в 17:19 (-0500) 2 января 2012 года.

root@kitploit:~
   128.129.130.131.02345-010.011.012.013.45103--3

Соединение от 128.129.131.131 порт 2345, к хосту 10.11.12.13 порт 45103, которое было замечено на VLAN-порту 3.

Вы можете изменить шаблон, используемый для создания имён файлов, с помощью опций -F и -T. Если в шаблоне указан каталог, он будет создан автоматически.

При использовании опции -a tcpflow будет автоматически интерпретировать HTTP-ответы.

root@kitploit:~
   Если выходной файл
      208.111.153.175.00080-192.168.001.064.37314,

   то постобработка создаст файлы:
      208.111.153.175.00080-192.168.001.064.37314-HTTP
      208.111.153.175.00080-192.168.001.064.37314-HTTPBODY

   Если HTTPBODY был сжат с помощью GZIP, вы можете получить и
   третий файл:

      208.111.153.175.00080-192.168.001.064.37314-HTTPBODY-GZIP

   Дополнительная информация об этих потоках, например их MD5-хэш,
   также записывается в файл DFXML.

tcpflow похож на tcpdump в том, что оба обрабатывают пакеты из сети или из сохранённого файла. Но отличие в том, что tcpflow реконструирует фактические потоки данных и сохраняет каждый поток в отдельный файл для последующего анализа.

tcpflow понимает порядковые номера и правильно реконструирует потоки данных независимо от повторных передач или доставки не по порядку. Однако в настоящее время tcpflow не обрабатывает IP-фрагменты; потоки, содержащие IP-фрагменты, не будут записаны корректно.

tcpflow может выводить сводный отчёт в формате DFXML. Этот файл содержит информацию о системе, в которой была скомпилирована программа tcpflow, о месте её запуска, а также о каждом TCP-потоке, включая IP-адреса и порты источника и назначения, количество байтов, количество пакетов и (опционально) MD5-хэш каждого байтового потока.

tcpflow использует библиотеку захвата пакетов LBL (доступна по адресу ftp://ftp.ee.lbl.gov/libpcap.tar.Z) и поэтому поддерживает те же богатые выражения фильтрации, что и такие программы, как tcpdump. Она должна компилироваться в большинстве популярных версий UNIX; подробности см. в файле INSTALL.

Какая от него польза?

tcpflow — полезный инструмент для понимания сетевых пакетных потоков и проведения сетевой криминалистики. В отличие от таких программ, как WireShark, которые показывают множество пакетов или одно TCP-соединение, tcpflow может показать сотни, тысячи или сотни тысяч TCP-соединений в контексте.

Обычное применение tcpflow — раскрытие содержимого HTTP-сессий. С помощью tcpflow можно реконструировать веб-страницы, загруженные по HTTP. Можно даже извлечь вредоносное ПО, доставленное как «загрузка по ссылке» (drive-by download).

Джереми Элсон (Jeremy Elson) первоначально написал эту программу для захвата данных, отправляемых различными программами, использующими недокументированные сетевые протоколы, в попытке обратного проектирования этих протоколов. RealPlayer (и большинство других потоковых медиаплееров), ICQ и AOL IM — хорошие примеры таких приложений. Позже программа стала использоваться для анализа HTTP-протоколов.

Симсон Гарфинкель (Simson Garfinkel) основал Sandstorm Enterprises в 1998 году. Sandstorm создала программу, похожую на tcpflow, под названием TCPDEMUX и другую версию программы под названием NetIntercept. Эти программы являются коммерческими. После ухода из Sandstorm у Симсона возникла необходимость в программе для сборки TCP-потоков. Он нашёл tcpflow и взял на себя её поддержку.

Ошибки

Пожалуйста, сообщайте об ошибках в трекере issues на GitHub

В настоящее время tcpflow не обрабатывает IP-фрагменты. Потоки, содержащие IP-фрагменты, не будут записаны правильно. IP-фрагментация становится всё более редким явлением, поэтому это не является существенной проблемой.

РЕКОМЕНДУЕМОЕ ЦИТИРОВАНИЕ

Если вы пишете статью о tcpflow, пожалуйста, цитируйте наш технический отчёт:

  • Passive TCP Reconstruction and Forensic Analysis with tcpflow, Simson Garfinkel and Michael Shick, Naval Postgraduate School Technical Report NPS-CS-13-003, September 2013. https://calhoun.nps.edu/handle/10945/36026

СОПРОВОДИТЕЛЬ

Simson L. Garfinkel [email protected]

ОТЧЁТ О СОСТОЯНИИ TCPFLOW 1.6

Я продолжаю портировать bulk_extractor, tcpflow, be13_api и dfxml на современный C++. После изучения стандартов я решил использовать C++17, а не C++14, так как поддержка 17 сейчас широко распространена. (Вероятно, мне не нужен 20). Я остаюсь с autotools, хотя есть веские причины перейти на CMake. Я сохраняю be13_api и dfxml как модули, которые включаются (в стиле Python), а не как отдельные библиотеки для линковки. Однако я не на 100% уверен, что это правильное решение.

Проект занимает больше времени, чем ожидалось, потому что я также провожу общее рефакторинг кода. Основное, что отнимает время, — это выяснение того, как распутать все объекты C++, связанные с опциями парсера и конфигурацией.

Поскольку и tcpflow, и bulk_extractor используют be13_api, моё внимание переключилось на использование tcpflow для обеспечения работоспособности be13_api, так как это более простая программа. Сейчас я завершил примерно три четверти работы. Я ожидаю, что завершу что-то к концу 2020 года.

--- Симсон Гарфинкель, 18 октября 2020 г.

БЛАГОДАРНОСТИ

Спасибо:

  • Джеффри Пангу (Jeffrey Pang) за реализацию radiotap
  • Дагу Мадори (Doug Madory) за парсер Wifi
  • Джереми Элсону (Jeremy Elson) за первоначальную идею и начальную реализацию tcp/ip
Скачать инструмент