• XSS.stack #1 – первый литературный журнал от юзеров форума

Ищу способ как автоматизировать процесс по архивам.

Ezios

(L1) cache
Пользователь
Регистрация
14.07.2020
Сообщения
669
Реакции
480
Всем доброго времени суток.
Работаю в сфере логов и очень часто на архивы с логами ставят пароли .
Есть ли способы автоматизировать процесс подбора пароля(из списка в файле) и его распаковка?
Заранее спасибо всем кто откликнется.
 
Есть пара задумок для дешифровки Zip архивов, про формат RAR вообще отдельный разговор. Так как он является проприетарным, а значит закрытым форматом, то инструменты для распаковки доступны для данного формата только те, что поставляются разработчиками данного архиватора. И хоть они и предоставляются бесплатно, все равно, без помощи данных инструментов распаковка зашифрованных архивов будет недоступной. Да и вообще распаковка, как таковая. Для python, в данный момент, доступны лишь оболочки, которые являются лишь интерфейсами для инструментов rar.

Библиотека zipfile(Python) для шифрования и расшифровки файлов использует алгоритм ZIP-шифрования. Однако, файлы с паролем, созданные с помощью стандартного архиватора Linux используют уже другой алгоритм шифрования AES. И соответственно, распаковать архив созданный таким способом с помощью библиотеки zipfile не получается. Это же касается и формата архивов 7zip.
Что потребуется?

Для распаковки зашифрованного zip-архива нужно установить библиотеку pyzipper. В терминале выполняем команду:

pip install pyzipper

После чего импортируем загруженную библиотеку в скрипт:

import pyzipper

Ну и можно распаковывать архивы. Я не стал писать какие-то специальные скрипты для распаковки. Вместо этого будут просто обозначены функции, с помощью которых можно это сделать.


Расшифровка и распаковка zip-архива

Ну и раз мы начали с zip-архивов, то ниже приведен код для расшифровки и распаковки:
Python:
# pip install pyzipperimport pyzipper


def decrypt(file_path, word):
with pyzipper.AESZipFile(file_path, 'r', compression=pyzipper.ZIP_LZMA, encryption=pyzipper.WZ_AES) \
as extracted_zip:
try:
extracted_zip.extractall(pwd=word)
except RuntimeError as ex:
print(ex)


decrypt('test.txt.zip', b'123')


pyzipper является контекстным, потому открываем его с помощью with. Используем класс AESZipFile, в который передаем необходимые аргументы. Здесь file_path – путь к запароленному архиву. compression – метод сжатия. encryption – алгоритм шифрования, который будет использован для расшифровки. А далее в extracted_zip.extractall(pwd=word) вызывается функция extractall для распаковки всего содержимого архива. Здесь также можно указать путь для распаковки в параметре path, а в параметре pwd указывается пароль или ключ к зашифрованному архиву. Если путь для распаковки не указан, архив распаковывается в ту же папку, где он и располагается. Ключ должен быть в байтовом формате. Поэтому, нужно его перед тем, как передавать его в функцию, в него перевести. Либо как в примере, либо, использовав функцию encode().


Распаковка и расшифровка 7zip-архива

У данного типа архива при шифровании может использоваться алгоритм на выбор. А потому библиотека, которая распаковывает такие архивы, в теории, должна уметь автоматически подбирать нужный алгоритм для распаковки.

Для распаковки 7zip я использую библиотеку py7zr, которая устанавливается в терминале с помощью команды:

pip install py7zr

Далее она импортируется в скрипт. Вот небольшой код для расшифровки и распаковки:

Python:
# pip install py7zr

import py7zr

try:
with py7zr.SevenZipFile('test.txt.7z', mode='r', password='123') as z:
z.extractall()
except py7zr.exceptions.Bad7zFile as ex:
if str(ex) == 'not a 7z file':
print('Файл не является 7zip')



Параметры для распаковки, это путь к файлу архива, метод, который используется для открытия зашифрованного файла. Так как файл расшифровывается и распаковывается, то здесь нужно использовать read. И пароль к зашифрованному файлу. Я пробовал указать для распаковки с помощью данной библиотеки zip-архив. И если оригинальный архиватор 7zip справляется с этим на ура, то в данном случае возникает исключение, текст которого так и гласит, что файл не является 7zip.
Если интересно или необходимо, поделюсь также методами автоматической распаковки/дешифровки RAR архивов.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Всем доброго времени суток.
Работаю в сфере логов и очень часто на архивы с логами ставят пароли .
Есть ли способы автоматизировать процесс подбора пароля(из списка в файле) и его распаковка?
Заранее спасибо всем кто откликнется.
Можно написать скрипт на Питоне с использованием библиотек zipfile и rarfile.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх