A Python tool and library for decrypting MS Office files with passwords or other secrets
Project description
msoffcrypto-tool
msoffcrypto-tool (formerly ms-offcrypto-tool) is a Python tool and library for decrypting encrypted MS Office files with password, intermediate key, or private key which generated its escrow key.
Early PoC version: https://github.com/nolze/ms-offcrypto-tool/tree/v0.1.0
Install/Uninstall
Install
pip install git+https://github.com/nolze/msoffcrypto-tool
Uninstall
pip uninstall msoffcrypto-tool
Examples
As a CLI tool (with password)
msoffcrypto-tool -p Passw0rd encrypted.docx decrypted.docx
As a library
Password and more key types are supported with library functions.
import msoffcrypto
file = msoffcrypto.OfficeFile(open("encrypted.docx", "rb"))
# Use password
file.load_key(password="Passw0rd")
# Use private key
# file.load_key(private_key=open("priv.pem", "rb"))
# Use intermediate key (secretKey)
# file.load_key(secret_key=binascii.unhexlify("AE8C36E68B4BB9EA46E5544A5FDB6693875B2FDE1507CBC65C8BCF99E25C2562"))
file.decrypt(open("decrypted.docx", "wb"))
Supported encryption methods
- ECMA-376
- MS-DOCX (OOXML) (Word 2007-2016)
- MS-XLSX (OOXML) (Excel 2007-2016)
- Office Binary Document RC4
- MS-DOC (Word 97-2004)
- MS-XLS (Excel 97-2004)
- Office Binary Document RC4 CryptoAPI
- XOR Obfuscation
- Word 95 Encryption
PRs welcome!
Todo
- Add tests
- Support decryption with passwords
- Support older encryption schemes
- Add function-level tests
- Add API documents
- Publish to PyPI
- Add decryption tests for various file formats
- Merge to more comprehensive projects handling MS Office files (such as oletools?) if possible
References
- "Backdooring MS Office documents with secret master keys" http://secuinside.com/archive/2015/2015-1-9.pdf
- [MS-OFFCRYPTO] Agile Encryption https://msdn.microsoft.com/en-us/library/dd949735(v=office.12).aspx
- LibreOffice/core https://github.com/LibreOffice/core
- LibreOffice/mso-dumper https://github.com/LibreOffice/mso-dumper
- wvDecrypt http://www.skynet.ie/~caolan/Packages/wvDecrypt.html
Alternatives
- herumi/msoffice https://github.com/herumi/msoffice
- DocRecrypt https://blogs.technet.microsoft.com/office_resource_kit/2013/01/23/now-you-can-reset-or-remove-a-password-from-a-word-excel-or-powerpoint-filewith-office-2013/
Use cases and mentions
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file msoffcrypto-tool-4.1.2.tar.gz
.
File metadata
- Download URL: msoffcrypto-tool-4.1.2.tar.gz
- Upload date:
- Size: 8.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
e854087b22d378f4763aca050f56b5577f8fba1d761e7b054a7589762e521f04
|
|
MD5 |
3611b40c15bd1163c409095ae9dc71a0
|
|
BLAKE2b-256 |
e5c2bd71f196bf6b0a6c4a8c84fac59d1b0c78d20cbe7ab607eedde4962634ad
|