Lync 2013 Mobile App Autodiscover

Hallo zusammen,

Um einem Fehler beim Login meiner Android Lync 2013 Mobile App zu finden. habe ich auf dem Lync Frontent Server Wireshark installiert um TLS Traffic zu entschlüsseln.

Hier präsentiere ich euch, was ich während meinem Reverse Engineering herausgefunden habe.

Zu diesem Test

  • HTC Android 4.2.2 Lync 2013 App (Version 5.4.1106.0)
  • Die App ist über WLAN mit dem internen Netzwerk verbunden
  • Intern zeigen die DNS Records für "lyncdiscoverinternal.icewolf,ch" und "lyncdiscover.icewolf,ch" auf den Lync 2013 Frontend Pool

Lync 2013 Mobile App Autodiscover

Als erstes wird der Autodiscover Webservice aufgerufen. Kleiner Hinweis nebenbei User-Agent: ACOMO

https://icesrv07.corp.icewolf.ch/autodiscover/autodiscoverservice.svc/root/user?originaldomain=icewolf.ch

Der Server gibt ein "401 Unauthorized" zurück.

Jedoch steht im HTTP Header "X-MS-WebTicketURL" die URL des WebTicket Webservices

X-MS-WebTicketURL: https://icesrv07.corp.icewolf.ch/WebTicket/WebTicketService.svc

Nun verbindet sich die die App mit einem SOAP Request auf den Webticket Webservice

POST /webticket/webticketservice.svc/mex HTTP/1.1

Der Server Antwortet mit "200 OK"

Nun verbindet sich die App mit einem weiteren SOAP Request auf den Webticket Service (diesesmal ohne /mex)

POST /webticket/webticketservice.svc HTTP/1.1

Der Server Antwortet darauf mit einem "401 Unauthorized"

Nun folgt eine NTLM_NEGOTIATE von der APP

Der Server Antwortet mit einem NTLM_CHALLENGE

Nunt kann die APP sich mit NTLM am Webserver anmelden und sendet einen SOAP Request

POST /webticket/webticketservice.svc HTTP/1.1

Der Server antwortet mit einem "200 OK" und gibt dabei eine SOAP Response mit der Webticket ID (cwt)

Nun ruft die App nochmals den Autodiscover Webservice auf, und sendet die WebTicketID im HTTP Header "X-MS-WebTicket" mit

GET /autodiscover/autodiscoverservice.svc/root/user?originaldomain=icewolf.ch HTTP/1.1

Der Server antwortet mit einem "200 OK" und gibt dabei eine XML vom MIME Type "application/vnd.microsoft.rtc.autodiscover" zurück

Das XML sieht dann so aus. Darin sind alle relevanten URL's enthalten.

Weitere Informationen:

Grüsse
Andres Bohren