Tcpdump: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
'''tcpdump''' ist eine freie Software zur Überwachung und Auswertung von Netzwerkverkehr. | |||
= Entwicklung = | |||
*Wurde von Van Jacobson, Craig Leres und Steven McCanne geschrieben. | |||
*Wird mittlerweile von vielen anderen weiterentwickelt. | |||
= 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. | |||
= 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). | |||
= 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. | |||
{| class="wikitable" | |||
|+ 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) <br/> Dadurch nicht mit cat oder less lesbar <br/> 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, <br/> jedoch bevor irgendeine Ausgabe(datei) gestartet bzw. geöffnet worden ist, <br/> 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. | |||
{| class="wikitable" | |||
|+ 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. <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 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, <br/> 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 | |||
= Interne Links = | |||
= Externe Links = | |||
1. [https://wiki.ubuntuusers.de/tcpdump/| Ubuntuusers Wiki] | |||
2. [https://de.wikipedia.org/wiki/Tcpdump| Wikipedia tcpdump] | |||
==Weblinks== | ==Weblinks== | ||
# https://www.xinux.net/index.php/Tcpdump_grundlagen | # https://www.xinux.net/index.php/Tcpdump_grundlagen |
Version vom 24. März 2021, 11:36 Uhr
tcpdump ist eine freie Software zur Überwachung und Auswertung von Netzwerkverkehr.
Entwicklung
- Wurde von Van Jacobson, Craig Leres und Steven McCanne geschrieben.
- Wird mittlerweile von vielen anderen weiterentwickelt.
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.
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).
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 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.
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
Interne Links
Externe 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://hackertarget.com/tcpdump-examples/
- https://www.howtoforge.com/linux-tcpdump-command/
- https://www.howtoforge.de/anleitung/linux-tcpdump-command-tutorial-fr-anfnger-8-beispiele/