Wem ist das noch nie passiert? Man hat das Kennwort für eine geschützte Word-Datei vergessen und versucht verzweifelt alle Passwörter aus, die einem gerade einfallen, nur um am Ende hoffnungslos aufzugeben und das Dokument neu aufzusetzen. Dieses Leiden kann beendet werden und zwar auf relativ einfache Art und Weise.
Grundsätzliche Erläuterung
Wie alle Dateien, welche aus Microsoft Office gespeichert werden, werden auch die Word-Dateien (*.docx, *.dotx, *.docm, *.dotm) im OpenXML-Format von Microsoft gespeichert. Dort werden alle Daten hinterlegt, welche das Dokument betreffen bzw. darin enthalten sind. Also muss auch dieses Passwort dort hinterlegt werden. Natürlich wird das Kennwort nicht im Klartext geschrieben, wie heute üblich wird das Passwort als Hash gespeichert. Unser Ziel ist es also nicht, das Passwort herauszufinden, sondern den Dokumentschutz direkt über OpenXML aufzuheben ohne die Zeichenfolge zu kennen.
Vorgehen
Zugriff auf XML-Parts des Dokumentes
Den Office-Dateitypen liegen mehrere XML-Files zugrunde (OpenXML). Um diese sehen oder bearbeiten zu können muss der Dateityp von „.docx“ etc. in „.zip“ umbenannt werden.
Danach kann man das ZIP-Archiv öffnen und sieht die verschiedenen XML-Files, die das Word-Dokument bilden.
XML-Datei anpassen
Uns interessiert die Datei „settings.xml“, welche sich im Unterverzeichnis „/word“ des ZIP-Archivs befindet. Dort ist das XML-Tag „w:documentProtection“ auszumachen, welches sich relativ am Anfang des XML-Dokuments befindet. Der Inhalt dieses Tags sieht wie folgt aus:
<w:documentProtection w:edit="readOnly" w:enforcement="1" w:cryptProviderType="rsaAES" w:cryptAlgorithmClass="hash" w:cryptAlgorithmType="typeAny" w:cryptAlgorithmSid="14" w:cryptSpinCount="100000" w:hash="V8FLYrsGntwjjcqG5lSU9wapx/j//jKjc7jjQg65YL07JdmA2mZqAoWk8bq5a1W/bGglNIDyShaw/DgaUkeD5g==" w:salt="jaPO3kwA4AbuDHpr+eZDYw==" />
Das fett markierte XML-Attribut ist jenes, welches für uns den Ausschlag gibt. Dort müssen wir den Wert von 1 auf 0 stellen.
Das ist alles, was zu tun ist! Der Hash-Code im „w:hash“-Attribut ist hier gar nicht relevant.
Abschliessen
Zum Abschluss nun das ZIP-Archiv wieder in den vorherigen Dateityp umbenennen (hier „docx“). Anschliessend kann das Dokument wieder geöffnet werden, ohne dass ein Dokumentschutz vorhanden ist. Das alte Kennwort ist somit völlig unwichtig.
Hinweis
Dieser Artikel dient lediglich zu Ausbildungszwecken und zur Erleichterung der Arbeit von Microsoft Office Word-Usern und soll keinesfalls dazu genützt werden, um sich in irgendeiner Art zu bereichern oder Schaden anzurichten.