Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
tcpflow — TCP/IP-Paket-Demultiplexer. Herunterladen von: | Kitploit
Tools/GitHubGitHub/simsong/tcpflow
Paket-Sniffing & AnalyseNetzwerkforensikForensikDigitale Forensik
GitHubsimsong/tcpflow

tcpflow

TCP/IP-Paket-Demultiplexer. Herunterladen von:

Repository anzeigenWebseite
1.8k245vor 6 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

TCPFLOW CI (c++14)

TCPFLOW 1.5.0

Download-Verzeichnis: http://digitalcorpora.org/downloads/tcpflow/

Installation

Die meisten gängigen GNU/Linux-Distributionen liefern tcpflow in ihren Paketquellen aus. Auf Debian/Ubuntu/etc. kann man also eingeben:

root@kitploit:~
sudo apt-get install tcpflow

und auf Fedora/RedHat/CentOS/etc.:

root@kitploit:~
sudo dnf install tcpflow

Das war's. Falls dies aus irgendeinem Grund nicht ausreicht, können Sie aus dem Quellcode bauen:

Bauen aus dem Quellcode

Um für Linux zu kompilieren:

Stellen Sie sicher, dass Sie die notwendigen Voraussetzungen haben. Es gibt Dateien im Wurzelverzeichnis, die dies für Sie erledigen, abhängig von Ihrem Host-Betriebssystem:

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

Abhängig von Ihrem Betriebssystem einfach:

root@kitploit:~
# sudo bash CONFIGURE_<YOUROS>.sh

Sobald Sie Ihr Betriebssystem konfiguriert haben, kompilieren und installieren Sie mit:

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

Wenn Sie den Entwicklungsbaum mit git herunterladen möchten, führen Sie einen vollständigen Checkout mit --recursive durch und führen Sie dann bootstrap.sh, configure und make aus:

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

Um für Amazon AMI herunterzuladen und zu kompilieren:

root@kitploit:~
ssh ec2-user@<your ec2 instance>
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

Um für Windows mit mingw auf Fedora Core zu kompilieren:

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

Zur Verwendung von CMake siehe die detaillierten Anweisungen: cmake/README.md

RPM erstellen

Aus einem sauberen Repository als normaler Benutzer (nicht root):

root@kitploit:~
./bootstrap.sh     # Erzeugt die Datei ./configure
./configure        # Erzeugt die Datei tcpflow.spec
rpmbuild -bb tcpflow.spec --build-in-place

Überprüfen Sie die Specdatei und das resultierende RPM:

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

Installieren:

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

Einführung zu tcpflow

tcpflow ist ein Programm, das Daten erfasst, die als Teil von TCP-Verbindungen (Flows) übertragen werden, und die Daten in einer Weise speichert, die für die Protokollanalyse und Fehlersuche praktisch ist. Jeder TCP-Flow wird in einer eigenen Datei gespeichert. Somit wird der typische TCP-Flow in zwei Dateien gespeichert, eine für jede Richtung. tcpflow kann auch gespeicherte 'tcpdump'-Paketflüsse verarbeiten.

tcpflow speichert alle erfassten Daten in Dateien mit Namen der Form:

root@kitploit:~
   [timestampT]sourceip.sourceport-destip.destport[--VLAN][cNNNN]

wobei: timestamp ein optionaler Zeitstempel des Zeitpunkts ist, an dem das erste Paket gesehen wurde T ein Trennzeichen ist, das angibt, dass ein Zeitstempel bereitgestellt wurde sourceip die Quell-IP-Adresse ist sourceport der Quellport ist destip die Ziel-IP-Adresse ist destport der Zielport ist VLAN der VLAN-Port ist c ein Trennzeichen ist, das angibt, dass mehrere Verbindungen vorhanden sind NNNN ein Verbindungszähler ist, wenn mehrere Verbindungen mit der gleichen [Zeit]/Quell-IP/Quellport/Ziel-IP/Zielport-Kombination vorhanden sind. Beachten Sie, dass die Verbindungszählung selten auftritt, wenn Zeitstempel-Präfixe verwendet werden.

