• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

HTTPS Abfragen in einem Spiel entschlüsseln

b0x

Neu angemeldet

Registriert
28 Aug. 2016
Beiträge
1
Hallo,

ich möchte anhand von Project Cars das entschlüsseln von HTTPS probieren. Das Spiel hat globale Bestenlisten und diese werden per TLS 1.2 abgefragt.
Ich müsste es entschlüsseln und dahinter kommen, um selber Abfragen machen können, beispielsweise für eine kleine Webanwendung.
Dazu habe ich es schon mit verschiedenen Tools probiert, Microsoft Message Analyzer und Wireshark zeigen es verschlüsselt an, wenn ich aber über Fiddler gehe oder den Fiddler MITM Proxy (der HTTPS sogesehen entschlüsselt) in Message Analyzer benutze, fängt der Proxy genau diese Abfrage einfach nicht auf (die ganzen Steamsachen vom Spiel hingegen schon).
Hier ein paar Screenshots um zu verdeutlichen:

Project Cars Bestenliste:
pcarslb.png

Microsoft Message Analyzer, die verschlüsselte Message (nehme ich zumindest an):
msmesg.png

Ich habe leider über solche Verschlüsselung nicht so viel Ahnung; ich programmiere im Beruf und muss privat immer mit Zuschauen wie kein Entwickler auch nur irgendwas rausgibt, von daher wollte ich es hier mal testen.
Kann mir jemand helfen? :)
 

alter_Bekannter

N.A.C.J.A.C.

Registriert
14 Juli 2013
Beiträge
4.823
Ort
Midgard
Da Verschlüsselung knacken keine Option sein dürfte musst du an den Key kommen in dem Fall müsstest du ihn aus dem Spiel bekommen.

MitM kannst du natürlich noch probieren aber wenn das nicht klappt wirds vermutlich zu aufwändig. Als erstest guck mal mit Wireshark um was für Verbindunge es überhaupt geht.
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
Da Verschlüsselung knacken keine Option sein dürfte musst du an den Key kommen in dem Fall müsstest du ihn aus dem Spiel bekommen.

Mal in den Raum geworfen, warum nicht knacken/entschlüsseln... im "Grunde" (ja ich weiß das klingt sehr überheblich... und ist nicht ganz so einfach wie ichs gerade schildere) muß man das Spiel nur in einem Debugger bekommen... und wenn man das hinbekommen hat, die Routine die die Daten entschlüsselt/verschlüsselt/ bzw. den Key aufbaut nachempfinden und dort ansetzen, kurz bevor der Request an den/die Server gesendet wird.

Aber eine freundlich gemeinter Tip hierzu:
Aber mal fern davon ab, ich glaube nicht das der Hersteller das lustig finden würde wenn du deren Datenpipeline über eine dritte Stelle abgreifst und das im Web publik machst, wenn du das für dich privat machst, solltest du aber keine Probleme bekommen so lange du die Server nicht mit Anfragen zuspamst... das nur mal als Einwand.
 

alter_Bekannter

N.A.C.J.A.C.

Registriert
14 Juli 2013
Beiträge
4.823
Ort
Midgard
Wenn man das könnte wäre es einfacher die Daten einfach zu kopieren bevor sie verschlüsselt werden. Deswegen ist das keine Option.;)

Was eventuell gar keine so dumme Idee ist, wenn man vor hat mit dem Debugger zu arbeiten. Aber ich hatte die Option ausgeschlossen weil es kaum Leute gibt die sowas machen. Falls du welche unter 30 kennst, ich kann ihnen ein Festanstellung (fast) garrantieren. Sofern sie bereit sind Deutschlandweit umzuziehen. Formelle Ausbildungen wären in dem Fall Scheisegal, Einstiegsgehalt ganz okay für die Branche. Englisch ist Pflicht, ansonsten kann der/die meinetwegen den Hauptschulabschluss verkackt haben. Ich weis ja das solche Leute durchaus mal ein paar Autoritätsprobleme haben können die dafür sorgen das man keine Einstiegsposition als Bodenbelag bekommt.

Willkommen im Fachkräftemangel.
 
Zuletzt bearbeitet:

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
@alter_Bekannter:

Du hast Recht, man könnte die Daten auch vorher abgreifen, aber das wäre im Falle des TS wirklich nicht zielführend da er ja mit den Servern der Hersteller kommunizieren will/muß ;)
Also muß er auch nachvollziehen wie die Verschlüsslung funktioniert bzw. die Ver- und Entschlüsslung herausziehen.

Ich hoffe nicht das es hier um Cheating geht irgendwelche Resultate zu übertragen, das wäre doof. ;)
 

alter_Bekannter

N.A.C.J.A.C.

Registriert
14 Juli 2013
Beiträge
4.823
Ort
Midgard
Und genau da hast du es missverstanden. Ich hab nie davon gesprochen irgedndwas zu verändern. Ich sprach von kopieren.

Laut Startpost will er ja auch nur Informationen extrahieren. Er ist lediglich wie ich davon ausgegangen das er es nicht schafft das Programm selbst zu analysieren, deswegen über die Kommunikation.
 

Rakorium-M

NGBler

