Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
a71dbe9
Removing win32crypt dependecy for full Linux support
blurbdust Oct 17, 2024
668d2ba
bugfixes
mabie Oct 23, 2024
097fde9
removed the automatic formatting from linters
mabie Oct 23, 2024
ce195fc
tokenize * char in sccm_base_url and check for None strings
matcluck Oct 30, 2024
fab2738
change el to element
matcluck Oct 30, 2024
06edde1
Added hexdump to requirements
emilyastranova Dec 3, 2024
d3c7356
Merge pull request #3 from emilyastranova/main
blurbdust Dec 3, 2024
926112a
Added error handling for no PXE in DHCP response
emilyastranova Dec 10, 2024
7e644a9
Merge pull request #2 from matcluck/main
blurbdust Dec 11, 2024
22f420d
Merge pull request #1 from mabie/main
blurbdust Dec 11, 2024
8db818f
Merge pull request #4 from emilyastranova/main
blurbdust Jan 6, 2025
c5d14a0
commit to push
blurbdust Feb 7, 2025
ef0d13e
Adding back previous pull request
blurbdust Feb 7, 2025
e29c7bf
quick updates
blurbdust May 6, 2025
2ab5dc0
Adding #5 without subprocess
blurbdust May 6, 2025
a5103cf
Cleanup last of warnings
blurbdust May 6, 2025
cb65f4d
fix spacing
blurbdust May 6, 2025
23a1148
Remove urllib warning like in #5
blurbdust May 6, 2025
13b2b91
Add .gitignore like in #5
blurbdust May 6, 2025
70c03e8
Update requirements.txt
blurbdust May 19, 2025
6d21293
Switching to dynamic hash and checking algo used for decryption
blurbdust Jun 4, 2025
0304201
Add AES256 support to credential decryption
garrettfoster13 Nov 26, 2025
9808cf3
Merge pull request #7 from garrettfoster13/main
blurbdust Dec 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
*.bcd
*.var
*.pfx
output.crt
output-key.key
39 changes: 29 additions & 10 deletions media_variable_file_cryptography.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,31 +41,50 @@ def aes_des_key_derivation(password):

return b0_sha1 + b1_sha1

def aes128_decrypt(data,key):
def aes128_decrypt(data,key,iv=b"\x00"*16):

aes128 = AES.new(key, AES.MODE_CBC, b"\x00"*16)
aes128 = AES.new(key, AES.MODE_CBC, iv)
decrypted = aes128.decrypt(data)
return decrypted.decode("utf-16-le")

def aes128_decrypt_raw(data,key):
def aes128_decrypt_raw(data,key,iv=b"\x00"*16):

aes128 = AES.new(key, AES.MODE_CBC, b"\x00"*16)
aes128 = AES.new(key, AES.MODE_CBC, iv)
decrypted = aes128.decrypt(data)
return decrypted

def _3des_decrypt(data,key):
def aes256_decrypt(data,key,iv=b"\x00"*16):

_3des = DES3.new(key, DES3.MODE_CBC, b"\x00"*8)
aes256 = AES.new(key, AES.MODE_CBC, iv)
decrypted = aes256.decrypt(data)
return decrypted.decode("utf-16-le")

def aes256_decrypt_raw(data,key,iv=b"\x00"*16):

aes256 = AES.new(key, AES.MODE_CBC, iv)
decrypted = aes256.decrypt(data)
return decrypted

def _3des_decrypt(data,key,iv=b"\x00"*8):

_3des = DES3.new(key, DES3.MODE_CBC, iv)
decrypted = _3des.decrypt(data)
return decrypted.decode("utf-16-le")

def _3des_decrypt_raw(data,key):
def _3des_decrypt_raw(data,key,iv=b"\x00"*8):

_3des = DES3.new(key, DES3.MODE_CBC, b"\x00"*8)
_3des = DES3.new(key, DES3.MODE_CBC, iv)
decrypted = _3des.decrypt(data)
return decrypted

def read_media_variable_file_header(filename):
media_file = open(filename,'rb')
media_data = media_file.read(40)
return media_data
media_data = media_file.read(40).hex()
hash_type = ""
if media_data[32:36] == "0e66":
hash_type = "aes128$"
if media_data[32:36] == "1066":
hash_type = "aes256$"
if media_data[32:36] == "0366":
hash_type = "3des..$"
return hash_type + media_data
Loading