it-swarm.com.de

Wie funktioniert "Traceroute over TCP", welche Risiken bestehen und wie kann es gemindert werden?

Es gibt ein Dienstprogramm namens tcptraceroute und diese Erweiterung namens intrace , die genau wie eine Standard-Traceroute verwendet wird, jedoch über TCP funktioniert.

  • Wie wird das Flag syn in TCP verwendet, um eine Traceroute-ähnliche Funktionalität zu erreichen (wenn ICMP deaktiviert ist)?

  • Welche Informationen können offengelegt werden (oder andere Risiken)?

  • Wie kann dies gemildert werden? (Router, Hosts, ... beide?)

Dies wurde ähnlich wie der Befehl nmap beschrieben, wenn das Flag -sS übergeben wurde. Wenn dies korrekt ist, was bedeutet es dann tatsächlich?

24

Alle Tracerouting-Tools basieren auf dem folgenden Prinzip: Sie senden Pakete mit kurzer Lebensdauer und warten auf ICMP-Pakete, die den Tod dieser Pakete melden. Ein IP-Paket hat ein Feld namens "TTL" (als "Time To Live"), das bei jedem Hop dekrementiert wird. Wenn es 0 erreicht, stirbt das Paket und der Router, auf dem dies geschieht, soll eine "Time Exceeded" ICMP-Nachricht zurücksenden . Diese ICMP-Nachricht enthält die IP-Adresse des Routers und zeigt diese somit an.

Keines der Tools, mit denen Sie verknüpfen, kann etwas tun, wenn eine Firewall die ICMP-Pakete "Time Exceeded" blockiert. Das Blockieren solcher Pakete neigt jedoch dazu, das Internet zu beschädigen (da Hosts das TTL in den von ihnen gesendeten Paketen adaptiv ändern, um mit langen Netzwerkpfaden fertig zu werden, und diese ICMP für diesen Prozess benötigen) Im Allgemeinen werden die ICMP-Pakete "Time Exceeded" nicht blockiert.

Was jedoch häufig blockiert wird , ist die Art von kurzlebigen Paketen, die traceroute sendet. Dies sind die Pakete mit der künstlich niedrigen TTL. Wenn sie von einer Firewall blockiert werden, sterben sie nie "an Alter" und somit keine Zeitüberschreitung bei ICMP. Für die TTL-Verarbeitung und den ICMP "Time Exceeded" spielt der Pakettyp keine Rolle. Dies geschieht auf IP-Ebene. Firewalls untersuchen aber auch den Paketinhalt. Das Ziel ist es, Firewalls so zu täuschen, dass das kurzlebige Paket fließen kann (und dann stirbt).

