Взломать zip-файл с известными частями паролей

Проще всего просто перехватить указатели кучи через sbrk (0 ), привести их к 64 -битным целым числам без знака и вычислить разницу после выделения памяти.

1
11.06.2020, 17:16
1 ответ

Схема метода:

  1. Используйте утилиту типаcrunchдля создания пользовательского файла словаря.

  2. Запустите 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
0
29.04.2021, 00:00

Теги

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