Tcpdump Aufgaben: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 11: | Zeile 11: | ||
tcpdump -D | tcpdump -D | ||
| − | =Aufgabe | + | =Aufgabe: Einfacher Ping-Mitschnitt= |
*Warum? → Einstieg: Sicht auf ICMP-Pakete und erste Funktionsprüfung. | *Warum? → Einstieg: Sicht auf ICMP-Pakete und erste Funktionsprüfung. | ||
;Terminal 1: | ;Terminal 1: | ||
| − | tcpdump -i eth0 | + | tcpdump -i eth0 |
;Terminal 2: | ;Terminal 2: | ||
ping -c 3 8.8.8.8 | ping -c 3 8.8.8.8 | ||
| − | =Aufgabe | + | =Aufgabe: Verkehr zu bestimmtem Host= |
*Warum? → Hilfreich bei der Analyse: Wird ein bestimmter Server kontaktiert? | *Warum? → Hilfreich bei der Analyse: Wird ein bestimmter Server kontaktiert? | ||
;Terminal 1: | ;Terminal 1: | ||
| Zeile 25: | Zeile 25: | ||
ping -c 3 10.0.10.104 | ping -c 3 10.0.10.104 | ||
| − | =Aufgabe | + | =Aufgabe: Nur ICMP anzeigen= |
*Warum? → Eingrenzen: Nur „ping“-Verkehr sichtbar machen. | *Warum? → Eingrenzen: Nur „ping“-Verkehr sichtbar machen. | ||
;Terminal 1: | ;Terminal 1: | ||
| Zeile 32: | Zeile 32: | ||
ping -c 2 10.0.10.104 | ping -c 2 10.0.10.104 | ||
| − | =Aufgabe | + | =Aufgabe: DNS-Abfragen anzeigen= |
*Warum? → Prüfen, ob Namensauflösung funktioniert. | *Warum? → Prüfen, ob Namensauflösung funktioniert. | ||
;Terminal 1: | ;Terminal 1: | ||
| Zeile 39: | Zeile 39: | ||
dig example.org | dig example.org | ||
| − | =Aufgabe | + | =Aufgabe: DNS in Datei mitschneiden= |
*Warum? → Reproduzierbar analysieren mit Wireshark oder erneut mit tcpdump. | *Warum? → Reproduzierbar analysieren mit Wireshark oder erneut mit tcpdump. | ||
;Terminal 1: | ;Terminal 1: | ||
| Zeile 46: | Zeile 46: | ||
dig xinux.net | dig xinux.net | ||
| − | =Aufgabe | + | =Aufgabe: DNS-Mitschnitt anzeigen= |
*Warum? → Analyse offline aus Datei. | *Warum? → Analyse offline aus Datei. | ||
;Terminal 1: | ;Terminal 1: | ||
tcpdump -r dns.pcap | tcpdump -r dns.pcap | ||
| − | =Aufgabe | + | =Aufgabe: HTTP-Zugriff sichtbar machen= |
*Warum? → Prüfen, ob ein Webserver antwortet. | *Warum? → Prüfen, ob ein Webserver antwortet. | ||
;Terminal 1: | ;Terminal 1: | ||
| Zeile 58: | Zeile 58: | ||
curl http://localhost | curl http://localhost | ||
| − | =Aufgabe | + | =Aufgabe: HTTP-Header und Daten mitlesen= |
*Warum? → Sicherheitsaspekt: HTTP überträgt Daten im Klartext. | *Warum? → Sicherheitsaspekt: HTTP überträgt Daten im Klartext. | ||
;Terminal 1: | ;Terminal 1: | ||
| Zeile 65: | Zeile 65: | ||
curl http://10.0.10.104 | curl http://10.0.10.104 | ||
| − | =Aufgabe | + | =Aufgabe: Nur TCP-SYN anzeigen= |
*Warum? → Verbindungsaufbau erkennen, z. B. für Portscan-Erkennung. | *Warum? → Verbindungsaufbau erkennen, z. B. für Portscan-Erkennung. | ||
;Terminal 1: | ;Terminal 1: | ||
| Zeile 72: | Zeile 72: | ||
nc -zv 10.0.10.104 80 | nc -zv 10.0.10.104 80 | ||
| − | =Aufgabe | + | =Aufgabe: Verbindungen zu Port 22 beobachten= |
*Warum? → Wird SSH angesprochen? | *Warum? → Wird SSH angesprochen? | ||
;Terminal 1: | ;Terminal 1: | ||
| Zeile 79: | Zeile 79: | ||
ssh user@10.0.10.104 | ssh user@10.0.10.104 | ||
| − | =Aufgabe | + | =Aufgabe: Nur eingehende Pakete auf Port 22 anzeigen= |
*Warum? → Nur Traffic mit Ziel „lokaler SSH-Dienst“ anzeigen. | *Warum? → Nur Traffic mit Ziel „lokaler SSH-Dienst“ anzeigen. | ||
;Terminal 1: | ;Terminal 1: | ||
| Zeile 86: | Zeile 86: | ||
ssh user@10.0.10.104 | ssh user@10.0.10.104 | ||
| − | =Aufgabe | + | =Aufgabe: HTTPs nicht lesbar – trotzdem sichtbar= |
*Warum? → Auch wenn TLS verschlüsselt: SNI, Zielhost und Port bleiben sichtbar. | *Warum? → Auch wenn TLS verschlüsselt: SNI, Zielhost und Port bleiben sichtbar. | ||
;Terminal 1: | ;Terminal 1: | ||
tcpdump -i eth0 port 443 | tcpdump -i eth0 port 443 | ||
;Terminal 2: | ;Terminal 2: | ||
| − | curl https:// | + | curl https://xinux.de |
| − | =Aufgabe | + | =Aufgabe: ICMPv6 anzeigen= |
*Warum? → IPv6 Neighbor Discovery & Ping6 nachvollziehen. | *Warum? → IPv6 Neighbor Discovery & Ping6 nachvollziehen. | ||
;Terminal 1: | ;Terminal 1: | ||
| Zeile 100: | Zeile 100: | ||
ping6 -c 2 ipv6.google.com | ping6 -c 2 ipv6.google.com | ||
| − | =Aufgabe | + | =Aufgabe: ARP-Verkehr analysieren= |
*Warum? → ARP-Probleme erkennen (z. B. bei IP-Konflikten). | *Warum? → ARP-Probleme erkennen (z. B. bei IP-Konflikten). | ||
;Terminal 1: | ;Terminal 1: | ||
tcpdump -i eth0 arp | tcpdump -i eth0 arp | ||
;Terminal 2: | ;Terminal 2: | ||
| − | arping 10.0.10.104 | + | sudo arping 10.0.10.104 |
| − | =Aufgabe | + | =Aufgabe: Broadcast-Traffic sehen= |
*Warum? → Prüfen, ob Broadcasts vorhanden sind (z. B. DHCP, ARP). | *Warum? → Prüfen, ob Broadcasts vorhanden sind (z. B. DHCP, ARP). | ||
;Terminal 1: | ;Terminal 1: | ||
| Zeile 114: | Zeile 114: | ||
dhclient -v eth0 | dhclient -v eth0 | ||
| − | =Aufgabe | + | =Aufgabe: Nur HTTP GET anzeigen= |
*Warum? → Spezifisch HTTP-Methoden im Klartext sehen (sofern HTTP). | *Warum? → Spezifisch HTTP-Methoden im Klartext sehen (sofern HTTP). | ||
;Terminal 1: | ;Terminal 1: | ||
| Zeile 121: | Zeile 121: | ||
curl http://10.0.10.104 | curl http://10.0.10.104 | ||
| − | =Aufgabe | + | =Aufgabe: TCP und UDP parallel beobachten= |
*Warum? → Beide Transportprotokolle gleichzeitig prüfen. | *Warum? → Beide Transportprotokolle gleichzeitig prüfen. | ||
;Terminal 1: | ;Terminal 1: | ||
| Zeile 128: | Zeile 128: | ||
curl http://10.0.10.104 && dig xinux.net | curl http://10.0.10.104 && dig xinux.net | ||
| − | =Aufgabe | + | =Aufgabe: Pakete zählen statt anzeigen= |
*Warum? → Übersicht: Wie viele Pakete treffen einen bestimmten Filter? | *Warum? → Übersicht: Wie viele Pakete treffen einen bestimmten Filter? | ||
;Terminal 1: | ;Terminal 1: | ||
| Zeile 135: | Zeile 135: | ||
for i in {1..10}; do curl -s http://10.0.10.104 > /dev/null; done | for i in {1..10}; do curl -s http://10.0.10.104 > /dev/null; done | ||
| − | =Aufgabe | + | =Aufgabe: Verkehr nur von bestimmtem Port= |
*Warum? → Beispiel: Nur ausgehender Traffic von lokalem Port 12345. | *Warum? → Beispiel: Nur ausgehender Traffic von lokalem Port 12345. | ||
;Terminal 1: | ;Terminal 1: | ||
Version vom 13. Mai 2025, 09:00 Uhr
Übungen: tcpdump mit aktivem Netzwerkverkehr
Ziel
- Netzwerkverkehr gezielt analysieren mit tcpdump
- Typische Probleme sichtbar machen (Erreichbarkeit, Dienste, Ports, DNS)
- Hinweis: Zwei Terminals erforderlich (1× tcpdump, 1× Traffic-Erzeugung)
Aufgabe: Verfügbare Interfaces anzeigen
- Warum? → Um zu wissen, auf welchem Interface tcpdump überhaupt Pakete mitschneiden kann.
- Terminal 1
tcpdump -D
Aufgabe: Einfacher Ping-Mitschnitt
- Warum? → Einstieg: Sicht auf ICMP-Pakete und erste Funktionsprüfung.
- Terminal 1
tcpdump -i eth0
- Terminal 2
ping -c 3 8.8.8.8
Aufgabe: Verkehr zu bestimmtem Host
- Warum? → Hilfreich bei der Analyse: Wird ein bestimmter Server kontaktiert?
- Terminal 1
tcpdump -i eth0 host 10.0.10.104
- Terminal 2
ping -c 3 10.0.10.104
Aufgabe: Nur ICMP anzeigen
- Warum? → Eingrenzen: Nur „ping“-Verkehr sichtbar machen.
- Terminal 1
tcpdump -i eth0 icmp
- Terminal 2
ping -c 2 10.0.10.104
Aufgabe: DNS-Abfragen anzeigen
- Warum? → Prüfen, ob Namensauflösung funktioniert.
- Terminal 1
tcpdump -i eth0 port 53
- Terminal 2
dig example.org
Aufgabe: DNS in Datei mitschneiden
- Warum? → Reproduzierbar analysieren mit Wireshark oder erneut mit tcpdump.
- Terminal 1
tcpdump -i eth0 port 53 -w dns.pcap
- Terminal 2
dig xinux.net
Aufgabe: DNS-Mitschnitt anzeigen
- Warum? → Analyse offline aus Datei.
- Terminal 1
tcpdump -r dns.pcap
Aufgabe: HTTP-Zugriff sichtbar machen
- Warum? → Prüfen, ob ein Webserver antwortet.
- Terminal 1
tcpdump -i lo tcp port 80
- Terminal 2
curl http://localhost
Aufgabe: HTTP-Header und Daten mitlesen
- Warum? → Sicherheitsaspekt: HTTP überträgt Daten im Klartext.
- Terminal 1
tcpdump -i eth0 -A port 80
- Terminal 2
curl http://10.0.10.104
Aufgabe: Nur TCP-SYN anzeigen
- Warum? → Verbindungsaufbau erkennen, z. B. für Portscan-Erkennung.
- Terminal 1
tcpdump 'tcp[13] & 2 != 0 and tcp[13] & 16 == 0'
- Terminal 2
nc -zv 10.0.10.104 80
Aufgabe: Verbindungen zu Port 22 beobachten
- Warum? → Wird SSH angesprochen?
- Terminal 1
tcpdump -i eth0 port 22
- Terminal 2
ssh user@10.0.10.104
Aufgabe: Nur eingehende Pakete auf Port 22 anzeigen
- Warum? → Nur Traffic mit Ziel „lokaler SSH-Dienst“ anzeigen.
- Terminal 1
tcpdump -i eth0 dst port 22
- Terminal 2
ssh user@10.0.10.104
Aufgabe: HTTPs nicht lesbar – trotzdem sichtbar
- Warum? → Auch wenn TLS verschlüsselt: SNI, Zielhost und Port bleiben sichtbar.
- Terminal 1
tcpdump -i eth0 port 443
- Terminal 2
curl https://xinux.de
Aufgabe: ICMPv6 anzeigen
- Warum? → IPv6 Neighbor Discovery & Ping6 nachvollziehen.
- Terminal 1
tcpdump -i eth0 icmp6
- Terminal 2
ping6 -c 2 ipv6.google.com
Aufgabe: ARP-Verkehr analysieren
- Warum? → ARP-Probleme erkennen (z. B. bei IP-Konflikten).
- Terminal 1
tcpdump -i eth0 arp
- Terminal 2
sudo arping 10.0.10.104
Aufgabe: Broadcast-Traffic sehen
- Warum? → Prüfen, ob Broadcasts vorhanden sind (z. B. DHCP, ARP).
- Terminal 1
tcpdump -i eth0 broadcast
- Terminal 2
dhclient -v eth0
Aufgabe: Nur HTTP GET anzeigen
- Warum? → Spezifisch HTTP-Methoden im Klartext sehen (sofern HTTP).
- Terminal 1
tcpdump -i eth0 -A port 80 | grep "GET"
- Terminal 2
curl http://10.0.10.104
Aufgabe: TCP und UDP parallel beobachten
- Warum? → Beide Transportprotokolle gleichzeitig prüfen.
- Terminal 1
tcpdump -i eth0 tcp or udp
- Terminal 2
curl http://10.0.10.104 && dig xinux.net
Aufgabe: Pakete zählen statt anzeigen
- Warum? → Übersicht: Wie viele Pakete treffen einen bestimmten Filter?
- Terminal 1
tcpdump -i eth0 -c 10 port 80
- Terminal 2
for i in {1..10}; do curl -s http://10.0.10.104 > /dev/null; done
Aufgabe: Verkehr nur von bestimmtem Port
- Warum? → Beispiel: Nur ausgehender Traffic von lokalem Port 12345.
- Terminal 1
tcpdump -i eth0 src port 12345
- Terminal 2
nc -p 12345 10.0.10.104 80