Использование John the Ripper для взлома документов Office (DOCX, XLSX, PPTX)

Kali LinuxBeginner
Практиковаться сейчас

Введение

В этой лабораторной работе вы изучите процесс взлома документов Microsoft Office (DOCX, XLSX, PPTX), защищенных паролем, с использованием мощного инструмента для взлома паролей — John the Ripper. Мы будем использовать office2john.py для извлечения хэша пароля из файлов Office, а затем передадим этот хэш в John the Ripper для взлома. Эта лабораторная работа продемонстрирует шаги, связанные с практическим сценарием, помогая вам понять последствия использования слабых паролей для документов Office с точки зрения безопасности.

Создание DOCX файла, защищенного паролем

На этом шаге вы создадите простой DOCX файл и защитите его паролем. Этот файл будет использоваться в последующих шагах для извлечения и взлома его хэша пароля.

Сначала установим libreoffice-writer для создания DOCX файла.

sudo apt install -y libreoffice-writer

После установки откройте LibreOffice Writer.

libreoffice --writer &

Откроется новое окно LibreOffice Writer.

  1. Введите некоторый текст, например: "This is a test document."
  2. Перейдите в Файл -> Сохранить как... (File -> Save As...).
  3. В диалоговом окне Сохранить как (Save As) перейдите в /home/labex/project/.
  4. Введите secret.docx в качестве имени файла.
  5. Установите флажок Сохранить с паролем (Save with password).
  6. Нажмите Сохранить (Save).
  7. В диалоговом окне Установить пароль (Set Password) введите password123 в поля Введите пароль (Enter password) и Подтвердите пароль (Confirm password).
  8. Нажмите OK.
  9. Закройте LibreOffice Writer.

Убедитесь, что файл secret.docx существует в вашем каталоге ~/project.

ls -l ~/project/secret.docx

-rw-r--r-- 1 labex labex XXXX Month XX XX:XX /home/labex/project/secret.docx

Извлечение хэша из DOCX с помощью office2john

На этом шаге вы используете скрипт office2john.py, который является частью набора инструментов John the Ripper, для извлечения хэша пароля из созданного вами файла secret.docx. Именно этот хэш John the Ripper попытается взломать.

Сначала найдите скрипт office2john.py. Обычно он находится в каталоге /usr/share/john/.

find /usr/share/john/ -name office2john.py

/usr/share/john/office2john.py

Теперь используйте office2john.py для извлечения хэша из secret.docx и сохраните его в файл с именем hash.txt.

python3 /usr/share/john/office2john.py ~/project/secret.docx > ~/project/hash.txt

Отобразите содержимое hash.txt, чтобы увидеть извлеченный хэш.

cat ~/project/hash.txt

secret.docx:$office$*2007*100000*256*16*XXXXXXXXXXXXXXX*XXXXXXXXXXXXXXX*XXXXXXXXXXXXXXX*XXXXXXXXXXXXXXX

В выводе будет показана длинная строка, начинающаяся с secret.docx:$office$..., которая является хэшем вашего пароля.

Взлом хэша DOCX с помощью John the Ripper

Теперь, когда вы извлекли хэш, вы будете использовать John the Ripper для его взлома. Для этой демонстрации мы будем использовать простой список слов (wordlist), поскольку наш пароль — "password123", что является распространенным словом.

John the Ripper поставляется с файлом списка слов по умолчанию, расположенным по адресу /usr/share/john/password.lst. Давайте используем этот список слов.

john --wordlist=/usr/share/john/password.lst ~/project/hash.txt

John the Ripper начнет обработку хэша. Если пароль находится в списке слов, он будет быстро найден.


Using default input encoding: UTF-8
Loaded 1 password hash (Office, 2007/2010/2013/2016 [MD5/SHA1/SHA256/SHA512 RC4/AES])
Will run till all hashes are cracked, by default
Press 'q' or Ctrl-C to abort, almost any other key for status
password123      (secret.docx)
1g 0:00:00:00 DONE (20XX-XX-XX XX:XX) 100.0g/s 100.0p/s 100.0c/s 100.0C/s password123
Session completed.

После взлома вы можете просмотреть взломанные пароли, используя опцию --show.

john --show ~/project/hash.txt

secret.docx:password123

1 password hash cracked, 0 left

Этот вывод подтверждает, что John the Ripper успешно взломал пароль для secret.docx как password123.

Повторение для файлов XLSX и PPTX

На этом шаге вы примените тот же процесс к файлам XLSX (Excel) и PPTX (PowerPoint), чтобы продемонстрировать, что office2john.py и John the Ripper работают аналогично для различных типов документов Office.

