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:
- IIS Extended Protection
- Exchange Extended Protection
- Configure Fiddler Classic to
Authenticate to CBT-Protected
Server
https://docs.telerik.com/fiddler/configure-fiddler/tasks/authenticatewithcbt - Decrypting HTTPS-protected
traffic
http://www.fiddler2.com/Fiddler/help/httpsdecryption.asp - Fiddler Beispiele
http://www.fiddler2.com/Fiddler/Dev/ScriptSamples.asp - Fiddler Filter
http://www.fiddler2.com/fiddler2/help/Filters.asp - 254396 PRB: Cannot Connect Through Proxy Server that Requires NTLM Authentication
- Using Fiddler to capture
SOAP messages between the CS2007
Web services and clients
http://blogs.msdn.com/b/commerce/archive/2006/12/03/using-fiddler-to-capture-soap-messages-between-the-cs2007-web-services-and-clients.aspx - HTTP/1.1 401 unauthorized
mit Fiddler
http://blogs.technet.com/b/sieben/archive/2008/11/20/http-1-1-401-unauthorized-mit-fiddler.aspx
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.
- Introducing the Exchange Online Fiddler
Extension
https://blogs.technet.microsoft.com/exchange/2018/12/11/introducing-the-exchange-online-fiddler-extension/ - EXO Fiddler extensiona
https://aka.ms/EXOFiddlerExtension
https://GitHub.com/jprknight/EXOFiddlerExtension/releases - Wiki zu den Extensiona
https://aka.ms/EXOFiddlerExtensionWiki
https://GitHub.com/jprknight/EXOFiddlerExtension/wiki - Bekannte Issues
https://aka.ms/EXOFiddlerExtensionIssues
https://GitHub.com/jprknight/EXOFiddlerExtension/issues
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
- Introducing the Exchange Online Fiddler
Extension
https://techcommunity.microsoft.com/t5/exchange-team-blog/introducing-the-exchange-online-fiddler-extension/ba-p/608788
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
- Introducing the Exchange Online Fiddler
Extension
https://techcommunity.microsoft.com/t5/exchange-team-blog/introducing-the-exchange-online-fiddler-extension/ba-p/608788 - Issuetracker in GitHub
https://aka.ms/EXOFiddlerExtensionIssues
https://GitHub.com/jprknight/EXOFiddlerExtension/issues - Wiki zur Extension in GitHub
https://aka.ms/EXOFiddlerExtensionWiki
https://GitHub.com/jprknight/EXOFiddlerExtension/wiki
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
- HTTP Chunked
- TCP/HTTP Session Timeout und 120 Sekunden
- HTTP Authentication
- Test-TCPTimeout
- Extended Protection
- Bearer Decoding
-
Capture a browser trace for troubleshooting
https://docs.microsoft.com/en-us/azure/azure-portal/capture-browser-trace - Fiddler
www.fiddlertool.com/
https://www.telerik.com/fiddler
https://docs.telerik.com/fiddler/configure-fiddler/tasks/configurefiddler - Updated Fiddler OAuth Inspector
https://learn.microsoft.com/en-us/archive/blogs/kaevans/updated-fiddler-oauth-inspector -
Charles Proxy
https://www.charlesproxy.com/ -
mitmproxy is a free and open source interactive HTTPS
proxy.
https://mitmproxy.org/ -
PolarProxy
PolarProxy is a transparent TLS proxy that outputs decrypted TLS traffic as PCAP files.
Polarproxy https://www.netresec.com/?page=PolarProxy
Decrypting TLS traffic with PolarProxy https://blog.apnic.net/2021/08/03/decrypting-tls-traffic-with-polarproxy/ -
HTTP Toolkit
https://httptoolkit.tech/ -
Proxomitron
Universeller Proxy, auch mit Filter und Debug Funktionen -
NetMon 3
Ethernet Pakete mitschneiden (nur unterschlüsselt) -
Wednesday, June 19, 2013 Configure Fiddler für Lync
Mobile sign-in troubleshooting
http://www.lynclog.com/2013/06/configure-fiddler-for-lync-mobile-sign.html - Capture Traffic from iOS Device
http://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/ConfigureForiOS - mitmproxy is a free and open source interactive HTTPS proxy
https://mitmproxy.org/ - How To: Use mitmproxy to read and modify HTTPS traffic
https://blog.heckel.io/2013/07/01/how-to-use-mitmproxy-to-read-and-modify-https-traffic-of-your-phone/ - CERT Tapioca is a utility for testing mobile or any other
application using MITM techniques
https://GitHub.com/CERTCC/tapioca