• 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.

AES Schlüssel aus RAM lesen

Tryndamere

Neu angemeldet

Registriert
23 Juli 2013
Beiträge
49
Hallo Community,

Ich spiele mich gerade mit einer Aufgabe aus der Uni.

Die Problematik:

Ich habe ein Programm vor mir, welches ein beliebiges Geheimnis enthält, welches mit einem AES CBC verschlüsselt ist. Das Ziel ist es das Geheimnis zu bekommen.

Also Programm anwerfen und mir den Memory dumpen und zum Datensegment springen.

Für den Anfang habe ich mir den AES Schlüssel, Geheimnis und IV auf der Konsole ausgeben lassen um es einfacher zu machen für den Anfang.

Mit den Informationen finde ich den IV und das cipher schnell jedoch der AES is Schlüssel ist unauffindbar. Ich habe das ganze Segment durchsucht und nichts diesbezüglich gefunden. Und nein der Schlüssel wird nicht überschrieben oder entfernt

Deshalb 2 Fragen:

1. Meines Verständnisses nach müsste der Key in der Nähe des IV liegen, da erst der Schlüssel und dann der IV generiert werden. Aber wie gesagt da ist nichts. Wo könnte das Teil liegen?

2. Das finden der Informationen mit des Wissens der cipher Texte ist ja nun schnell machbar. Jedoch wenn ich mir den Dump anschaue, dann ist es ohne Verschlüsselung simpel die Daten zu finden, jedoch der AES Dump enthält ja nur "Quatsch". Wie finde ich also ohne das benötigte Wissen den IV, cipher und Key oder ist es ein reines brutforcen alla "Ich weiß der Schlüssel ist so oder so lang, der IV so oder so lang und nun teste alle möglichen Variablen durch.

MfG
 

Kugelfisch

Nerd

Registriert
12 Juli 2013
Beiträge
2.342
Ort
Im Ozean
Im Allgemeinen kannst du tatsächlich nur raten, welche Daten das Programm wo speichert. Ausserdem können die interessanten Daten sowohl im Heap als auch auf dem Stack liegen, und müssen - speziell im Falle des ursprünglichen Schlüssels, der bei AES/Rijndael bloss dazu benutzt wird, um die Rundenschlüssel abzuleiten - nicht unbedingt dauerhaft gespeichert bleiben (allerdings enthalten die Rundenschlüssel sämtliche Informationen des ursprünglichen Schlüssels, vgl. http://www.samiam.org/key-schedule.html). Speziell dann, wenn der Schlüssel auf dem Stack lag, kann er beim nächsten Funktionsaufruf (wenn das Stack-Frame aufgelöst und an derselben Stelle ein neues erstellt wird) überschrieben werden, selbst dann, wenn du das nicht explizit tust.

Die Extraktion der Schlüssels ist in der Regel nur über ein Reverse Engineering der betroffenen Anwendung möglich - setze an der passenden Stelle mit einem Debugger einen Breakpoint, stelle fest, wo der Schlüssel liegt, und lese dann den Stack und/oder den Heap aus. Speziell dann, wenn die Anwendung externe kryptografische Bibliotheken verwendet, bietet sich auch an, entweder mit einem Debugger bei allen Aufrufen dieser Bibliotheken Breakpoints zu setzen, oder die Bibliotheken gegen gepatchte Versionen auszutauschen, welche die übergebenen Schlüssel ausgeben.
 
Oben