Tcpdump: Unterschied zwischen den Versionen

Aus Foxwiki
Zeile 122: Zeile 122:
  tcpdump -r output.dump
  tcpdump -r output.dump


= Interne Links =
= Links =
== Interne Links ==
[[Linux:Befehl:ip]]
[[Linux:Befehl:ip]]



Version vom 24. März 2021, 12:52 Uhr

tcpdump ist eine freie Software zur Überwachung und Auswertung von Netzwerkverkehr.

Aufgabe

  • Kann TCP-Pakete, UDP- und ICMP-Pakete mitschneiden.
  • Auswertung von vorher in Dateien gespeicherten Paketen.
  • Fehlersuche in Programmen, die über das Netzwerk kommunizieren.
  • Fehlersuche im Netzwerkaufbau selbst.
  • Aufzeichnung und Darstellung der Kommunikation anderer Benutzer und Computer.
  • Kommunikation zwischen Teilnehmern des Netzwerkes überwachen und mitschneiden.
  • Passwörter und Benutzerdaten aus dem Netzwerk zu erhalten (durch unverschlüsselte Protokoll Übertragungen).

Allgemeines

  • Arbeitet im Textmodus und wird über die Kommandozeile gesteuert.
  • Mitgeschnittenen Pakete können alternativ in der grafischen Oberfläche von Wireshark analysiert werden.
  • Aufgrund des direkten Zugriffs auf Hardware, meistens Root-Rechte benötigt.

Betriebssysteme

  • Verfügbar für die meisten Unix-Systeme und Unix-Derivate.
  • Für Windows steht die Portierung WinDump zur Verfügung.

Entwicklung

  • Wurde von Van Jacobson, Craig Leres und Steven McCanne geschrieben.
  • Wird mittlerweile von vielen anderen weiterentwickelt.

Installation

apt install tcpdump

Benutzung

Wird in einem Terminal mit folgendem Befehl gestartet:

tcpdump [FLAGS] [FILTER-OPTIONEN]
Hinweis

Muss unter Linux mit Root-Rechten ausgeführt werden bzw. das Setuid-Bit gesetzt sein, damit es Pakete mitschneiden kann.

Flags

  • Alle Flags sind optional.
  • Eine vollständige Liste kann man in der Man-Page von tcpdump finden.
Flags von tcpdump
Flag Bedeutung
-D Liste aller sniffbaren Netzwerkinterfaces, wenn gesetzt ignoriert es andere Flags
-i Interface Welche Netzwerkschnittstelle gesnifft werden soll, falls nicht gesetzt sucht sich tcpdump eine aus (meist die erste LAN-Karte)
-n keine Hostnamen auflösen, Portnummern nicht durch ihre Dienste ersetzen.
-c Anzahl Nachdem es die angegebene Anzahl Pakete mitgeschnitten hat, beendet sich tcpdump automatisch.
-e Ethernet-Header mitschneiden.
-q weniger Protokoll-Informationen loggen, Ausgabe wird kleiner.
-v, -vv, -vvv Je mehr v's, desto mehr Information über Pakete werden gespeichert.
-S absolute statt relative Sequenznummer der Pakete.
-A Inhalt eines Paketes als ASCII-Ausgabe
-x, -xx Inhalt eines Paketes als Hex-Ausgabe, mit einem x wird der TCP-Header ignoriert.
-X, -XX Inhalt eines Paketes als Hex- und ASCII-Ausgabe, mit einem X wird der TCP-Header ignoriert.
-s Anzahl Anzahl der Bytes pro Paket, die gesnifft werden sollen. Standard sind 65535, wird durch -s 0 gesetzt.
-w Dateiname Schreibt Pakete in die angegebene Datei, diese Pakete sind unformatiert (raw-packets)
Dadurch nicht mit cat oder less lesbar
Jedoch mit -r Flag parsbar
-r Dateiname Parst, formatiert und gibt die Pakete, die mit -w geschrieben wurden, in der Konsole aus.
-Z Benutzer Nachdem die zu sniffende Netzwerkschnittstelle bzw. die mit dem -r Flag zu parsende Datei geöffnet worden ist,
jedoch bevor irgendeine Ausgabe(datei) gestartet bzw. geöffnet worden ist,
wird das Benutzerkonto (UID) von root auf den angegebenen Benutzer und die Gruppe (GID) von root auf die Hauptgruppe des angegebenen Benutzers geändert.

Filteroptionen

  • Eine vollständige Liste kann man in der Man-Page von pcap-filter finden.
  • Mehrere Filterangaben können mit and (alternativ &&), or (alternativ ||) und not (alternativ !) miteinander verknüpft werden
  • Ohne angegebene Optionen wird immer alles mitgeschnitten
    • Keine Hostangabe = alle Hosts.
    • Keine Portangabe = alle Ports.
Filteroptionen von tcpdump
Option Werte Bedeutung
host IP-Adresse (oder auch Hostname) Nur Pakete mitgeschnitten, die entweder als Quelle oder als Ziel die angegebene IP-Adresse besitzen.
Es kann auch ein Hostname angegeben werden (aber nur, wenn nicht das -n Flag benutzt wird).
net Netzwerk-Bereich in CIDR-Schreibweise Nur Pakete mitgeschnitten, die entweder als Quelle oder als Ziel eine IP-Adresse aus dem angegebenen Netzwerk-Bereich besitzen.
port eine Zahl von 0 bis 65535 Schneidet Pakete mit, die entweder auf Quell- oder auf Ziel-Seite den angegebenen Port besitzen.
portrange 0-65535 Schneidet Pakete mit, die entweder auf Quell- oder auf Ziel-Seite einen Port in dem angegebenen Portbereich besitzen.
src host, net, port oder portrange Nur Pakete mitgeschnitten, die als Quelle den angegebenen Wert besitzen.
dst host, net, port oder portrange Nur Pakete mitgeschnitten, die als Ziel den angegebenen Wert besitzen.
proto ether, fddi, tr, wlan, ip, ip6,
arp, rarp, decnet, tcp und udp
Netzwerkprotokoll, in dem Pakete mitgeschnitten werden sollen

Beispiele

Netzwerkschnittstellen ausgeben, welche tcpdump sniffen kann:

tcpdump -D

Ersten 68 Bytes von sämtlichen Paketen, die die Netzwerkschnittstelle wlan0 passieren, mitschneiden:

tcpdump -i wlan0 

Alle UDP-Pakete, welche 10.231.11.7 als Ziel haben, mitschneiden:

tcpdump -i wlan0 udp and dst 10.231.11.7 

DNS-Requests und deren Antworten mitschneiden. Die Ausgabe ist dabei auf minimal gestellt:

tcpdump -i wlan0 -q udp port 53

Sowohl HTTP-, als auch HTTPS-Pakete:

tcpdump -i wlan0 -q '(tcp port 80) or (tcp port 443)'

Vorheriges Beispiel raw in die Datei output.dump schreiben:

tcpdump -i wlan0 -q -w output.dump '(tcp port 80) or (tcp port 443)' 

Vorherige Ausgabedatei parsen und Inhalt formatiert ausgeben:

tcpdump -r output.dump

Links

Interne Links

Linux:Befehl:ip

Netzwerke:Wireshark

Weblinks

  1. https://www.xinux.net/index.php/Tcpdump_grundlagen
  2. https://www.xinux.net/index.php/Tcpdump_beispiele
  3. http://mikiwiki.org/wiki/tcpdump
  4. https://mirrors.deepspace6.net/Linux+IPv6-HOWTO-de/examples-tcpdump.html
  5. https://wiki.ubuntuusers.de/tcpdump/
  6. https://de.wikipedia.org/wiki/Tcpdump
  7. https://hackertarget.com/tcpdump-examples/
  8. https://www.howtoforge.com/linux-tcpdump-command/
  9. https://www.howtoforge.de/anleitung/linux-tcpdump-command-tutorial-fr-anfnger-8-beispiele/