Fiddler

Wie oft fragen Sie sich, warum der ein oder andere Zugriff nicht funktioniert. Wenn Sie dann mit NetMon 3 die Pakete mitschneiden, dann ist es nicht einfach im Datenwust die Anfragen ausfindig zu machen. Wenn die Pakete dann noch per SSL verschlüsselt sind, dann wird es gleich doppelt schwer, dort Einblick zuerhalten, auch wenn es mittlerweile mit Netmon als auch WireShark und dem exportierten privaten Schlüssel möglich ist, die Daten zu decodieren. Wer allerdings Zugriff auf den Client hat, der ist mit Fiddler viel besser dran, da Fiddler wie ein HTTP Proxy agiert.

Funktionsweise

ähnlich wie Proxomitron lauscht Fiddler auf einem lokalen Port. Allerdings ist dessen primärer Einsatz wirklich die Analyse von HTTP/HTTPS-Verbindungen und weniger das Filtern von Werbung oder der elegante Wechsel von upstream-Proxies. Auch wenn Fiddler eigenes Programm ist, so integriert er sich doch smart in die Menüs des Internet Explorer.

Mit dem Start wird auch automatisch der Proxy im Internet Explorer auf "localhost" umgestellt, so dass ihr Browser nun alle Anfragen an Fiddler stellt. Die Funktion ist aber nicht auf den Internet Explorer beschränkt. Wenn Sie Firefox entsprechend umstellen, dann können Sie auch dessen Verkehr mitschneiden. Und wenn Sie in den Fiddler Optionen die passende Checkbox installieren, dann ist Fiddler auch ein Proxy für andere Systeme im LAN.

Da fehlt dann nur noch der DHCP-Server, mit dem Fiddler per WPad anderen Clients seine Dienste unterschiebt. Aber das geht (noch) nicht.

Erste Einblicke

Eigentlich müssen Sie nicht lange warten, denn bei der Menge an Hintergrundprozessen, die heute schon HTTP sprechen, wird es nicht lange dauern, bis der erste Treffer in der Liste links angezeigt wird. Anders als bei Netmon und WireShark stellt eine Zeile aber immer eine abgeschlossene HTTP-Aktion bestehend aus versendetem Paket und der dazu gehörigen Antwort dar. Im rechten Fenster sehen Sie dann horizontal geteilt die Anfragen (oben) und die Antwort unten.

Wenn wenn Sie einen Blick auf die Reiter über den Fenstern werfen, dann können Sie erahnen, dass Fiddler den HTTP-Request und den Response wirklich bis ins letzte auseinander nehmen kann. Und das ganze ist deutlich eleganter als eine Netzwerktrace per Netmon oder WireShark. Ganz besonders hilft mit Fiddler immer, wenn mein Browser mir wieder nur eine "Friendly Errormessage" anzeigt oder ich andere Informationen benötige (z.B. Webserver, Hostheader, Authentication etc.) die alle Browser aber auch das IISLog nicht liefern.

SSL entschlüsseln

Richtig interessant wird der Einsatz von Fiddler aber, wenn es um HTTPS-Verbindungen geht. Fiddler kann als Proxy auch SSL-Verkehre ablauschen, ohne dass man im Besitz des privaten Schlüssels des Webservers sein muss oder andere Vorbereitungen oder Veränderungen auf der Serverseite vorzunehmen sind. Allerdings muss Fiddler dazu etwas in die Trickkiste greifen. Zuerst bildet Fiddler eine Zertifizierungsstelle nach, die weitere Zertifikate ausstellen kann. Diese Stammzertifizierungsstelle wird auf dem lokalen PC als "Vertrauenswürdig" addiert. Das alles passiert ganz einfach, wenn Sie in den Fiddler-Options auch die "Decrypt HTTPS traffic" Option einschalten, welches das RootZertifkat installiert.

Da Fiddler dies nicht ohne die Nutzung von Windows APIs kann, die von Windows natürlich überwacht werden, müssen Sie den Import auch noch mal gesondert bestätigen.

