
Mark - stock.adobe.com
Aufgezeichneten Netzwerk-Traffic mit tcpreplay wiedergeben
Die Tool-Suite, in der tcpreplay enthalten ist, bietet Administratoren zahlreiche Netzwerksicherheitsoptionen. Lernen Sie einige der Vorteile dieses kostenlosen Utilitys kennen.
Für Administratoren stehen heute eine Vielzahl von Sicherheits-Tools zur Verfügung, die sie dabei unterstützen, die Systeme, für die sie verantwortlich sind, zu verstehen, zu prüfen und abzusichern. Gerade ältere Utilities gehören hierbei zu den effektivsten Werkzeugen. Sie erfüllen ihre Aufgabe so gut, dass es keine Notwendigkeit gibt, sie zu ersetzen. Ein Beispiel dafür ist tcpreplay, das den offenen Industriestandard PCAP erweitert und es Sicherheitsfachleuten ermöglicht, die in Netzwerkpaketen verfügbaren Informationen zu erfassen, anzuzeigen und zu ändern.
Schauen wir uns einmal an, wie man tcpreplay verwendet. Im Folgenden beschreiben wir tcpreplay und das PCAP-Format, untersuchen Paketaufzeichnungen (Packet Captures) und zeigen, wie man tcpreplay nutzt, um erfassten Netzwerk-Traffic erneut an ein Zielsystem zu senden. Darüber hinaus gehen wir auf Terminologie und Anwendungsfälle ein, um zu erläutern, wie und wann sich tcpreplay in Verbindung mit anderen gängigen Netzwerksicherheits-Tools, etwa Wireshark und tcpdump, verwenden lässt.
Was ist tcpreplay?
Bei tcpreplay handelt es sich um eine Suite von Open-Source-Programmen, die Administratoren vielfältige Möglichkeiten bietet, um Netzwerkinformationen zu nutzen. Captures können aus verschiedenen Gründen erneut übertragen werden, unter anderem für die folgenden Anwendungsfälle:
- Testen von Intrusion Detection Systems (IDS) durch erneutes Senden von schädlichen Paketen, die im echtem Traffic versteckt sind.
- Analyse von Standardangriffsvektoren, indem man simulierte schädliche Pakete erneut sendet.
- Testen spezifischer Netzwerk-Exploits.
- Erneutes Senden von Testübertragungen, um zu prüfen, ob die Paketfilter von Routern diese erkennen.
- Übertragen von Paketen, die normalen Netzwerkverkehr darstellen, um Firewall-Einstellungen zu kontrollieren.
- Untersuchen von Paket-Headern und -strukturen, um mehr über TCP/IP-Networking und Netzwerk-IDS zu erfahren.
Was ist pcap?
Die libpcap-API, besser unter dem Namen pcap bekannt, erfasst Netzwerkpakete zur Analyse und Bearbeitung. Verschiedene Netzwerk-Capture-Programme, auch als Packet Sniffer bezeichnet, verwenden die API, um den Netzwerk-Traffic mitzuhören und aufzuzeichnen.
Die API wurde in erster Linie für Unix und Unix-ähnliche Betriebssysteme mittels der libpcap-Bibliothek entwickelt, obwohl es eine Windows-Portierung gibt: Npcap ist die aktuelle Version, das ältere WinPcap wird nicht mehr weiterentwickelt.
Dateien, die mit libpcap erfasst werden, besitzen in der Regel die Dateierweiterung .pcap, obwohl auch die Erweiterungen .dmp oder .cap möglich sind.
Die libpcap-Bibliothek bildet die Grundlage für die Netzwerk-Capture-Tools, die den Traffic abfangen, und tcpreplay, das diesen Traffic erneut sendet – unter Umständen, nachdem die erfassten Daten verändert wurden.
Funktionen von tcpreplay
Administratoren können unter verschiedenen tcpreplay-Optionen wählen, um Sicherheits-Tools zu testen und auf Fehler zu untersuchen. Es empfiehlt sich, diese Funktionen zu beherrschen, um den größtmöglichen Nutzen aus tcpreplay zu ziehen. Dasselbe gilt für die Funktionen von Wireshark oder tcpdump.
Tcpreplay bietet unter anderem die folgenden Funktionen:
- Klassifizierung des wiedergegebenen Traffics als Client oder Server über zwei Netzwerkschnittstellen.
- Bearbeiten der OSI-Layer-2-, -Layer-3- und -Layer-4-Header (Open Systems Interconnection).
- Wiedergabe des erfassten Traffics über Switches, Router, IDSs, Firewalls, Intrusion Protection Systems (IPS) etc.
- Wiedergabe des Traffics mit verschiedenen Geschwindigkeiten, um IDS-Funktionen zu testen.
Die tcpreplay-Tool-Suite
Die Tools der tcpreplay-Suite bietet eine Reihe von Funktionen. Einzeln genutzt, lassen sich damit die erfassten Informationen ändern und erneut übertragen. Nachdem Sie sich mit tcpreplay vertraut gemacht haben, können Sie die Tools kombiniert einsetzen und erhalten dadurch Optionen, um entsprechend Ihren Bedürfnissen die Capture-Wiedergabe zu steuern und zu konfigurieren.
Nachfolgend finden Sie die grundlegenden Tools der Suite:
- Tcpreplay, um pcap-Captures im Netzwerk mit definierter Geschwindigkeit wiederzugeben
- Tcpreplay-edit, um Pakete während der Wiedergabe zu bearbeiten.
- Tcprewrite, um Paket-Header in pcap-Dateien vor der Wiedergabe zu bearbeiten.
- Tcprep, um den Traffic in Client- und Server-Streams aufzuteilen und auf verschiedenen Netzwerkschnittstellen wiederzugeben.
- Tcpliveplay, um den Traffic an Netzwerkserver zu senden und so alle Schichten des TCP/IP-Stacks zu testen.
Was sind Packet Capturing Tools?
Sie müssen Pakete erfassen, bevor Sie tcpreplay verwenden können. Viele Netzwerk-Monitoring-Tools arbeiten mit der pcap-Bibliothek zusammen. Die gängigsten sind Wireshark und tcpdump. Diese Utilities bieten außergewöhnliche Sicherheits- und Troubleshooting-Funktionen und sind es wert, dass Sie sich damit auskennen. Der Netzwerkverkehr, den Sie damit abfangen, kann von tcpreplay erneut übertragen werden.
Der Paketanalysator Wireshark
Wireshark ist ein leistungsstarkes, benutzerfreundliches grafisches Tool, das den Netzwerk-Traffic erfasst, filtert und analysiert. Sie können das Tool kostenlos auf der Wireshark-Hompage herunterladen. Es bietet viele Filteroptionen vor der Erfassung, wie das Abhören von bestimmten Schnittstellen oder Protokollen. Nach der Erfassung helfen zusätzliche Filter dabei, das entsprechende Protokoll oder den Quell- beziehungsweise Zielknoten zu finden. Die Filterung ist entscheidend. Wireshark kann in kurzer Zeit eine große Anzahl von Paketen mitschneiden.
Wireshark speichert seine Captures im PCAP-Format, so dass sie von anderen Tools, etwa tcpreplay, genutzt werden können. Es öffnet auch pcap-Dateien, die von Utilities wie tcpdump erzeugt wurden.
Wireshark bietet Informationen zur Netzwerkanalyse, um Performance-Probleme exakt zu identifizieren oder eine bestimmte Konversation zwischen den Geräten zu überwachen. Hier können Sie Wireshark für Linux, macOS und Windows herunterladen.
Das Packet Capturing Tool tcpdump
Administratoren schätzen tcpdump wegen seiner Geschwindigkeit und Skriptfähigkeit. Es handelt sich um ein Befehlszeilen-Utility für Linux und ähnliche Betriebssysteme, das erfasste Pakete zur Live-Analyse in Echtzeit anzeigt. Es schreibt außerdem Captures in pcap-Dateien, die Tools wie Wireshark und tcpreplay nutzen können.
Die Chancen stehen gut, dass jedes System, auf dem Sie tcpdump verwenden, auch von tcpreplay profitiert. In der umfangreichen Dokumentation finden Sie Tipps und Tricks. tcpdump ist unter Linux in der enthalten, auch für macOS ist dies der Fall. Für Windows müssen sie einer portierte Version installieren, die sie hier finden.
Das IDS/IPS Snort
Ein weiteres gängiges Open-Source-Sicherheits-Tool, das mit pcap-Captures arbeitet, ist Snort. Snort ist ein IDS/IPS, das pcap-Dateien öffnen und analysieren kann. Dadurch liefert es Informationen zu einer Vielzahl von Metriken, beispielsweise gefundene Protokolle und die Paketmenge. Die Kompatibilität von Snort mit pcap-Captures ist wichtig, da tcpreplay häufig zum Testen von IDS/IPS-Software verwendet wird. Hier können Sie Snort herunterladen.
Andere Utilities
Es gibt weitere Utilities, die mit pcap arbeiten. Sehen Sie sich kommerzielle Produkte an, wie den SolarWinds Network Performance Monitor, oder portierte Anwendungen, etwa WinDump. Kali Linux enthält normalerweise ebenfalls tcpreplay.
Tcpreplay installieren
Laden Sie tcpreplay herunter. Der Quellcode ist ein komprimierter Tarball, den Sie selbst kompilieren müssen.
Stellen Sie sicher, dass Ihr System über den entsprechenden Compiler und die dazugehörigen Dateien verfügt, indem Sie bei einer Debian-basierten Linux-Distribution diese Pakete installieren:
sudo apt-get install build-essential libpcap-dev
Als Nächstes wechseln Sie in das Verzeichnis, das die Quelldateien enthält, und kompilieren tcpreplay mit den folgenden Befehlen:
./configure
make
sudo make install
Vergewissern Sie sich, dass die Installation erfolgreich abgeschlossen wurde, indem Sie diesen Befehl ausführen:
sudo make test
Ein weiterer möglicher Installationsschritt besteht darin, netmap hinzuzufügen, sofern Ihr Treiber für die Netzwerkkarte dies unterstützt. Wenn Sie keine netmap-fähigen Treiber verwenden, könnte der nicht von tcpreplay stammende Traffic auf der Schnittstelle während der Wiedergabe unterbrochen werden. Netmap verhindert dies und ermöglicht die volle Funktionalität während der Wiedergabe. Installieren Sie Netmap, und ändern Sie dann den tcpreplay-Kompiliervorgang wie folgt:
./configure --with-netmap={path-to-tcpreplay-source-files}
make
sudo make install
Mac-Benutzer, die den Homebrew-Paketmanager verwenden, können einfach Folgendes eingeben:
brew install tcpreplay
Beachten Sie, dass Windows-Benutzer auch Cygwin benötigen und die Unterstützung für tcpreplay begrenzt ist.
Wie Sie tcpreplay verwenden
Tcpreplay ist äußerst flexibel und bietet viele Optionen, mit denen sich sein Verhalten ändern lässt. Die grundlegende Syntax ist der Befehl tcpreplay, gefolgt von einer oder mehreren Optionen. Das Argument ist der Name der Capture-Datei, aus der das Tool die Daten beziehen soll. Hier ein Beispiel:
tcpreplay -i {interface} file.pcap
Die folgende Tabelle zeigt einige gängige tcpreplay-Optionen.
Flag | Description |
--help | Zeigt die tcpreplay-Hilfe an |
-r | Liest eine pcap-Datei, ohne sie zu übertragen |
-i | Gibt die Schnittstelle an, über die gesendet werden soll |
-v | Verwendet den Verbose-Modus, um gesendete Pakete während der Wiedergabe auf dem Standardausgabegerät auszugeben |
-t | Sendet die erfassten Pakete nicht mit der in der Datei definierten Geschwindigkeit, sondern mit der höchsten Geschwindigkeit |
--mbps | Legt eine Übertragungsgeschwindigkeit fest und ist eine Alternative zu --pps |
--pps | Gibt eine Übertragung von Paketen pro Sekunde an als Alternative zu --mbps |
--loop=2 | Führt die Wiedergabe durch die Datei in einer bestimmten Schleifenanzahl aus, zum Beispiel zweimal |
Das folgende Beispiel initiiert eine Wiedergabe über die Netzwerkschnittstelle eth0. Dabei werden Paketinformationen aus der Datei capture.pcap abgerufen.
tcpreplay -i eth0 capture.pcap
Standardmäßig stoppt tcpreplay, sobald es alle Pakete in der Capture-Datei gesendet hat. Verwenden Sie die Option -r, um die Capture-Datei vorab zu lesen, um herauszufinden, wie viele Pakete gesendet werden.
Mit der Option --loop weisen Sie tcpreplay an, die Capture-Datei die angegebene Anzahl von Malen zu wiederholen. Angenommen, Ihre Capture-Datei enthält 20 Einträge. Um die Erfassung fünfmal zu wiederholen (insgesamt werden also 100 Einträge gesendet), verwenden Sie die folgende Syntax:
tcpreplay -i eth0 --loop=5 capture.pcap
Vielleicht möchten Sie die Netzwerkleistung mit Ihrer Capture-Datei testen. Standardmäßig sendet tcpreplay Pakete mit der Geschwindigkeit der ursprünglichen Aufzeichnung. Die Optionen --mbps oder --pps modifizieren diese Geschwindigkeit. Mit dem folgenden Befehl senden Sie zum Beispiel fünf Pakete pro Sekunde:
tcpreplay --pps=5 -i eth0 capture.pcap
Eine weitere Geschwindigkeitsoption ist -t (topspeed). Dieses Flag weist tcpreplay an, die Daten so schnell wie möglich zu übertragen und nicht mit der ursprünglichen Geschwindigkeit der Capture-Datei, wie hier:
tcpreplay -t -i eth0 capture.pcap
Sie können jedes von der Capture-Datei übertragene Paket anzeigen, indem Sie die Option -v (verbose) zu den obengenannten Beispielen hinzufügen.
Netzwerkpakete erfassen
Sie sollten eingehende Pakete auf dem Zielgerät aufzeichnen, um den vom tcpreplay-Quellcomputer eingehenden Traffic zu sehen. Sie könnten dies mit Wireshark oder tcpdump erledigen oder ein IDS/IPS mit Protokollierungsfunktionen verwenden. Unabhängig davon ist das Erfassen eingehender Netzwerkinformationen auf dem Zielknoten nützlich, um die Ergebnisse mit der ursprünglichen Wiedergabe zu vergleichen.
Die Aufzeichnung des Netzwerkverkehrs spielt eine wichtige Rolle beim Monitoring der Netzwerkleistung und beim Sicherheitsaudit. Die Möglichkeit, Captures zu Testzwecken zu übertragen, erweitert das Monitoring um eine ganz neue Funktionsschicht. Die tcpreplay-Suite liest in pcap-Dateien gespeicherte Pakete und sendet sie erneut. Sie ermöglicht es Administratoren, Aspekte der Wiedergabe, etwa Geschwindigkeit und Menge, zu steuern.
Viele Sicherheitsexperten und Administratoren sind bereits mit den Vorteilen durch das Packet Capturing vertraut, haben sich aber noch nicht die Zeit genommen, diese Untersuchungsmethode zu verbessern.
Sie sollten noch heute damit beginnen, den Umgang mit tcpreplay zu erlernen. Kompilieren Sie zunächst tcpreplay für ein Testnetzwerksegment. Dann erfassen Sie einige Pakete mit Wireshark oder tcpdump und spielen Sie anschließend gegen ein Zielsystem wieder ab. Machen Sie sich mit den zusätzlichen Optionen vertraut, die tcpreplay bietet, um das Tool optimal zu nutzen. Wenn Sie sich das Herunterladen und Kompilieren der verschiedenen Komponenten ersparen möchten, verwenden Sie Ihre Kali-Linux-Installation, um die Tools kennenzulernen.