Plain traceroute verwendet entweder UDP-Pakete oder ICMP- "Echo" -Pakete, wobei beide Arten routinemäßig von (über) eifrigen Sysadmins blockiert werden. tcptraceroute verwendet stattdessen ein TCP "SYN" -Paket, dh die Art von Paket, die als erster Schritt im [~ # ~] tcp [~ # ~] auftreten würde "Drei-Wege-Handschlag". Diese Art von Paket wird normalerweise nicht von der Firewall blockiert, zumindest solange der Zielport "erlaubt" ist. tcptraceroute führt keinen TCP Handshake durch; Es beruht nur auf der Idee, dass SYN-Pakete nicht von Firewalls auf Sicht geschossen werden.

intrace geht noch einen Schritt weiter und wartet auf eine vorhandene TCP Verbindung (dies geschieht durch Inspektion aller Pakete, à la tcpdump). Wenn eine Verbindung erkannt wird und der Benutzer die EINGABETASTE drückt, sendet intrace Short-Live-Pakete, die als Teil der beobachteten Verbindung erscheinen. intrace kann dies tun, weil es die Pakete gesehen hat und daher die IP-Adressen, Ports und Sequenznummern kennt. Alle relevanten Firewalls lassen diese Pakete passieren, da sie (offensichtlich) die beobachtete TCP Verbindung ermöglichen. Die kurzlebigen Pakete werden so angepasst, dass sie die TCP Verbindung nicht stören (d. H. Es handelt sich um einfache "ACK" -Pakete ohne Daten für sich, sodass das Zielbetriebssystem sie einfach ignoriert).


Bearbeiten: Ich stelle fest, dass ich einen Teil der Frage nicht beantwortet habe. Hier geht es: Es gibt kein Risiko. Es gibt nichts zu mildern.

traceroute zeigt die IP-Adressen der Router an, die am Weiterleiten von Paketen beteiligt sind. IP-Adressen sollen nicht geheim sein und sind für Angreifer auf verschiedene Weise ziemlich einfach zu beschaffen (Massenscannen fällt mir ein, aber auch das Durchsuchen von Müllsäcken nach Ausdrucken von Netzwerkkarten - die moderne Art des Recyclings macht das Tauchen in Müllcontainern viel einfacher und einfacher sauberere Aktivität als früher). Ein relativ weit verbreiteter Mythos ist jedoch, dass die Geheimhaltung Ihrer Adressen die Sicherheit gewährleistet. Dementsprechend betrachten viele Systemadministratoren traceroute als schwerwiegenden Verstoß, der so schnell wie möglich behoben und blockiert werden muss. In der Praxis ist dies jedoch alles Quatsch. Wenn die Offenlegung einiger interner IP-Adressen ein großes Problem darstellt, bedeutet dies, dass Ihr Netzwerk zum Scheitern verurteilt ist.

Die Sorge um die Geheimhaltung von IP-Adressen ist wie das Auslösen eines Plans zur Reaktion auf größere Vorfälle, da ein Außenstehender das Menü in der Cafeteria des Unternehmens gelernt hat. Es ist unverhältnismäßig. Zugegeben, präzise und umfassende Kenntnisse der Netzwerkinfrastruktur können nur Angreifern helfen. aber nicht in wirklich bedeutenden Mengen. Es lohnt sich nicht, IP-Adressen geheim zu halten, um die Konnektivität durch übermäßiges Filtern zu unterbrechen (zum Beispiel ist das Blockieren des ICMP "Fragmentierung erforderlich" für jeden Client hinter einer ADSL + PPPoE-Verbindung tödlich).

44
Thomas Pornin

Sowohl Traceroute als auch Tcptraceroute arbeiten nach demselben Grundprinzip:

  1. Senden Sie ein Paket mit einer wirklich niedrigen TTL
  2. Sehen Sie, wer einen ICMP zurücksendet TTL überschritten bei TTL Ablauf)
  3. Wenn der Send-Backer das Ziel ist, stoppen Sie
  4. Andernfalls erhöhen Sie TTL um 1) und kehren Sie zu Schritt 1 zurück

Der einzige Unterschied besteht darin, welcher Pakettyp gesendet wird (Standard ist UDP unter Linux, ICMP unter Windows und TCP wird immer beliebter). Alle generieren ICMP-Fehlermeldungen von hilfreichen Geräten dazwischen, wenn TTL abläuft.

  • Daher ist das UDP/ICMP/TCP-Paket nichts Besonderes, das es traceroute-y macht. Das Flag SYN wird verwendet, da intervenierende Geräte wie Firewalls häufig SYN zulassen, aber andere TCP - Pakete blockieren, die nicht Teil einer hergestellten Verbindung sind.
  • Es werden die gleichen Informationen wie bei der regulären Traceroute bereitgestellt, es ist jedoch möglicherweise wahrscheinlicher, dass sie in der regulären Traceroute zugelassen werden. Nehmen Sie eine Website wie Amazon.com. UDP-basierte Traceroute stoppt bei 205.251.248.5, was wahrscheinlich eine Art Firewall ist. Die TCP-basierte Traceroute zu Port 80 - von der wir wissen, dass "Amazon.com" dies zulässt - geht einen Schritt weiter zu 72.21.194.212.
  • Traceroute kann verringert werden, indem Pakete nicht zugelassen werden oder indem ICMP-Antworten zurück blockiert werden. Ersteres ist der Grund, warum tcptraceroute populärer geworden ist; Jede Site, die Konnektivität auf mindestens einem TCP - Port - wie eine Website - zulässt, lässt Pakete zu. Das Blockieren von ICMP-Antworten hat den Nebeneffekt, dass die erforderlichen Grundlagen für IP-Netzwerke verletzt werden, was leicht unhöflich ist zu kontraproduktiv.