Registriert
14 Juli 2013
Beiträge
413
Zuerst könntest du einmal genau herausfinden, welche Verbindungen das Programm aufbaut (und wohin). Neben Wireshark könntest du da auch "Process Hacker" oder "Process Monitor" benutzen. Falls die Anfrage dort auch nicht auftaucht: Vielleicht wird das Ergebnis irgendwo zwischengespeichert? Process Monitor sollte dir auch sämtliche geladenen (temporären) Dateien anzeigen können.
Evtl. erkennt dein MITM-Proxy auch nur HTTPS, während die Verbindung aber gar kein HTTP ist (TLS funktioniert für jedes TCP-basierende Protokoll).

Die (bspw. mit Wireshark) gesammelten Daten zu entschlüsseln ist wohl nicht möglich - bei TLS 1.2 (+ brauchbarer Server-Konfiguration) wird "Forward Secrecy" garantiert - sprich du müsstest im Moment des Sendens die Schlüssel abgreifen. Da würde ich eher zu MITM greifen. Das Problem dabei ist allerdings, dass das Programm (hoffentlich) das Server-Zertifikat prüft - du müsstest also ein gefälschtes Zertifikat einbauen. Evtl. reicht es, das Master-Zertifikat deiner MITM-Software in Windows zu importieren.

Wenn die Anwendung die Verbindung zu einer bestimmten Domain herstellt, könntest du auch das ausnutzen, und die Domain kurzerhand per hosts.txt auf 127.0.0.1 weiterleiten lassen. Dann kannst du einen lokalen Server laufen lassen, und eingehende Requests mitloggen. Funktioniert natürlich auch nur, wenn du vorher das Zertifikat-Problem gelöst hast.

Ansonsten könntest du evtl. im Programm-Installationsordner mal nach interessanten Dateien suchen. Gut möglich, dass der interessante Netzwerk-Code in eine dll ausgelagert wurde, an der du dann ansetzen kannst (bspw. eine openssl.dll oder NetworkManager.dll). Wenn du ein Zertifikat-Bundle findest, könntest du ein eigenes Zertifikat anhängen, womit dann MITM wieder möglich wäre.

Wenn das alles nicht funktioniert, musst du wohl beim Programm selber ansetzen. Dabei kann dir allerdings schnell der Kopierschutz in die Quere kommen (Spiele stehen normalerweise nicht auf Debugger und co).
 

virtus

Gehasst

Registriert
24 Apr. 2015
Beiträge
1.689
Ort
AUF DEM MOND
HTTPs zu knacken, insbesondere TLS fällt flach. Das kannst du gleich vergessen. Wenn DU das schaffen könntest, egal ob mit Standard-Tools oder mit eigener Kopfarbeit, dann gäbe es längst keinen Online-Zahlungsverkehr mehr. Warum? Weil dahinter gute Mathematik und geniale Menschen stehen. Von Schwachstellen, die übersehen wurden, wie in SSL 1, 2 und 3 mal abgesehen. Aber auch da glaube ich kaum, dass du dazu in der Lage bist, diese zu ermitteln.

Warum wollt ihr das alle so kompliziert machen?
Die Kommunikation bei HTTPs ist auf dem Transport-Layer verschlüsselt. Den kompletten Quellcode und die Anwendungsdaten des Programms zu analysieren halte ich für unnötig aufwändig. HTTPs (> TLS 1.0) zu brechen halte ich für Turing-Award-verdächtig.

Eigentlich muss er nur herausfinden, welche Anfrage von dem Spiel an den Server geschickt werden. Anschließend kann er diese Anfrage selbst an den Server schicken, um die Antworten zu erhalten, die ihn für seine Anwendung interessieren. Dazu muss man kein TLS knacken und sich nicht durch den Binärcode des Programms kämpfen.

Um zu einer Lösung zu kommen halte ich es für am Einfachsten einen anständigen MITM-Angriff zu fahren und das Client-Server-Protokoll nachzubauen.
Einzige Schwierigkeit ist hierbei das Zertifikat des Gameservers. Da er jedoch administrativen Zugriff auf das Clientsystem hat, braucht er dort nur das Zertifikat einer Fake-Authority zu installieren:
Zunächst zieht er kleinen Server auf, der die Anfragen des Clients mitloggen kann. Der Server wird mit einem Zertifikat, welches von der Fake Authority signiert wurde, ausgestattet. Anschließend muss er den Client manipulieren. Dort wird die Fake Authority installiert, damit das Zertifikat des Logging-Servers künftig als gültig erkannt wird. Zuletzt schreibt er das hosts-File auf dem Clientsystem um, so dass Anfragen an den ursprünglichen Gameserver jetzt auf seinen eigenen Logging-Server weitergeleitet werden.
Auf diese Weise "lernt" er das die Kommunikation des Clients kennen. Er kann diese Anfragen selbst gegenüber dem Server stellen, der die gewünschten Antworten erzeugt und diese kann er wieder seinem Logging-Server beibringen. Das "Client-Anfrage - Server-Antwort - Lernen" - Spiel kann er jetzt solange wiederholen, bis er weiß, wie/ welche Anfragen er gegenüber dem Server stellen muss, bis er die gewünschten Informationen erhält.

So schwer ist das nicht und mit ein wenig Motivation und Fleiß kann man sich den Logging-Server innerhalb weniger Stunden selbst erstellen. Das Ableiten des Client-Server-Protokolls ist dann nur noch eine Fleißaufgabe.
 
Oben