STRACE und HTTPREPLAY
Immer mehr Kommunikation wird über verschlüsselte Verbindungen abgewickelt. TLS und SSL sind hier die Schlagworte. "Sicher und Verschlüsselt" entzieht einem Admin natürlich auch einige Optionen der Fehlersuche. Es kommt aber doch vor, dass auch die Nutzdaten dieser Verbindungen analysiert werden müssen. es gibt eigentlich drei Möglichkeiten, diese Analyse durchzuführen.
-
NetMon 3 und
WireShark
Beide Programme können SSL-Verbindungen analysieren, wenn man ihnen den "Private Key" des Servers bereit stellt. Voraussetzung ist aber, das auch der Key Exchange mitgeschnitten wurde. für den Einsatz mit WireShark muss eine unter Windows als PFX-Datei exportierter Key mit OpenSSL erst noch in das PEM-Format konvertiert werden - Reverse Proxy
Die meisten Firmen werden ihre Webserver und Webservices zumindest aus dem Internet über einen Reverse Proxy (z.B. TMG und UAG) veröffentlichen. Sofern das Backend auch einen Zugriff ohne SSL erlaubt (offloading), kann man so die Daten auf dem Teilstück zwischen Proxy und Webserver ablauschen. Das funktioniert aber nur für HTTPS aber nicht für die bei Lync interessanten SIP-Verbindungen über Port 5061 (TLS) -
Fiddler
Wenn man auf dem Client einen Proxy einbinden kann, dann ist Fiddler eine interessante Option. Er integriert sich sehr elegant in Windows, indem er als Proxy den Windows Proxy auf sich umstellt und quasi als "Man in the Middle" alle Pakete sieht. Fiddler kann auch HTTPS analysieren, indem er "on the fly" ein passendes Zertifikat erstellt und damit die Verbindung aufbricht und die Anforderungen schön anzeigt. Allerdings gibt es besonders in Verbindung mit NTLM als Anmeldeverfahren hier das Problem, dass Fiddler per Default einen "Proxy-Via" addiert, der dann NTLM bricht.
Aber damit sind die Möglichkeiten eines Administrators noch nicht erschöpft, wenn sowohl der Internet Explorer als auch viele andere Programme nutzen die gleiche Schnittstelle, um per TLS Daten zu senden und zu empfangen.
Aufzeichnen mit STRACE
Das Hilfsmittel dazu ist STRACE, welches einen Debugge für die IIS Socket-Schnittstelle ist und als freier Download von Microsoft erhältlich ist:
STRACE is a socket/SSL
tracer designed to generate LOG für Internet
Explorer
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=7643
Nach der Installation wird das Programm per Kommandozeile aus einer CMD-Box aufgerufen. Folgender Aufruf startet z.B. den Communicator mit aktiviertem STRACE:
C:\Program Files (x86)\STRACE>WITHDLL.EXE /d:STRACE.DLL "c:\Program Files (x86)\ Microsoft Lync\communicator.exe"
In der DOS-Box kann man dann erst mal nicht viel sehen:
Nachdem der Fehler oder der Zugriff erfolgt sein könnte, beenden Sie wieder das gestartet Programm. Die Ausgaben landen aber auf ihrem Desktop in einer Datei:
Die Datei ist als Textdatei auch mit Notepad einsehbar aber nicht wirklich einfach zu analysieren.
Auswerten mit HTTPREPLAY
Interessant wird das nun mit dem Programm HTTPREPLAY, welches ebenfalls kostenfrei bei Microsoft herunter geladen werden kann
HTTPREPLAY is a SOCKTRC
Plugin allowing to analyze and replay HTTP
traffic
https://www.microsoft.com/en-us/download/details.aspx?id=41566
HTTPREPLAY v2.1 includes both updated version of
STRACE and HTTPREPLAY tools with support for
Internet Explorer 11. STRACE is a socket/SSL
tracer that is based on the "Detours" utility
from Microsoft Research. The tool has been
specificaly designed to generate HTTP traces for
Internet Explorer but it can be used with many
other applications. HTTPREPLAY allows to
generate HTTP report from STRACE or Fiddler
(*.SAZ) trace. HTTPREPLAY can also be used to "replay"
a full navigation scenario from a previously
taken trace.
Nach der Installation liegen die passenden Programme im Verzeichnis "C:\Program Files (x86)\HTTPREPLAY\" und können z.B. wie folgt aufgerufen werden
HttpReplay.cmd <Pfad\Dateiname_tracedatei.log> /ShowFullResponse
Hier ein Beispielaufruf:
Danach öffnet sich sofort der Internet Explorer, welcher in einer HTML-Datei die Auswertung anzeigt. Zudem bleibt das Programm gestartet und wenn Sie im Browser nun den "proxy" auf localhost:81 stellen, können Sie sogar auf die URL klicken und die Sitzung "nachspielen. Hier reicht es aber erst mal aus zu sehen, welche URLs angesprochen werden und wie die Antworten aussehen.
Damit ist schon sehr gut ersichtlich, mit welchen Methoden der Client eine URL anspricht und welche Rückmeldung der Server mitliefert. Schade ist nur, dass HTTPREPLAY die Daten der Anfragen nicht komplett anzeigt, sondern abschneidet.
Weitere Links
- NetMon 3
- WireShark
- Fiddler
- HTTPReplay
http://blogs.technet.com/b/iede/archive/2010/06/08/httpreplay.aspx - STRACE ( Socket Trace )
http://blogs.technet.com/b/iede/archive/2010/06/08/strace-socket-trace.aspx - Introduction to
STRACE/HTTPREPLAY support tools
http://blogs.msdn.com/b/emmanubo/archive/2007/06/04/introduction-to-strace-httpreplay-support-tools.aspx - How to use Fiddler and HTTP
replay to have an offline copy
of your site
http://blogs.msdn.com/b/deviations/archive/2010/06/22/how-to-User-fiddler-and-http-replay-to-have-an-offline-copy-of-your-site.aspx