Обычная житейская ситуация, свой старый архив пароль давно забыт, что делать? Можно подобрать в реальные сроки на видеокарте — если это был конечно человеческий пароль а не 8 символов с одной заглавноый буквой одной прописной, одной русской, одной англ, одной цифрой, одним специальным символом! Можно подбирать и на CPU а не на GPU но вместо месяцев это займет годы, все дело в ядрах в процессерах всего десяток ядор, а в видеокарте тысячи.
John-the-ripper выбрал потому что он(Джон) хоть как то подавала признаки жизни работы, но странностей у ней конечно многовато, но сначала о странностях Ubuntu 22!
В Ubuntu можем поставить его из репозиториев
sudo apt-get install john-the-ripper
но поставиться старая версия 1.8 где вообще нет современных настроек
Можно поставить через snap
sudo snap install john-the-ripper
Я snap то не очень и сейчас выяснилось почему. Если вы ставите через snap вам нельзя менять файлы установленного в вашей системе пакета, ну вот вообще никак, даже если разработчики пишут отредатируйте конфиг — snap вам этого не даст сделать. Можно скопировать конфиг в другое место отредактировать его и запускать jhon так
john --config=./myjohn.conf ...
Если бы не следующая проблемы John-the-ripper из snap Ubuntu не хочет, не умеет работать с OpenCL
john --list=opencl-devices
Error: No OpenCL-capable platforms were detected by the installed OpenCL driver. Error: No OpenCL-capable devices were detected by the installed OpenCL driver.
А поэтому надо ставить третьим способом по инструкции от сюда https://github.com/openwall/john/tree/bleeding-jumbo/doc и именно INSTALL-UBUNTU
Nvidia драйверы у меня уже стоят конечно, и честно говоря не знаю что мне помогло, просто кину тут теже все команды что из инструкции
mkdir -p ~/src
sudo apt-get -y install git build-essential libssl-dev zlib1g-dev
вот это
sudo apt-get -y install nvidia-opencl-dev
было уже установлено
cd ~/src
git clone https://github.com/openwall/john -b bleeding-jumbo john
cd ~/src/john/src
./configure && make -s clean && make -sj4
И вот
./src/john/run/john --list=opencl-devices
после процессора
Platform #1 name: NVIDIA CUDA, version: OpenCL 3.0 CUDA 11.7.101 Device #0 (2) name: NVIDIA RTX A4500 Device vendor: NVIDIA Corporation Device type: GPU (LE) Device version: OpenCL 3.0 CUDA Driver version: 515.65.01 [recommended] Native vector widths: char 1, short 1, int 1, long 1 Preferred vector width: char 1, short 1, int 1, long 1 Global Memory: 20183 MiB Global Memory Cache: 1568 KiB Local Memory: 48 KiB (Local) Constant Buffer size: 64 KiB Max memory alloc. size: 5045 MiB Max clock (MHz): 1650 Profiling timer res.: 1000 ns Max Work Group Size: 1024 Parallel compute cores: 56 CUDA INT32 cores: 3584 (56 x 64) Speed index: 5913600 Warp size: 32 Max. GPRs/work-group: 65536 Compute capability: 8.6 (sm_86) Kernel exec. timeout: yes NVML id: 0 PCI device topology: 0a:00.0 PCI lanes: 16/16 Fan speed: 54% Temperature: 79°C Utilization: 100%
Не понял строку
CUDA INT32 cores: 3584 (56 x 64)
самих куда то должно быть 7168 ровно в два раза больше!!!
Стратегия подбора пароля
Для начала надо сделать файл с HASH паролем
./src/john/run/rar2john test_en.rar > ./output.txt
Это для RAR а для ZIP
./src/john/run/zip2john test_en.rar > ./output.txt
Получаем
test_en.rar:$rar5$16$26c27c1cc4aebf2737c7fc0c28afec80$15$260bb794536e9b71c7a28ee68587776e$8$3c88574d72c1341a
По умолчанию Джон заточен для подбора паролей на английском, есть даже список часто используемых паролей, я для теста конечно упрощю работу ему будем подбирать пароль только из строчных английских букв
Для этого в файле ./src/john/run/john.conf
в районе
[Subsets] ... # Subsets mode charsets 0-9. These are literal strings. TAB and space # characters can be used as long as they do not come first or last. The only # "magic" used here is \U+HHHH or \U+HHHHH for any Unicode character (except # the very highest private area that has six hex digits). For example, you
на месте 6 строчки(они там от 0 до 9) добавляем
6 = abcdefghijklmnopqrstuvwxyz
Тут кстати на 4 строчке уже прописан русски алфавит — вот с этим придется играться писать наиболее вероятные символы разных языков для подбора перебора!
и запускам сначала на видеокарте
./src/john/run/john --subsets=6 --format=rar5-opencl ./output.txt
—format=rar5-opencl — тут 5 потому что архив новейшей версии WinRAR и opencl чтобы на видеокарте читался
—subsets=6 — шестая строка
пошло считаться
[Device 2: NVIDIA RTX A4500 Using default input encoding: UTF-8 Loaded 1 password hash (RAR5-opencl [PBKDF2-SHA256 OpenCL]) Cost 1 (iteration count) is 32768 for all loaded hashes LWS=32 GWS=131072 (4096 blocks) Press 'q' or Ctrl-C to abort, 'h' for help, almost any other key for status 0g 0:00:00:00 1.00% (4) (ETA: 11:58:14) 0g/s 0p/s 0c/s 0C/s Dev#2:53°C 0g 0:00:00:03 19.73% (4) (ETA: 11:58:29) 0g/s 42974p/s 42974c/s 42974C/s Dev#2:56°C grgrgggg..yyxn
в скобках цифра 4 это сколко сейчас символов в пароле перебирается, так же показывает температуру карты на всякий случай
более подробную инфу можно получить нажав s
Remaining hashes 1 (0 removed) Remaining salts 1 (0 removed) Time in seconds 817 (476.01 new) Successful guesses 0 (0 new, 0 g/s) Passwords tested 52953088 (30670848 new, 64433 p/s) dupe suppressor is disabled and it accepted 0 (0.00%, 0 p/s) rejected 0 (0.00%, 0 p/s) out of total 0 (0 p/s) Hash computations 52953088 (30670848 new, 64433 c/s) Hash combinations 52953088 (30670848 new, 64433 C/s)
Большинство кнопок просто обновляют превью где сейчас перебирается
0g 0:03:45:45 1.62% (7) (ETA: 2022-09-14 03:51) 0g/s 65714p/s 65714c/s 65714C/s Dev#2:82°C jehhhjheehj..ekkkkhhhehh
В пароле у меня 7 букв и когда дошло до перебара 7 букв я понял что переборшил!!! В ETA (англ. Estimated time of arrival) мне показало через пять дней — перебор это прям ну очень долго, но тут меня осенило, нет ни как это ускорить, а почему просят пароль менять каждые 3 месяца при том что он даже очень сложный — а потому что на Земле нет оборудования которое сложный пароль подберет перебором за три месяца!
Тут вспоминается Задача о зёрнах на шахматной доске, как пример того что казалось незначительным с первого взгляда, но потом оказалось огромным и непосильным — а тут кстати начиналось всего лишь с 2 в степени — а у нас начинается с 26 буков и с добавлением каждого символа возводится в степень…. э для примера сделаю пароль из 4х строчных букв!!!
И вуаля
0g 0:00:00:13 39.84% (4) (ETA: 16:00:17) 0g/s 62966p/s 62966c/s 62966C/s Dev#2:58°C oywa..bhxu itco (test_en4.rar) 1g 0:00:00:14 54.18% (4) (ETA: 16:00:10) 0.07137g/s 65489p/s 65489c/s 65489C/s Dev#2:59°C lxfc..emdz Use the "--show" option to display all of the cracked passwords reliably Session completed.
Видиокарта находит пароль itco из четырех строчных английских букв за 17 секунд!!!
Вот тут у john странность он запоминает hash для которых нашел пароль и больше их не ищет
No password hashes left to crack (see FAQ)
При этом он гад не показывает пароли как должен
./src/john/run/john --show
Password files required, but none specified
Но пароли лежат вместе с ним в файле john.pot
cat ./src/john/run/john.pot
$rar5$16$7f018d3b28b056d9d12001fb022c5a2e$15$59f623db6fa6534d7fe26f2681c6b8ba$8$2bde8da77cc53370:itco
Вот он в самом конце строки
И чтобы нам снова прогнать подбор паролей по новой надо удалить этот файл
rm ./src/john/run/john.pot
Но есть в john и полезные странности можно перезапустить перебор паролей с последнего места когда его прервали или он вылетел с ошибкой
./src/john/run/john --restore
Тут старнность в том что, никаких настроек просто берет последний то есть только одного, а не всех других попыток
Чего стоит добавить еще одну букву — каждая следующая буква займет весго лишь в 26 раз больше времени
5 — 7 минут
6 — 3.2 часа
7 — 3.4 дня
8 — 89 дней
Вот всем и говорят делайте пароль в 8 символов — нафиг никому не надо будет его взламывать! А если добавить одну заглавную букву то это будет уже 52 в степени а если одну русскую(без уточнения строчну или заглавную) то 118 АААААА!!!
Сравним а как на CPU
17 секунд 62966p/s — GPU NVIDIA RTX A4500
317 секунд 2767p/s — CPU AMD Ryzen 7 3700X
На видео карте почти в 18 раз быстрее — можно за пару месяцев а не лет подобрать пароль 🙂
Что же делать?
Вспомнить себя в годы создания архива, может вы тогда делали пароли только из русских букв и цифр — это сильно упрошает процесс. Если вы тогда смешивали буквы разных языков да еще и специальные символы вставля то… а с другой стороны вы же годами не знали не помнили про этот архив, что вам стоит год его подбирать, да даже не вам, а вашей видеокарте — тут и цена вопроса(видиокарты) не важна по сравнению с ностальгией, да и электричество тоже стоит!!!
Можно еще совсем себя унизить и решить что вставляли просто слово без цифр без заглавной, тогда подойдет подбор по словарю
Находите словарь русского языка списком и
./src/john/run/john —wordlist=./word_rus.utf8 —format=rar-opencl ./output.txt
А вдруг?! Но скорей весго 100% нет!!!
Добавить комментарий