Восстановление файлов и распределенный взлом
Вам следует знать кое-что о программе john, чтобы управлять большими наборами паролей различной степени сложности. Программа периодически сохраняет состояние процесса, записывая промежуточные результаты в файл. Период сохранения устанавливается в файле john.conf.
# Crash recovery file saving delay in seconds Save = 600
Имя файла по умолчанию restore, но его можно изменить, используя параметр -session.
[root@hedwig run]# ./john -incremental:LanMan -session:pdc \ passwd.lanman Loaded 1152 passwords with no different salts (NT LM DES [64/64 BS MMX])
Содержимое файла restore выглядит примерно так.
REC2 5 -incremental:LanMan -session:pdc passwd.lanman -format:lm 6 0 47508000 00000000 0 -1 488 0 8 3 2 6 5 2 0 0 0
Девятая и десятая строки в этом файле (показаны жирным шрифтом) содержат шестнадцатеричные значения числа завершенных операций. Число возможных комбинаций не может быть представлено 32-битным числом, поэтому программа использует два 32-битных поля для создания 64-битного числа. Информация об этом числе и то, как им можно манипулировать, может быть использована для выполнения распределенных вычислений. Возьмем наш файл restore и используем его для запуска параллельных версий программы на двух независимых машинах. Файл restore для первого компьютера будет содержать следующие строки.
REC2 4 -incremental:LanMan passwd.lanman -format:lm 4 0 00000000 00000000 0 -1 333 0 8 15 16 0 0 0 0 0 0
Файл restore для второго компьютера будет таким.
REC2 4 -incremental:LanMan passwd.lanman -format:lm 4 0 00000000 0000036f 0 -1 333 0 8 15 16 0 0 0 0 0 0
Итак, первая система начнет перебор комбинаций с нуля. Второй компьютер начнет перебор с паролей для LanMan со значения 0000036f 00000000. Теперь работа распределена между двумя машинами, и вам не следует беспокоиться об избыточных комбинациях. Грамотность приема для поиска правильного значения "crypt" состоит в том, чтобы позволить проработать системе некоторое время.
Например, представим себе, что в вашем распоряжении 10 компьютеров.