HIER sind einige Beispiele:

root@kitploit:~
   128.129.130.131.02345-010.011.012.013.45103

Der Inhalt der obigen Datei wären Daten, die von Host 128.129.131.131 Port 2345 zu Host 10.11.12.13 Port 45103 übertragen wurden.

root@kitploit:~
   128.129.130.131.02345-010.011.012.013.45103c0005

Die sechste Verbindung von 128.129.131.131 Port 2345 zu Host 10.11.12.13 Port 45103.

root@kitploit:~
   1325542703T128.129.130.131.02345-010.011.012.013.45103

Eine Verbindung von 128.129.131.131 Port 2345 zu Host 10.11.12.13 Port 45103, die am 2. Januar 2012 um 17:19 Uhr (-0500) begann.

root@kitploit:~
   128.129.130.131.02345-010.011.012.013.45103--3

Eine Verbindung von 128.129.131.131 Port 2345 zu Host 10.11.12.13 Port 45103, die auf VLAN-Port 3 gesehen wurde.

Sie können die Vorlage, die zur Erstellung von Dateinamen verwendet wird, mit den Optionen -F und -T ändern. Wenn ein Verzeichnis in der Vorlage erscheint, wird das Verzeichnis automatisch erstellt.

Wenn Sie die Option -a verwenden, interpretiert tcpflow automatisch HTTP-Antworten.

root@kitploit:~
   Wenn die Ausgabedatei
      208.111.153.175.00080-192.168.001.064.37314

   ist, erstellt die Nachbearbeitung die Dateien:
      208.111.153.175.00080-192.168.001.064.37314-HTTP
      208.111.153.175.00080-192.168.001.064.37314-HTTPBODY

   Wenn der HTTPBODY mit GZIP komprimiert war, erhalten Sie möglicherweise auch eine
   dritte Datei:

      208.111.153.175.00080-192.168.001.064.37314-HTTPBODY-GZIP

   Zusätzliche Informationen über diese Streams, wie z.B. ihr MD5-Hashwert,
   werden ebenfalls in die DFXML-Datei geschrieben.

tcpflow ähnelt 'tcpdump', da beide Pakete von der Leitung oder aus einer gespeicherten Datei verarbeiten. Es unterscheidet sich jedoch darin, dass es die tatsächlichen Datenströme rekonstruiert und jeden Fluss zur späteren Analyse in einer separaten Datei speichert.

tcpflow versteht Sequenznummern und rekonstruiert Datenströme korrekt, unabhängig von erneuten Übertragungen oder Lieferungen in falscher Reihenfolge. Allerdings versteht tcpflow derzeit keine IP-Fragmente; Flüsse, die IP-Fragmente enthalten, werden nicht korrekt aufgezeichnet.

tcpflow kann einen zusammenfassenden Bericht im DFXML-Format ausgeben. Diese Datei enthält Informationen über das System, auf dem das tcpflow-Programm kompiliert wurde, wo es ausgeführt wurde, und jeden TCP-Fluss, einschließlich Quell- und Ziel-IP-Adressen und Ports, Anzahl der Bytes, Anzahl der Pakete und (optional) den MD5-Hash jedes Bytestroms.

