Используя список слов к грубой силе зашифровал раздел

Я использовал Дисковую утилиту для шифрования внешнего жесткого диска приблизительно месяц назад. Теперь кажется, что я забыл пароль. Я сформировал его согласно ряду правил, таким образом, я генерировал список слов (со сценарием Python) ~400 000 кандидатов. Я довольно уверен, что мой потерянный пароль где-нибудь среди них, но я действительно не испытываю желание пробовать их всех вручную.

Таким образом, вопрос идет: есть ли какой-либо инструмент, который честное слово перечислил бы попробовать их автоматически? Или в противном случае как я должен пойти о записи сценария как этот?

Я использовал подобный инструмент на GPG ранее, он назвал противным.

(Если кто-то интересуется моим чрезвычайно простым сценарием перестановки, это может быть найдено на Pastebin.)

6
задан 22 September 2014 в 04:27

1 ответ

Возвращаемое значение

echo "passphrase" | sudo cryptsetup luksOpen /dev/sda1 encrypted

:

  • 0, если существует ключ для этого пароля
  • 234, если нет никакого ключа для этого пароля

Не должно быть слишком трудно записать сценарий удара, что циклы по Вашему списку слов, пробуя каждый пароль и проверяя возвращаемое значение.

Пример:

#!/bin/bash

DEVICE="/dev/sda1"

if [[ $EUID -ne 0 ]]; then
   echo "This script must be run as root." 1>&2
   exit 1
fi

while read line; do

    echo "$line" | cryptsetup luksOpen "$DEVICE" encrypted 2>/dev/null

    # success
    if [[ $? -eq 0 ]]; then
        cryptsetup luksClose encrypted
        echo "Passphrase: $line"
        exit 0
    fi

done < "$1"

echo "Passphrase not contained in word list."
exit 1

Сохраните, устройство изменения, сделайте исполняемый файл, работайте как sudo ./find-password /path/to/wordlist и ожидайте.

Примечание: Это медленно. Я не знаю, является ли это, потому что я попробовал это на SD-карте, но потребовалось пять секунд для тестирования четырех неправильных паролей (почти 6 дней для 400 000 возможных паролей).

Обновление: Кажется зависящим от ЦП. Если Вы разделяете свой список слов и делаете что-то как

(sudo ./find-password words.0 &) ; (sudo ./find-password words.1 &)

Это будет использовать два ядра и почти половину времени на попытку.

8
ответ дан 23 November 2019 в 07:41

Другие вопросы по тегам:

Похожие вопросы: