Tcpdump: Unterschied zwischen den Versionen
(20 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
'''tcpdump''' ist eine freie Software zur Überwachung und Auswertung von Netzwerkverkehr. | '''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 = | = Allgemeines = | ||
Zeile 14: | Zeile 19: | ||
*Für Windows steht die Portierung WinDump zur Verfügung. | *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 = | = Benutzung = | ||
Zeile 39: | Zeile 42: | ||
! Flag !! Bedeutung | ! Flag !! Bedeutung | ||
|- | |- | ||
| -D || Liste aller sniffbaren Netzwerkinterfaces, wenn gesetzt ignoriert es andere Flags | | -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) | | -i Interface|| Welche Netzwerkschnittstelle gesnifft werden soll, falls nicht gesetzt sucht sich tcpdump eine aus (meist die erste LAN-Karte). | ||
|- | |- | ||
| -n || | | -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. | | -c Anzahl || Nachdem es die angegebene Anzahl Pakete mitgeschnitten hat, beendet sich tcpdump automatisch. | ||
Zeile 49: | Zeile 52: | ||
| -e || Ethernet-Header mitschneiden. | | -e || Ethernet-Header mitschneiden. | ||
|- | |- | ||
| -q || | | -q || Weniger Protokoll-Informationen loggen, Ausgabe wird kleiner. | ||
|- | |- | ||
| -v, -vv, -vvv || Je mehr v's, desto mehr Information über Pakete werden gespeichert. | | -v, -vv, -vvv || Je mehr v's, desto mehr Information über Pakete werden gespeichert. | ||
|- | |- | ||
| -S || | | -S || Absolute statt relative Sequenznummer der Pakete. | ||
|- | |- | ||
| -A || Inhalt | | -A || Inhalt als ASCII-Ausgabe. | ||
|- | |- | ||
| -x, -xx || Inhalt | | -x, -xx || Inhalt als Hex-Ausgabe, mit einem x wird der TCP-Header ignoriert. | ||
|- | |- | ||
| -X, -XX || Inhalt | | -X, -XX || Inhalt 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. | | -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) <br/> Dadurch nicht mit cat oder less lesbar <br/> Jedoch mit -r Flag | | -w Dateiname || Schreibt Pakete in die angegebene Datei, diese Pakete sind unformatiert (raw-packets). <br/> Dadurch nicht mit cat oder less lesbar. <br/> Jedoch mit -r Flag einlesbar. | ||
|- | |- | ||
| -r Dateiname || | | -r Dateiname || Liest, formatiert und gibt die Pakete, die mit -w geschrieben wurden, in der Konsole aus. | ||
|- | |- | ||
| -Z Benutzer || | | -Z Benutzer || Im Namen eines anderen Benutzers sniffen. | ||
|- | |- | ||
|} | |} | ||
Zeile 82: | Zeile 85: | ||
! Option !! Werte !! Bedeutung | ! Option !! Werte !! Bedeutung | ||
|- | |- | ||
| host || IP-Adresse (oder auch Hostname) || Nur Pakete | | host || IP-Adresse (oder auch Hostname) || Nur Pakete mitschneiden, die entweder als Quelle oder als Ziel die angegebene IP-Adresse besitzen. <br/> Es kann auch ein Hostname angegeben werden (aber nur, wenn nicht das -n Flag benutzt wird). | ||
|- | |- | ||
| net || Netzwerk-Bereich in CIDR-Schreibweise || Nur Pakete | | net || Netzwerk-Bereich in CIDR-Schreibweise || Nur Pakete mitschneiden, die entweder als Quelle oder als Ziel eine IP-Adresse aus dem angegebenen Netzwerk-Bereich besitzen. | ||
|- | |- | ||
| port|| eine Zahl von 0 bis 65535 || | | port|| eine Zahl von 0 bis 65535 || Nur Pakete mitschneiden, die entweder auf Quell- oder auf Ziel-Seite den angegebenen Port besitzen. | ||
|- | |- | ||
| portrange || 0-65535 || | | portrange || 0-65535 || Nur Pakete mitschneiden, die entweder auf Quell- oder auf Ziel-Seite einen Port in dem angegebenen Portbereich besitzen. | ||
|- | |- | ||
| src || host, net, port oder portrange || Nur Pakete | | src || host, net, port oder portrange || Nur Pakete mitschneiden, die als Quelle den angegebenen Wert besitzen. | ||
|- | |- | ||
| dst || host, net, port oder portrange || Nur Pakete | | dst || host, net, port oder portrange || Nur Pakete mitschneiden, die als Ziel den angegebenen Wert besitzen. | ||
|- | |- | ||
| proto || ether, fddi, tr, wlan, ip, ip6, <br/> arp, rarp, decnet, tcp und udp || Netzwerkprotokoll, in dem Pakete mitgeschnitten werden sollen | | proto || ether, fddi, tr, wlan, ip, ip6, <br/> arp, rarp, decnet, tcp und udp || Netzwerkprotokoll, in dem Pakete mitgeschnitten werden sollen | ||
Zeile 98: | Zeile 101: | ||
= Beispiele = | = Beispiele = | ||
[[File:2024-07-13_11-00-00_UTC.jpg|mini|400px|link=https://www.instagram.com/p/C9XETpfxwxJ| https://www.instagram.com/p/C9XETpfxwxJ]] | |||
Netzwerkschnittstellen ausgeben, welche tcpdump sniffen kann: | Netzwerkschnittstellen ausgeben, welche tcpdump sniffen kann: | ||
tcpdump -D | tcpdump -D | ||
Zeile 119: | Zeile 124: | ||
tcpdump -r output.dump | tcpdump -r output.dump | ||
= Interne Links = | = Links = | ||
[[ | == Interne Links == | ||
#[[ip]] | |||
[[ | #[[Wireshark]] | ||
=Weblinks= | == Weblinks == | ||
# https://www.xinux.net/index.php/Tcpdump_grundlagen | # https://www.xinux.net/index.php/Tcpdump_grundlagen | ||
# https://www.xinux.net/index.php/Tcpdump_beispiele | # https://www.xinux.net/index.php/Tcpdump_beispiele | ||
Zeile 135: | Zeile 140: | ||
# https://www.howtoforge.de/anleitung/linux-tcpdump-command-tutorial-fr-anfnger-8-beispiele/ | # https://www.howtoforge.de/anleitung/linux-tcpdump-command-tutorial-fr-anfnger-8-beispiele/ | ||
[[ | [[Kategorie:Linux/Netzwerk]] |
Aktuelle Version vom 9. August 2024, 07:51 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.
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 als ASCII-Ausgabe. |
-x, -xx | Inhalt als Hex-Ausgabe, mit einem x wird der TCP-Header ignoriert. |
-X, -XX | Inhalt 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 einlesbar. |
-r Dateiname | Liest, formatiert und gibt die Pakete, die mit -w geschrieben wurden, in der Konsole aus. |
-Z Benutzer | Im Namen eines anderen Benutzers sniffen. |
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.
Option | Werte | Bedeutung |
---|---|---|
host | IP-Adresse (oder auch Hostname) | Nur Pakete mitschneiden, 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 mitschneiden, die entweder als Quelle oder als Ziel eine IP-Adresse aus dem angegebenen Netzwerk-Bereich besitzen. |
port | eine Zahl von 0 bis 65535 | Nur Pakete mitschneiden, die entweder auf Quell- oder auf Ziel-Seite den angegebenen Port besitzen. |
portrange | 0-65535 | Nur Pakete mitschneiden, die entweder auf Quell- oder auf Ziel-Seite einen Port in dem angegebenen Portbereich besitzen. |
src | host, net, port oder portrange | Nur Pakete mitschneiden, die als Quelle den angegebenen Wert besitzen. |
dst | host, net, port oder portrange | Nur Pakete mitschneiden, 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
Weblinks
- https://www.xinux.net/index.php/Tcpdump_grundlagen
- https://www.xinux.net/index.php/Tcpdump_beispiele
- http://mikiwiki.org/wiki/tcpdump
- https://mirrors.deepspace6.net/Linux+IPv6-HOWTO-de/examples-tcpdump.html
- https://wiki.ubuntuusers.de/tcpdump/
- https://de.wikipedia.org/wiki/Tcpdump
- https://hackertarget.com/tcpdump-examples/
- https://www.howtoforge.com/linux-tcpdump-command/
- https://www.howtoforge.de/anleitung/linux-tcpdump-command-tutorial-fr-anfnger-8-beispiele/