tcpflow verwendet die LBL Packet Capture Library (verfügbar unter ftp://ftp.ee.lbl.gov/libpcap.tar.Z) und unterstützt daher die gleichen umfangreichen Filterausdrücke wie Programme wie 'tcpdump'. Es sollte unter den meisten gängigen UNIX-Varianten kompilieren; siehe die Datei INSTALL für Details.

Wozu ist es gut?

tcpflow ist ein nützliches Werkzeug zum Verständnis von Netzwerkpaketflüssen und zur Durchführung von Netzwerkforensik. Im Gegensatz zu Programmen wie WireShark, die viele Pakete oder eine einzelne TCP-Verbindung anzeigen, kann tcpflow Hunderte, Tausende oder Hunderttausende von TCP-Verbindungen im Kontext darstellen.

Eine häufige Verwendung von tcpflow besteht darin, die Inhalte von HTTP-Sitzungen offenzulegen. Mit tcpflow können Sie über HTTP heruntergeladene Webseiten rekonstruieren. Sie können sogar Malware extrahieren, die als 'Drive-by-Downloads' ausgeliefert wird.

Jeremy Elson schrieb dieses Programm ursprünglich, um die Daten zu erfassen, die von verschiedenen Programmen gesendet werden, die undokumentierte Netzwerkprotokolle verwenden, um diese Protokolle zu reverse-engineeren. RealPlayer (und die meisten anderen Streaming-Media-Player), ICQ und AOL IM sind gute Beispiele für diese Art von Anwendung. Später wurde es für die HTTP-Protokollanalyse verwendet.

Simson Garfinkel gründete Sandstorm Enterprises im Jahr 1998. Sandstorm entwickelte ein ähnliches Programm namens TCPDEMUX und eine weitere Version des Programms namens NetIntercept. Diese Programme sind kommerziell. Nachdem Simson Sandstorm verlassen hatte, benötigte er ein TCP-Fluss-Rekonstruktionsprogramm. Er fand tcpflow und übernahm dessen Wartung.

Fehler

Bitte melden Sie Fehler im GitHub-Issue-Tracker

tcpflow versteht derzeit keine IP-Fragmente. Flüsse, die IP-Fragmente enthalten, werden nicht korrekt aufgezeichnet. IP-Fragmentierung ist zunehmend ein seltenes Ereignis, sodass dies kein signifikantes Problem zu sein scheint.

EMPFOHLENE ZITATION

Wenn Sie einen Artikel über tcpflow schreiben, zitieren Sie bitte unseren technischen Bericht:

  • 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

BETREUER

Simson L. Garfinkel [email protected]

STATUSBERICHT ZU TCPFLOW 1.6

Ich portiere weiterhin bulk_extractor, tcpflow, be13_api und dfxml in modernes C++. Nach Durchsicht der Standards habe ich mich für C++17 und nicht für C++14 entschieden, da die Unterstützung für 17 jetzt weit verbreitet ist. (Ich brauche wahrscheinlich kein 20). Ich bleibe bei Autotools, obwohl es starke Gründe zu geben scheint, zu CMake zu wechseln. Ich behalte be13_api und dfxml als Module, die per Python-Stil eingebunden werden, anstatt sie als eigenständige Bibliotheken zu erstellen, gegen die gelinkt wird. Ich bin mir jedoch nicht 100% sicher, ob das die richtige Entscheidung ist.

Das Projekt dauert länger als erwartet, da ich auch eine allgemeine Code-Refaktorisierung durchführe. Die Hauptsache, die Zeit in Anspruch nimmt, ist herauszufinden, wie man all die C++-Objekte in Bezug auf Parser-Optionen und Konfiguration entwirren kann.

Da sowohl tcpflow als auch bulk_extractor be13_api verwenden, hat sich meine Aufmerksamkeit darauf verlagert, tcpflow zu verwenden, um be13_api betriebsbereit zu machen, da es ein einfacheres Programm ist. Ich bin jetzt etwa drei Viertel durch. Ich rechne damit, vor Ende 2020 etwas fertigzustellen.

--- Simson Garfinkel, 18. Oktober 2020

DANKESAGUNGEN

Dank an:

  • Jeffrey Pang, für die Radiotap-Implementierung
  • Doug Madory, für den Wifi-Parser
  • Jeremy Elson, für die ursprüngliche Idee und die erste TCP/IP-Implementierung
Tool herunterladen