Как взломать мой собственный зашифрованный .dmg с известным базовым паролем - PullRequest
0 голосов
/ 17 января 2020

Я дурачился с зашифрованной функцией .dmg Дисковой утилиты. Я случайно положил туда важный файл и частично забыл пароль. (Я ЗНАЮ!) Я точно знаю, какой была первая часть пароля, но последние 2-4 цифры у меня есть только смутное представление. Что-то вроде Myword55 & или Urword934!

Как я могу bruteforce автоматически попробовать все комбинации паролей? Я нашел следующий скрипт bash, но не знаю, как изменить его в соответствии с моими потребностями:

#!/bin/bash
dmgfile="Your Encrypted File.dmg"

function TryPassword
{
    echo -n "$1 "
    r=$(echo -n "$1" | hdiutil verify -stdinpass "$dmgfile" 2>&1)
    if ! [[ $r =~ "Authentication error" ]]; then
        echo ""
        echo "Found! The password is: $1"
    exit
    fi
}

chars=$(echo {0..9} {A..z})
alphanum=( $(echo $chars | sed -E 's/[^A-Za-z0-9 ]+/ /g') )
letter=( $(echo $chars | sed -E 's/[^A-Za-z ]+/ /g') )
lowercase=( $(echo $chars | sed -E 's/[^a-z ]+/ /g') )
uppercase=( $(echo $chars | sed -E 's/[^A-Z ]+/ /g') )
digit=( $(echo $chars | sed -E 's/[^0-9 ]+/ /g') )

for a in "${letter[@]}"; do
    for b in "${lowercase[@]}"; do
        for c in "${digit[@]}"; do
            TryPassword "$a$b$c"
        done
    done
done

1 Ответ

0 голосов
/ 17 января 2020

РЕДАКТИРОВАТЬ: получил! И я нашел пароль, который искал ...
Оказывается, у меня был сценарий с опечаткой в ​​слове "цифры" и, следовательно, он не был выполнен должным образом. Я изменил для l oop:

for a in "${digit[@]}"; do
    for b in "${digit[@]}"; do
        TryPassword "Myword$a$b%"
    done
done

(«%» - это только один из специальных символов, которые я пробовал)

...