nmap -sS führt einen SYN-Scan durch, bei dem nur SYN-Pakete gesendet werden. Es wird jedoch keine Traceroute an und für sich durchführen. Sie müssen es mit der Option --traceroute kombinieren (und dann scannen Sie wahrscheinlich immer noch und führen nicht nur eine Traceroute durch. Wenn Sie also verfolgen möchten, empfehle ich tcptraceroute oder traceroute -T wenn Ihr Betriebssystem dies unterstützt).

7
gowenfawr
  • Wie wird das Syn-Flag in TCP verwendet, um eine Traceroute-ähnliche Funktionalität zu erreichen (wenn ICMP deaktiviert ist)?

Jedes IP-Paket löst eine ICMP-Antwort "Time Exceeded" von einem Zwischenrouter aus, wenn der Wert TTL) Null erreicht. Dies kann TCP, UDP, ICMP oder ein anderer sein. Solange dazwischen liegende Router Wenn das Paket weitergeleitet wird, funktioniert die Ablaufverfolgung. Herkömmliche Traceroute verwendet ICMP-Echoanforderungen, dies ist jedoch nur eine Konvention.

Beachten Sie, dass die Frage, ob ICMP auf dem Zielserver zulässig ist oder nicht, völlig irrelevant ist, da es die Zwischenrouter sind, die die Zeitüberschreitung zurückgeben Antworten. Das einzige, was Sie möglicherweise verpassen, ist eine Antwort vom endgültigen Zielhost. Bei Traceroute ist dies jedoch die am wenigsten wichtige Antwort, da Traceroute Ihnen die Liste der Zwischenrouter zur Verfügung stellt.

Wenn Sie ein SYN-Flag für das Paket TCP) verwenden, erhalten Sie möglicherweise eine SYN/ACK vom Zielserver oder auch nicht, wenn der Port nicht geöffnet ist oder eine Richtlinie Ihr Paket blockiert Der Zielserver ist am wenigsten wichtig. Sie können genauso gut ein UDP oder eine TCP Fortsetzung) senden, wenn Sie nur an der Hop-Liste interessiert sind.

Einige Router sind so konfiguriert, dass PING-Pakete unterschiedlich behandelt werden. Unterschiedliche Route, unterschiedliche Priorität usw. Wenn Sie stattdessen TCP Pakete verwenden), erhalten Sie möglicherweise unterschiedliche Ergebnisse, die eher auf die Route hinweisen sollten TCP Datenverkehr würde dauern.

  • Welche Informationen können offengelegt werden (oder andere Risiken)?

Nichts, was nicht öffentlich ist. Wenn Ihre Sicherheit davon abhängt, diese Art von Informationen geheim zu halten, sollten Sie sich hinsetzen und die Entscheidungen überdenken, die Sie hierher gebracht haben.

  • Wie kann dies gemildert werden? (Router, Hosts, ... beide?)

Es gibt nichts zu mildern. Natürlich können Sie Ihren Server jederzeit vom Stromnetz trennen, um alle möglichen Probleme zu lösen. Andernfalls sollten Sie vor dem Einsatz einer Minderungsstrategie überlegen, was Sie gewinnen und was Sie aufgeben. In diesem Fall scheint es, dass Sie nichts zu gewinnen haben.

2
tylerl