zum Inhalt springen
Kontakt

Microsoft Office Word: Dokumentschutz ohne Kennwort entfernen

Cyrill Jabornegg
gelbe Entertaste mit Passwort darauf geschrieben

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=="
/ >
<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==" />
<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.