Aber nun "Vertraut" ihr jedem Zertifikat, welches von dieser CA ausgestellt wird. Dies stellt eine "Schwächung" ihres System im Bezug auf die Sicherheit von SSL dar, da Sie nun selbst beim Surfen auf Bankingseiten nicht mehr sicher sein können, dass die Verbindung wirklich bis zum Ende verschlüsselt ist. Einmal "Original und einmal über Fiddler mit aktivierter HTTPS-Entschlüsselung

Wenn Sie später dann mal in ihre Zertifikate schauen, dann werden Sie diese Fiddler-Zertifikate auch sehen:

In einem Browser können sie zumindest bei "Extended Validation"-Zertifikaten den grünen Balken sehen. Aber das sehen sie natürlich nicht bei Programmen wie Elster, Homebanking etc., die nur im Hintergrund SSL sprechen und keine sichtbare Warnung ausgeben. Denn die von der Fiddler-CA ausgestellten temporären Zertifikaten sind für den HTTPS-Client nicht offiziellen Zertifikaten zu unterscheiden. Allerdings prüft Fiddler selbst die Zertifikate, des er von anderen Webseiten empfängt. Wenn ihm dabei etwas "komisch" vorkommt, dann wird hier eine Warnung angezeigt.

Auch diverse Protokollverletzungen meldet Fiddler:

Nachdem diese Vorarbeiten geschafft sind, können wir uns einmal eine "richtige" Kommunikation anschauen.

NTLM unterstützen

Standardmäßig addiert Fiddler in jeden Request einen "Proxy-Via"-Header, was an sich nicht schlecht ist. Dummerweise verhindert diese Änderung die Anmeldung per NTLM, die bei so vielen Diensten aber wichtig ist. Das kann man wohl durch ein Custom Script abstellen, aber diese Information habe ich noch nicht aufbereitet. Dazu muss die Datei CustomRules.js im Verzeichnis %uerprofile%\Documents\Fiddler2\Scripts\ folder geändert werden

Die folgenden Artikel liefern weitere Informationen

Exchange Autodiscover

Auf der MSXFAQ erwarten Sie natürlich zuerst einmal eine auf Exchange bezogene Aufgabenstellung. da kommt mit Autodiscover gerade recht.. Hier sehen Sie einen Verbindungsaufbau von Outlook auf Autodiscover. Natürlich sind im Mitschnitt noch einige andere Verbindungen zu sehen, aber interessant sind hier die Zeile 110, 111 und dann 113. Der erste Zugriff in Zeile 110 wird mit einem 401 (nicht autorisiert) und den möglichen beantwortet, worauf es der Client in Zeile 111 nochmal versucht. Aber auch diesmal gibt es ein 401, weil dem Webserver die Anmeldung noch nicht passt. Da ist alles noch normal, denn erst beim dritten Versuch in Zeile 113 passt die Anforderung. Rechts oben sehen sie dann die Authentifizierung (Kerberos mit meinen Namen und unten dann die Antwort.

Spielen Sie einfach mit den verschiedenen Reitern. Fiddler ist sehr gut im interpretieren der Daten.

Lync Zugriffe

Das zweite Beispiel ist die Nutzung mit dem Lync Client. Lync erlaubt ja das Anzeigen von Mitarbeiterbildern, die diese auf einer Webseite veröffentlichen. Hier am Beispiel des Geschäftsführers von Net at Work, Herrn Ulbrich, der in meinen Lync-Kontakten erscheint und Lync die URL zum Bild per SIP erhalten hat.

Der Lync-Client nutzt ähnlich wie Outlook noch vielmehr Webservices, die per Fiddler natürlich auch gut unter die Lupe genommen werden können.

Viel Spaß beim erkunden, was ihr PC so alles per HTTP macht. Fiddler bekommt nämlich alles zu sehen, was im Prozessraum des Anwenders läuft und auf die  Proxyeinstellungen des Internet Explorers zurück greift.

Weitere Links