Схема метода:
Используйте утилиту типаcrunch
для создания пользовательского файла словаря.
Запустите fcrackzip
с этим пользовательским словарем.
Проблемы:
До 3 строк, смешанных с 3 -5 строчными буквами, составляют более триллиона возможных паролей. Просто создание этого словаря займет некоторое время.
crunch
позволяет использовать подстановочные знаки на основе символов -, но его обработка пользовательских строк не такая гибкая. Для решения этого Q также, по-видимому, необходимы grep
, sed
и sort
, любое из которых увеличивает необходимое время, т. е. часы, может быть, дни...
Что-то вроде этого, вероятно, сработает:
crunch 3 9 abcdefghijklmnopqrstuvwxyz123 | \
grep '[123]' | # at least one number per dict entry
egrep -v '([123]).*\1' | # remove repeated numbers
sed 's/1/hello/;s/2/world/;s/3/shittypass/' | # replace numbers with strings
sort -u | \
fcrackzip -D -p /dev/stdin foo.zip
Тестовый набор с меньшим набором задач (одна или две строки и до двух строчных -букв в любом порядке):
echo foo > bar.txt # file to archive
zip -P xhellobworld baz bar.txt # archive with password
time crunch 2 4 abcdefghijklmnopqrstuvwxyz12 | \
grep '[12]' | egrep -v '([12]).*\1' | \
sed 's/1/hello/;s/2/world/' | \
sort -n | fcrackzip -u -D -p /dev/stdin baz.zip
Выход:
Crunch will now generate the following amount of data: 3163440 bytes
3 MB
0 GB
0 TB
0 PB
Crunch will now generate the following number of lines: 637392
PASSWORD FOUND!!!!: pw == xhellobworld
real 0m5.942s
user 0m2.240s
sys 0m1.040s
Да, это звучит неправильно. Стандарт иерархии файловой системы требует, чтобы
This directory contains system information data describing the system since it was booted. Files under this directory must be cleared (removed or truncated as appropriate) at the beginning of the boot process.