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 zu erhalten, 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.

Es gibt noch andere Tools wie "Charles Proxy", "HTTP Toolkit" oder MITMProxy", die ähnliche Funktionen bereitstellen.
Auch die Browser selbst haben mittlerweile nachgerüstet:
Capture a browser trace for troubleshooting
https://docs.microsoft.com/en-us/azure/azure-portal/capture-browser-trace

Achtung: Wenn Sie auf dem Webserver die Funktion Extended Protection einsetzen, kann Fiddler nicht mehr reinschauen.

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. Hier ist aber die manuelle Konfiguration der anderen Clients auf dem LAN möglich, so dass Sie auch deren Zugriffe sehen können. Wenn diese anderen Clients dann auch noch der Fiddler "DO NOT TRUST"-CA vertrauen, dann können Sie sogar HTTPS-Verkehr mitschneiden.

Achtung: Skype for Business u.a.
Wenn Sie die Zugriffe von bestimmten Clients nicht sehen, dann kann es an der "automatischen Erkennung" liegen. So ignoriert der Skype for Business Client einen statisch eingetragenen Proxy erst mal und versucht eine "bessere" Antwort per WPAD und Co zu finden. Nur wenn das nicht geht, nutzt er den hinterlegten Proxy

Entfernen Sie einfach die Checkbox bei "automatisch erkennen" und schon sehen Sie z.B. auch die EWS-Anfragen der Clients

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 Root-Zertifikat 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:

Office 365

Die meisten Dienste in der Microsoft Cloud nutzen HTTPS und damit ist Fiddler mein primäres Tool, wenn etwas nicht funktioniert oder ich etwas genauer hinter die Kulissen schauen will.

Mittlerweile gibt es von Microsoft sogar ein Add-on, um Office 365 Pakete gezielt auseinander zu nehmen. Genau genommen ist es ein Mitarbeiter von Microsoft:

Schon lustig, dass das Exchange TeamBlog dessen persönliches GIT-Repository verlinkt, darüber bloggt und Kurz-URLs einrichtet.

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.

Exchange Online Extension

Ende 2018 hat Microsoft eine Extension für Fiddler veröffentlicht die Requests und Antworten hinsichtlich Exchange Online noch umfangreicher analysieren kann. Microsoft beschreibt die grundlegenden Funktionen sehr schön auf dem eigens veröffentlichten Blog

Sie müssen natürlich zuerst Fiddler installieren und damit Sie HTTPS-Verbindungen decodieren können, müssen weitere Einstellungen erfolgen

Download
https://aka.ms/EXOFiddlerExtension

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.

Achtung mit ADFS

Achtung bei der Verwendung von Fiddler mit ADFS oder anderen Systemen, die z.B. HSTS einsetzen oder andere zusätzliche Verifikationen machen oder gar Client-Zertifikate einsetzen.

If you have ADFS configured for a federated domain, then be sure to set Fiddler to Skip decryption for the ADFS sign in URL defined in your deployment before capturing SfB Sign in. This is set in the HTTPS tab in Fiddler options. If you miss this step, then sign in will fail as ADFS default security for enhanced token protection will detect the Fiddler HTTPS certificate and prevent the authentication process from occurring.
Quelle. https://techcommunity.microsoft.com/t5/Skype-for-Business-Blog/Hybrid-Modern-Authentication-for-Skype-for-Business/ba-p/134751

Weitere Links