Сначала установите libreoffice-calc и libreoffice-impress.

sudo apt install -y libreoffice-calc libreoffice-impress

Создание файла XLSX с защитой паролем:

  1. Откройте LibreOffice Calc:
    libreoffice --calc &
  2. Введите некоторый текст, например, "Spreadsheet data."
  3. Перейдите в Файл -> Сохранить как... (File -> Save As...).
  4. Перейдите в каталог /home/labex/project/.
  5. Введите secret.xlsx в качестве имени файла.
  6. Установите флажок Сохранить с паролем (Save with password).
  7. Нажмите Сохранить (Save).
  8. Установите пароль password123 и подтвердите его.
  9. Нажмите OK и закройте LibreOffice Calc.

Извлечение хэша из XLSX:

python3 /usr/share/john/office2john.py ~/project/secret.xlsx >> ~/project/hash.txt

Создание файла PPTX с защитой паролем:

  1. Откройте LibreOffice Impress:
    libreoffice --impress &
  2. Добавьте заголовок, например, "Presentation Title."
  3. Перейдите в Файл -> Сохранить как... (File -> Save As...).
  4. Перейдите в каталог /home/labex/project/.
  5. Введите secret.pptx в качестве имени файла.
  6. Установите флажок Сохранить с паролем (Save with password).
  7. Нажмите Сохранить (Save).
  8. Установите пароль password123 и подтвердите его.
  9. Нажмите OK и закройте LibreOffice Impress.

Извлечение хэша из PPTX:

python3 /usr/share/john/office2john.py ~/project/secret.pptx >> ~/project/hash.txt

Взлом всех хэшей:
Теперь запустите John the Ripper на обновленном файле hash.txt, который теперь содержит хэши для DOCX, XLSX и PPTX.

john --wordlist=/usr/share/john/password.lst ~/project/hash.txt

Using default input encoding: UTF-8
Loaded 3 password hashes (Office, 2007/2010/2013/2016 [MD5/SHA1/SHA256/SHA512 RC4/AES])
Will run till all hashes are cracked, by default
Press 'q' or Ctrl-C to abort, almost any other key for status
password123      (secret.xlsx)
password123      (secret.pptx)
password123      (secret.docx)
3g 0:00:00:00 DONE (20XX-XX-XX XX:XX) 100.0g/s 100.0p/s 100.0c/s 100.0C/s password123
Session completed.

Проверьте все взломанные пароли:

john --show ~/project/hash.txt

secret.xlsx:password123
secret.pptx:password123
secret.docx:password123

3 password hashes cracked, 0 left

Понимание шифрования документов Office

На этом шаге мы кратко обсудим механизмы шифрования, используемые документами Microsoft Office, и почему такие инструменты, как John the Ripper, эффективны.

Современные документы Microsoft Office (DOCX, XLSX, PPTX) используют форматы на основе XML (Open XML). Когда устанавливается пароль, содержимое документа шифруется. Процесс шифрования включает получение ключа шифрования из пароля пользователя с использованием функции вывода ключа (KDF), такой как PBKDF2 (Password-Based Key Derivation Function 2).

office2john.py работает путем извлечения необходимых параметров из XML-структуры документа Office, таких как соль (salt), количество итераций (iteration count) и зашифрованный хэш верификатора (encrypted verifier hash). Эти параметры, наряду с типом хэша (например, Office 2007/2010/2013/2016), формируют строку "хэша", которую понимает John the Ripper.

Затем John the Ripper выполняет атаку методом перебора (brute-force) или словарную атаку (dictionary attack). Для каждого слова в своем списке слов (или каждой комбинации при атаке методом перебора) он применяет ту же KDF с извлеченными параметрами для генерации предполагаемого ключа. Если этот предполагаемый ключ совпадает с зашифрованным хэшем верификатора, пароль найден.

Стойкость шифрования в значительной степени зависит от сложности и длины пароля. Слабые или распространенные пароли, такие как "password123", легко взламываются с помощью словарных атак, как показано в этой лаборатории. Сильные пароли, которые являются длинными, случайными и содержат смесь символов, значительно увеличивают время и вычислительные ресурсы, необходимые для взлома, делая их гораздо более безопасными.

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

Резюме

В этой лаборатории вы успешно научились извлекать хэши паролей из документов Microsoft Office (DOCX, XLSX, PPTX) с защитой паролем с помощью office2john.py. Затем вы использовали John the Ripper для взлома этих извлеченных хэшей, продемонстрировав уязвимость документов, защищенных слабыми паролями. Этот практический опыт дал представление о процессе взлома паролей и подчеркнул важность использования надежных, сложных паролей для защиты ваших цифровых активов.