Passwörter im Tastaturpuffer

| 1 Kommentar

Das BIOS eines PC enthält auch eine einfache Routine zur Abfrage der Tastatur. Die Tasteneingaben werden in einem Ringpuffer gespeichert, der Platz für etwa 16 Zeichen bietet. Wie Jonathan Brossard in einem Aufsatz und einer Präsentation auf der DEFCON 16 gezeigt hat, wird der Puffer oftmals nicht sofort nach dem Auslesen gelöscht. Unter Umständen lassen sich deshalb in einem Speicherabbild die Passwörter für den Startvorgang oder eine Festplattenverschlüsselung finden.

Der Aufsatz von Jonathan Brossard enthält eine detaillierte Beschreibung der technischen Grundlagen und zahlreiche Beispiele. Ich beschränke mich hier deshalb auf die Ermittlung des BIOS-Startpasswortes. Im folgenden Beispiel habe ich im BIOS das Passwort "1234supe" eingestellt. Nach einem Neustart und der Eingabe des Passwortes habe ich dann ein Speicherabbild erstellt. Die dekodierte BIOS Data Area enthält Informationen über die Position und den Füllstand des Tastaturpuffers. Das Passwort ist gut erkennbar:

BIOS Data Area mit Passwort

In der Detailansicht des Tastaturpuffers wird deutlich, dass für gewöhnliche Zeichen jeweils zwei Bytes abgelegt werden: der ASCII-Code des Zeichens und der beim Drücken der Taste erzeugte Scancode. Für das Zeichen "1" sind das zum Beispiel der ASCII-Wert 0x31 und der Scancode 0x02. Allerdings gibt es auch Ausnahmen. Für die Eingabetaste (Return) wird so nur der Scancode hinterlegt. Außerdem berücksichtigt dieser Mechanismus natürlich nicht das deutsche Tastaturlayout. Es ist die Aufgabe des Betriebssystems, die Zeichen entsprechend umzusetzen.

Der Tastaturpuffer im Detail

Leider enthalten längst nicht alle Abbilder die Speicherseite mit den Daten des BIOS. In Crash Dumps und mittels LiveKd erstellten Abbildern fehlt diese Speicherseite leider immer. Bei win32dd von Matthieu Suiche lässt sie sich mit der Option "-t 1" in das Abbild aufnehmen.

Für eigene Experimente stelle ich gerne das Template für den 010 Editor (Abbildung oben) und ein Plugin für das Speicheranalyse-Framework Volatility bereit.

1 Kommentar

Wird dieser Tastaturpuffer auch innerhalb des Betriebssystems genutzt oder bleiben die Inhalte (Beispiel Festplattenverschlüsselung) auch noch über den Boot des OS erhalten?

Archiv

Impressum

Dieses Blog ist ein Projekt von:
Andreas Schuster
Im Äuelchen 45
D-53177 Bonn
impressum@forensikblog.de

Copyright © 2005-2012 by
Andreas Schuster
Alle Rechte vorbehalten.
Powered by Movable Type 5.12