Tcpdump Aufgaben: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
=== Aufgabe 1 ===
+
=Übungen: tcpdump mit aktivem Netzwerkverkehr (20 Aufgaben)=
Erstellen Sie einen dump von eth0
 
10:33:08.963022 IP 192.168.240.1.2049 > 192.168.241.1.983: Flags [.], ack 10240, win 501, options [nop,nop,TS val 203528357 ecr 2601352], length 0
 
10:33:08.963129 IP 192.168.240.1.2049 > 192.168.241.1.501920070: reply ok 136 write [|nfs]
 
10:33:08.963142 IP 192.168.241.1.983 > 192.168.240.1.2049: Flags [.], ack 1629, win 41566, options [nop,nop,TS val 2601352 ecr 203528357], length 0
 
10:33:08.963542 IP 192.168.240.1.2049 > 192.168.241.1.983: Flags [.], ack 13136, win 501, options [nop,nop,TS val 203528357 ecr 2601352], length 0
 
10:33:08.963618 IP 192.168.240.1.2049 > 192.168.241.1.518697286: reply ok 136
 
10:33:08.963630 IP 192.168.241.1.983 > 192.168.240.1.2049: Flags [.], ack 1769, win 41564, options [nop,nop,TS val 2601352 ecr 203528357], length 0
 
<code>tcpdump -ni eth0</code>
 
  
=== Aufgabe 2 ===
+
==Ziel==
Schreiben Sie einen dump in eine Datei
+
* Netzwerkverkehr gezielt analysieren mit tcpdump
 +
* Typische Probleme sichtbar machen (Erreichbarkeit, Dienste, Ports, DNS)
 +
* Hinweis: Zwei Terminals erforderlich (1× tcpdump, 1× Traffic-Erzeugung)
  
<code>tcpdump -nr datei.dump</code>
+
=Aufgabe 1: Verfügbare Interfaces anzeigen=
 +
'''Warum?''' → Um zu wissen, auf welchem Interface tcpdump überhaupt Pakete mitschneiden kann.
 +
;Terminal 1:
 +
*tcpdump -D
  
=== Aufgabe 3 ===
+
=Aufgabe 2: Einfacher Ping-Mitschnitt=
Filtern Sie nach Paketen mit ausschlieslich gesetztem PSH Flag
+
'''Warum?''' → Einstieg: Sicht auf ICMP-Pakete und erste Funktionsprüfung.
10:57:25.261098 IP 192.168.241.1.3001 > 192.168.240.1.80: Flags [P], seq 132626702:132628082, win 4096, length 1380
+
;Terminal 1:
10:59:37.190124 IP 192.168.241.1.3001 > 192.168.240.1.80: Flags [P], seq 1110679339:1110680719, win 4096, length 1380
+
*tcpdump -i eth0
10:59:41.444859 IP 192.168.241.1.3001 > 192.168.240.1.80: Flags [P], seq 498723014:498724394, win 4096, length 1380
+
;Terminal 2:
10:59:42.156874 IP 192.168.241.1.3001 > 192.168.240.1.80: Flags [P], seq 1684377667:1684379047, win 4096, length 1380
+
*ping -c 3 8.8.8.8
  
<code>tcpdump -n tcp[13] == 8</code>
+
=Aufgabe 3: 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
  
Filtern sie Pkaete mit mindestens gesetztem PSH Flag
+
=Aufgabe 4: 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
  
<code>tcpdump -n tcp[13] & 8 == 8</code>
+
=Aufgabe 5: DNS-Abfragen anzeigen=
 +
'''Warum?''' → Prüfen, ob Namensauflösung funktioniert.
 +
;Terminal 1:
 +
*tcpdump -i eth0 port 53
 +
;Terminal 2:
 +
*dig example.org
  
===== Erläuterung =====
+
=Aufgabe 6: DNS in Datei mitschneiden=
Durch die AND-Verknüpfung des 13. TCP Oktetts mit 8 werden auch Pakete mit mehr als nur gesetztem PSH Flag gefiltert
+
'''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 4 ===
+
=Aufgabe 7: DNS-Mitschnitt anzeigen=
 +
'''Warum?''' → Analyse offline aus Datei.
 +
;Terminal 1:
 +
*tcpdump -r dns.pcap
 +
 
 +
=Aufgabe 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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://10.0.10.104
 +
 
 +
=Aufgabe 14: ICMPv6 anzeigen=
 +
'''Warum?''' → IPv6 Neighbor Discovery & Ping6 nachvollziehen.
 +
;Terminal 1:
 +
*tcpdump -i eth0 icmp6
 +
;Terminal 2:
 +
*ping6 -c 2 ipv6.google.com
 +
 
 +
=Aufgabe 15: ARP-Verkehr analysieren=
 +
'''Warum?''' → ARP-Probleme erkennen (z. B. bei IP-Konflikten).
 +
;Terminal 1:
 +
*tcpdump -i eth0 arp
 +
;Terminal 2:
 +
*arping 10.0.10.104
 +
 
 +
=Aufgabe 16: 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 17: 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 18: 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 19: 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 20: 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

Version vom 10. Mai 2025, 08:06 Uhr

Übungen: tcpdump mit aktivem Netzwerkverkehr (20 Aufgaben)

Ziel

  • Netzwerkverkehr gezielt analysieren mit tcpdump
  • Typische Probleme sichtbar machen (Erreichbarkeit, Dienste, Ports, DNS)
  • Hinweis: Zwei Terminals erforderlich (1× tcpdump, 1× Traffic-Erzeugung)

Aufgabe 1: Verfügbare Interfaces anzeigen

Warum? → Um zu wissen, auf welchem Interface tcpdump überhaupt Pakete mitschneiden kann.

Terminal 1
  • tcpdump -D

Aufgabe 2: 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 3: 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 4: 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 5: DNS-Abfragen anzeigen

Warum? → Prüfen, ob Namensauflösung funktioniert.

Terminal 1
  • tcpdump -i eth0 port 53
Terminal 2
  • dig example.org

Aufgabe 6: 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 7: DNS-Mitschnitt anzeigen

Warum? → Analyse offline aus Datei.

Terminal 1
  • tcpdump -r dns.pcap

Aufgabe 8: HTTP-Zugriff sichtbar machen

Warum? → Prüfen, ob ein Webserver antwortet.

Terminal 1
  • tcpdump -i lo tcp port 80
Terminal 2

Aufgabe 9: HTTP-Header und Daten mitlesen

Warum? → Sicherheitsaspekt: HTTP überträgt Daten im Klartext.

Terminal 1
  • tcpdump -i eth0 -A port 80
Terminal 2

Aufgabe 10: 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 11: 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 12: 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 13: 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

Aufgabe 14: ICMPv6 anzeigen

Warum? → IPv6 Neighbor Discovery & Ping6 nachvollziehen.

Terminal 1
  • tcpdump -i eth0 icmp6
Terminal 2
  • ping6 -c 2 ipv6.google.com

Aufgabe 15: ARP-Verkehr analysieren

Warum? → ARP-Probleme erkennen (z. B. bei IP-Konflikten).

Terminal 1
  • tcpdump -i eth0 arp
Terminal 2
  • arping 10.0.10.104

Aufgabe 16: 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 17: 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

Aufgabe 18: TCP und UDP parallel beobachten

Warum? → Beide Transportprotokolle gleichzeitig prüfen.

Terminal 1
  • tcpdump -i eth0 tcp or udp
Terminal 2

Aufgabe 19: 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

Aufgabe 20: 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