John the ripper как пользоваться
Руководство по «John the Ripper» на Русском.
Решил я написать эту статейку, так как уж больно много народа оставляет на досках объявлений вопросы о том как использовать John The Ripper ( в дальнейшем JTR), или где найти мануал к JTR на Русском. Сразу хотелось бы отметить, что частично информация была взята из документации прелагаемой к JTR v1.6 на Английском языке. Руководство прилагается в первую очередь для новичков.
JTR — программа для восстановления паролей для UNIX/Win95/NT/DOS систем, но в народе как то повелось использоватьJTR в основном для взлома *nix паролей (для чего он и предназначался в ранних версиях). На NT, большинство юзает l0pht, а на pwl, PWL-tool.
Прежде чем начнем разбираться с самим JTR, давайте остановимся на самих паролях в *nix системах.
В Linux пароли шифруются в алгоритме «DES», также есть такая фишка как «salt», это 2е любые буквы, которые являются ключом к паролю, другими словами, с помощью «salt» и шифруется пароль. Подробнее об этом написано в статье «пароли в UNIXе» (почитать можно на www.hack-crack.com). Просто не хочу повторяться, да и тема у нас сейчас другая :).
Пароли в большинстве случаев хранятся в следующих файлах:
Хотя могут и лежать в каком-нибудь /etc/shadow.old или /etc/passwd.tmp . Сделав листинг директории /etc/, сразу можно все понять. Просто иногда хитрые админы меняют названия файлов :). passwd файл, это как раз то что нам надо, но в большинстве случаев пароли хранятся в shadow (в тени), в этом случае в passwd видим следующую ситуацию:
root:*:0:0:System Administrator:/root:/bin/csh
rfindd:*:66:1:Rfind Daemon and Fsdump:/var/rfindd:/bin/sh
…
Внимание! Это на самом деле fake, и никаких паролей здесь нет! А то бывали кадры, которые мне говорили, что типа пароли почему то JTR не берет 🙂 А вот если видим такую ситуацию:
root:9IDv/CqdFuqWo:0:0:System Administrator:/root:/bin/csh
john:653MWdpUGN3BM:66:1:John Nikolsen, 2-nd west:/home/john:/bin/sh
То можно заметить, что данный пример более похож на правду. Давайте разберемся на примере с пользователем «john»:
john:653MWdpUGN3BM:66:1:John Nikolsen, 2-nd west:/home/john:/bin/sh
1. john — имя пользователя.
2. 653MWdpUGN3BM — пароль зашифрованный в DES.
3. 66:1 — номер пользователя в системе : номер рабочей группы (у root всегда 0:0).
4. John Nikolsen, 2-nd west — информация о пользователе (обычно Имя, Фамилия…).
5. /home/john — Домашний каталог.
6. /bin/csh — shell.
Теперь ты свободно можешь разобрать passwd файл :). Но сразу хотелось бы отметить, что на файл в котором находятся пароли в DES (будь то shadow или passwd), права в большинстве случаев дают r——— или r—r——, это значит, что права на чтения есть у root’а и зарегистрированных пользователей (во втором случае r—r——). Так что, через какой-нибудь htmlscript, вряд ли удастся просмотреть, но все таки иногда везет, и получается просмотреть все содержимое :).
В Free BSD пароли хранятся в файле /etc/master.passwd , а в остальном технология такая же как и в LINUX, хотя используется более стойкий алгоритм шифрования MD5. В Open BSD, для шифрования используется алгоритм Blowfish.
Ну а теперь о самом JTR и как его заюзать.
Вопреки о том, что файлом с паролями является чем то жутким и не понятным, можно сказать, что пароли можно засунуть в обычный txt файл :). Главное чтобы конструкция была правильная (см. выше). И так, у вас есть что-нибудь типа этого:
root:6xp8Tw7//32×2:0:0:root:/:/bin/bash
michael:Mrd4OyzXJi/.o:500:500::/home/g.giraud:/bin/bash
nick:lreHgxVKYfqiU:501:501::/home/pages_web:/bin/bash
melisa:sDci0pnsqhhE6:502:502::/home/informix:/bin/bash
johnson:pX9gnmqBDSQ/o:506:100::/home/pages_web:/bin/bash
dacosta:rGTGPVqn/AhuU:507:100::/home/pages_web:/bin/bash
…
Сохраняем все это дело в каком-нибудь файле типа passwd.txt, или просто passwd. Этот файл как раз и будет то, что надо сунуть JTR. Далее переходим в папку с JTR, и находим там файл john.exe, в эту же папку ложем наш passwd файл. Далее идем в «DOS Prompt» («Режим DOS»), не просто по john.exe щелкаем 2 раза, а именно идем в «Режим DOS», далее командой:
заходим в папку где лежит JTR. Теперь можно запускать JTR :). Запускаться все может в разных режимах и с разными параметрами о которых я сейчас и постараюсь рассказать. Данные примеры рассматриваются для пользователей с системами win95/95/NT, для *nix в принципе все опции и параметры идентичны.
1. Самый простой способ, это запустить JTR в режиме «Brute force»:
john passwd
(Я в дальнейшем буду использовать passwd как имя файла с паролями, но как я уже и сказал, имя и формат файла может быть практически любым)
Данный способ является самым простым, и не очень эффективным, так как JTR начинает перебирать все символы от фонаря, что конечно очень долго… хотя многое зависит от мощности вашего компьютера и от сложности пароля. Пароль типа «dk9LDs)p1» еще твои правнуки будут доламывать 🙂
2. Перебор по словарю:
john -w:wordlist passwd
где wordfile — имя файла со словарем. Также можно и так:
john -w:wordlist -rules passwd
-rules, включает правила синтаксиса для словаря. С вариантом по словарю, пароли подбираются на много быстрее чем в варианте с «Brute force». По-моему, самый лучший и эффективный способ.
3. incremental mode
john -i passwd
Авторы JTR говорят, что это самый сильный способ перебора, 95 символов. А вот таким способом:
john -i:alpha passwd
JTR перепробует 26 символов, от «a», до «zzzzzzzz». Если с wordlist не получилось, советую запускать данный способ.
4. single mode (одиночный режим).
john -single passwd
Рекомендуется начать перебирать пароль с данной опцией. Намного быстрее чем wordlist mode, но рассчитан на хиленькие пароли. При переборе нескольких файлов с данной опцией, возможно подобрать пароли быстрее чем просто 1 passwd файл.
Теперь я перечислю пару полезных опции для JTR. Опции можно запускать в любых режимах:-w, -i, -single.
1. Перебор для конкретного пользователя:
john -w:wordlist -rules -users:0 passwd
Перебирает пароль к конкретному пользователю (в нашем случае root). Что бы указать пользователя, надо после «:» указать UID (номер пользователя в системе).
2. Смотрим подобранные пароли.
john -show passwd
Показывает уже подобранные пароли, в указанном файле.
3. Разбиваем файл на куски.
john -w:wordlist -salts:5 passwd
john -w:wordlist -salts:-5 passwd
Иногда бывает полезно (если есть 2 компьютера). Число «5» это количество «salts» (паролей). JTR будет отчитывать с самого верху. В первом примере (на 1ом компе), берется первые 5 пользователей, во втором примере «-5» (на 2ом компе), перебираются все, кроме 5и первых.
4. Люблю shells :).
john -w:wordlist -rules -shells:sh,csh,tcsh,bash passwd
В данном случае, будут перебираться только те пользователи, которые имеют указанные в вышеприведенном примере shell’ы.
5. Несколько passwd файлов.
Если у вас есть несколько файлов с паролями в DES, то их можно всех вместе поставить на расшифровку данным способом:
john -single passwd passwd1 passwd2
Количество файлов по-моему не ограничено :). Способ с несколькими файлами, работает на всех режимах и опциях, просто укажите имена файлов в конце (как в примере).
6. Unshadow files.
unshadow passwd shadow
Если у вас пароли в shadow, то данной командой, их можно восстановить (требует shadow файл :).
Ну вот ты и научился юзать JTR :). В данной статье были описаны практически все самые полезные примеры, которым можно найти применение. За более подробной информацией на Английском, можно обратиться к документации прилагаемой к JTR. Удачного крека :).
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Инструкции по использованию John the Ripper
Уважаемые посетители сайта! Данная статья устарела, смотрите новую онлайн-книгу «Полное руководство по John the Ripper» .
Программа John the Ripper создавалась для выявления слабых паролей пользователей операционных систем. При этом в настоящее время версия Jumbo (с расширенным функционалом от сообщества) превратилась в мощный комбайн, который может подбирать пароли для разнообразных архивов, документов, электронных кошельков и очень много чего ещё. Документация по этим возможностям программы является слабой и фрагментированной. Даже чтение справки и манула по John the Ripper мало чем вам помогут (тем не менее, начинать нужно со знакомства с ними).
В данном разделе мы устраним эти пробелы насколько это возможно. Будет рассказано о взломе разнообразных типов файлов, которые защищены паролями, о режимах взлома, о масках, словарях, правилах изменения слов и многом другом.
Взлом паролей пользователей Linux
Давайте всё-таки начнём с «базовой» функци по взлому паролей пользователей ОС, благо здесь всё элементарно.
Комбинирует файл passwd (/etc/passwd) и shadow (/etc/shadow) и перенаправляет их в файл (> unshadowed.txt):
root@HackWare:~# unshadow /etc/passwd /etc/shadow > unshadowed.txt
Используем словарь (–wordlist=/usr/share/john/password.lst), применяя правила коверкания (–rules), пытаемся взломать пароли хешей в данном файле (unshadowed.txt):
root@HackWare:~# john --wordlist=/usr/share/john/password.lst --rules unshadowed.txt Warning: detected hash type "sha512crypt", but the string is also recognized as "crypt" Use the "--format=crypt" option to force loading these as that type instead Using default input encoding: UTF-8 Loaded 1 password hash (sha512crypt, crypt(3) $6$ [SHA512 128/128 SSE2 2x]) Will run 2 OpenMP threads Press 'q' or Ctrl-C to abort, almost any other key for status 1 (root) 1g 0:00:00:07 DONE (2015-12-20 07:41) 0.1394g/s 428.4p/s 428.4c/s 428.4C/s ilovegod..mobydick Use the "--show" option to display all of the cracked passwords reliably Session completed
Взлом в John the Ripper офисных документов, архивов, кошельков, зашифрованных дисков TrueCrypt и других файлов, зашифрованных паролем
John умеет взламывать только хеши — он не умеет напрямую работать с зашифрованными файлами. Программа не может открыть офисный документ, ввести туда пароль и т. п.
Это решаемая проблема — нам нужно получить (извлечь) хеш для интересующего нас файла. Сам John этого делать не умеет. Нужны вспомогательные утилиты. Ознакомиться с их списком можно, например, набрав команду:
locate *2john*
Вот так выглядит список на машине, где я установил John из исходников:
Развернуть
/home/mial/src/john/run/1password2john.py /home/mial/src/john/run/7z2john.py /home/mial/src/john/run/aix2john.pl /home/mial/src/john/run/aix2john.py /home/mial/src/john/run/androidfde2john.py /home/mial/src/john/run/apex2john.py /home/mial/src/john/run/bitcoin2john.py /home/mial/src/john/run/blockchain2john.py /home/mial/src/john/run/cisco2john.pl /home/mial/src/john/run/cracf2john.py /home/mial/src/john/run/dmg2john /home/mial/src/john/run/dmg2john.py /home/mial/src/john/run/ecryptfs2john.py /home/mial/src/john/run/efs2john.py /home/mial/src/john/run/encfs2john.py /home/mial/src/john/run/gpg2john /home/mial/src/john/run/hccap2john /home/mial/src/john/run/htdigest2john.py /home/mial/src/john/run/ikescan2john.py /home/mial/src/john/run/iwork2john.py /home/mial/src/john/run/kdcdump2john.py /home/mial/src/john/run/keepass2john /home/mial/src/john/run/keychain2john.py /home/mial/src/john/run/keyring2john.py /home/mial/src/john/run/keystore2john.py /home/mial/src/john/run/kirbi2john.py /home/mial/src/john/run/known_hosts2john.py /home/mial/src/john/run/krbpa2john.py /home/mial/src/john/run/kwallet2john.py /home/mial/src/john/run/lastpass2john.py /home/mial/src/john/run/ldif2john.pl /home/mial/src/john/run/lion2john-alt.pl /home/mial/src/john/run/lion2john.pl /home/mial/src/john/run/lotus2john.py /home/mial/src/john/run/luks2john /home/mial/src/john/run/mcafee_epo2john.py /home/mial/src/john/run/ml2john.py /home/mial/src/john/run/mozilla2john.py /home/mial/src/john/run/odf2john.py /home/mial/src/john/run/office2john.py /home/mial/src/john/run/openbsd_softraid2john.py /home/mial/src/john/run/openssl2john.py /home/mial/src/john/run/pcap2john.py /home/mial/src/john/run/pdf2john.py /home/mial/src/john/run/pem2john.py /home/mial/src/john/run/pfx2john /home/mial/src/john/run/putty2john /home/mial/src/john/run/pwsafe2john.py /home/mial/src/john/run/racf2john /home/mial/src/john/run/radius2john.pl /home/mial/src/john/run/rar2john /home/mial/src/john/run/sap2john.pl /home/mial/src/john/run/sipdump2john.py /home/mial/src/john/run/ssh2john /home/mial/src/john/run/sshng2john.py /home/mial/src/john/run/strip2john.py /home/mial/src/john/run/sxc2john.py /home/mial/src/john/run/truecrypt2john.py /home/mial/src/john/run/uaf2john /home/mial/src/john/run/vdi2john.pl /home/mial/src/john/run/vncpcap2john /home/mial/src/john/run/wpapcap2john /home/mial/src/john/run/zip2john
Согласитесь, список впечатляющий!
А вот так он выглядит в Kali Linux:
root@HackWare:~# locate *2john* /usr/share/metasploit-framework/data/john/run.linux.x64.mmx/pdf2john /usr/share/metasploit-framework/data/john/run.linux.x64.mmx/rar2john /usr/share/metasploit-framework/data/john/run.linux.x64.mmx/ssh2john /usr/share/metasploit-framework/data/john/run.linux.x64.mmx/zip2john
Нам явно очень много чего не доложили! Поэтому если не можете в своей системе найти какой-то файл (это можно сделать командой locate), то скачайте их из исходных кодов: https://github.com/magnumripper/JohnTheRipper.
Для себя я собрал всю доступную информацию об этих файлах в таблицу. Если вы заметили неточности в моих данных или хотите их дополнить — то пишите в комментариях к этому разделу.
1. Запустите dmg2john на файл(ы) .dmg.
Например: $ ../run/dmg2john test.dmg > hash
2. Запустите john на вывод dmg2john.
Например: $ ../run/john hash
Можно использовать любой файл на выбор: dmg2john или dmg2john.py
Для дополнительной функциональности рекомендуется установить пакет python-m2crypto:
apt-get install python-m2crypto
efs2john.py —masterkey=samples/openwall.efs/92573301-74fa-4e55-bd38-86fc558fa25e —sid=»S-1-5-21-1482476501-1659004503-725345543-1003″
efs2john.py —masterkey=samples/openwall.efs.2/21d67870-8257-49e0-b2de-c58324271c42 —sid=»S-1-5-21-1482476501-1659004503-725345543-1005″
efs2john.py —masterkey=samples/Win-2012-non-DC/1b52eb4f-440f-479e-b84a-654fdccad797 —sid=»S-1-5-21-689418962-3671548705-686489014-1001″ —password=»openwall@123″
PGP (англ. Pretty Good Privacy) — компьютерная программа, также библиотека функций, позволяющая выполнять операции шифрования и цифровой подписи сообщений, файлов и другой информации, представленной в электронном виде, в том числе прозрачное шифрование данных на запоминающих устройствах, например, на жёстком диске.
Взламываются PGP Desktop / OpenPGP / GnuPG частный (секретный) ключ
HCCAP — это кастомный формат, специально разработанный для oclHashcat.
Сами данные не отличаются от обычного tcpdump формата. На самом деле, они абсолютно те же самые. Они просто немного реорганизованы.
Валидный файл hashcat cap (расширение файла: .hccap) содержит одну или больше экземпляров структуры.
Пример ввода (с com.apple.restrictionspassword.plist):
J94ZcXHm1J/F9Vye8GwNh1HNclA=
/RHN4A==
Пример вывода:
$pbkdf2-hmac-sha1$1000.fd11cde0.27de197171e6d49fc5f55c9ef06c0d8751cd7250
1. Достаньте файл com.apple.restrictionspassword.plist из вашего телефона. Как сделать это — за пределами этого документа, просто погуглите это.
2. Запустите ios7tojohn на этот файл, Перенаправьте вывод в другой файл. К примеру:
./ios7tojohn com.apple.restrictionspassword.plist > ioshash
3. Запустите john на новый файл используя только четыре цифры (это ведь PIN код):
./john ioshash -inc:digits -min-len=4 -max-len=4
4. Взлом займёт полсекунды. И не потому что Apple использует очень убогий хеш механизм, а от того, что пространство ключей ПИН кода крайне маленькое.
использование: keyring2john.py [-h] KEYRING_FILE
keyring2john.py -> конвертирует файлы Gnome Keyring в формат john.
позиционные аргументы:
KEYRING_FILE Вводо файла Gnome Keyring
опциональные аргументы:
-h, —help показать справку и выйти
JtR-jumbo имеет два формата (плагина) которые поддерживают взлом защищённых паролем частных ключей ssh — «ssh» and «ssh-ng».
ssh-ng новее и быстрее, но крайне эксперементальный формат, который может сгенерировать ложные срабатывания. Используйте на свой собственный риск.
Запустите ssh2john на частный ключ(и) SSH *ИЛИ*
Запустите sshng2john.py на частный ключ(и) SSH
JtR-jumbo имеет два формата (плагина) которые поддерживают взлом защищённых паролем частных ключей ssh — «ssh» and «ssh-ng».
ssh-ng новее и быстрее, но крайне эксперементальный формат, который может сгенерировать ложные срабатывания. Используйте на свой собственный риск.
Запустите ssh2john на частный ключ(и) SSH *ИЛИ*
Запустите sshng2john.py на частный ключ(и) SSH
Утилита для импорта тома TrueCrypt в формат понятный для John The Ripper
Использование: /truecrypt2john.py файл_тома [файл(ы)_ключей]> выводной_файл
Использование: /home/mial/src/john/run/zip2john [опции] [zip файлы]
Устанавливает порог для встраиваемых данных. По умолчанию это 1024 байт
Опции только для ‘старых’ зашифрованных файлов PKZIP:
Это «известный» ASCII файл.
Использование режима ‘ascii’ даёт серьёзное ускорение, ЕСЛИ все файлы большие и вы ЗНАЕТЕ, что по карйней мере один из них начинается с «чистых» ASCII данных.
Использовать только этот файл из .zip файла
-c
Это создаст хеш «только контрольная сумма». Если есть много зашифрованных файлов в файле .zip, то это может быть вариантом, и будет достаточно данных чтобы ложные срабатывания не были видны. Если .zip — это 2 байта контрольной суммы и их 3 и более, то мы имеем 48 бит знания, которые «могут» быть достаточными для взлома пароля без необходимости пользователю иметь в наличии .zip файл.
-m
Использование «файловой магии» в качестве известного простого текста, если это применимо. Это немного быстрее, но не во всех ситуациях на 100% безопасно.
-2
Принудительное двух байтовое исчисление контрольной суммы
Тестируем безопасность паролей с помощью John the Ripper
Иногда возникает необходимость проверить безопасность паролей на сервере. (на случай брут-форс атак). Выполнить эту задачу поможет утилита John the Ripper.
Эта утилита проверяет безопасность паролей пытаясь их подобрать. Установим john:
apt-get install john
Самый простой способ запуска (для тестирования паролей из файла /etc/shadow):
john /etc/shadow
Сразу после этого на консоль будет выведено примерно такое сообщение:
Loaded 4 passwords with 4 different salts (FreeBSD MD5 [32/32])
А в случае удачи (или наоборот неудачи — это уж как посмотреть) через некоторое время на экран начнут выводиться пары «логин-пароль»
Если вы не верите что эта утилита работает — создайте пользователя test с паролем test. ВНИМАНИЕ! Вы делаете это на свой страх и риск. Не стоит делать этого на машине, на которую есть доступ из внешней сети. И не забудьте потом удалить этого пользователя!
После создания пользователя запустите:
john /etc/shadow
И практически сразу вы увидите следующее:
Loaded 4 passwords with 4 different salts (FreeBSD MD5 [32/32]) test (test)
Вы можете прервать выполнение john в любой момент нажав комбинацию клавиш Ctrl+C. В процессе работы программа создаёт в текущей директории два файла: john.pot и restore. Они не удаляются и вы можете в любой момент использовать их для продолжения подбора паролей командой:
john -restore
Более подробную информацию можно получить прочитав man-страницу john. Желаем успехов!
Обзор инструментов для вскрытия хэша: John the Ripper password cracker и MDCrack
На данный момент хэш можно вскрыть пятью способами: грубый перебор (брутфорс), подбор по словарю, по словарю с правилами (гибридная атака), rainbow таблицы (радужные таблицы) и криптоатака. Сами хэши можно разделить на обычные хэши, и хэши с солью (salt, «затравка»). Эта статья посвящена программам john и mdcrack. На их примере, также рассмотрим основные методы для реализации брутфорса.
john
John the Ripper password cracker предназначен для вскрытия различных типов хэшей, которые применяются во множестве ПО и ОС, от MySQL до OpenBSD. В программе реализованы возможности: брутфорс пароля, подбор пароля по словарю и гибридная атака. А также signle и external способы подбора пароля, специфичные для этой программы. О всех способах будет рассказано ниже.
В программе имеется возможность восстанавливать процесс подбора после его прерывания.
Одной из особенностей программы является тот факт, что при вскрытии большого количества паролей «за раз», велика возможность того, что они вскроются быстрее, чем бы вскрылись по отдельности. А также инкремент пароля производится «интеллектуально», о чём будет сказано ниже.
В программе имеются два ограничения: john может вскрывать хэши только с солью — для вскрытия обычных хэшей вам потребуется соответствующий патч или готовая спец. сборка программы; можно брутфорсить пароль длиной не более 8-ми символов (но при атаке по словарю такого лимита нет).
Salt (соль, «затравка») — это метод усложнения вычисления хэша. К примеру, во FreeBSD, при вычислении хэша от пароля, сначала генерируются два случайных символа, которые конкатенируются к паролю, от полученной строки вычисляется хэш, и к полученному хэшу прибавляются эти два символа, давая результирующий хэш.
Для тестирования скорости программы на вашем компьютере, запустите её с флагом ‘—test’. Результат будет выдан в c/s, т.е. в символах в секунду, а не в h/s (хэш в секунду), как это принято в других программах этого типа. Но каждый следующий символ образует новый пароль. А значит, перебирая, к примеру, 3500 символов в секунду, мы генерируем 3500 новых паролей в секунду. Следовательно, цифры, которые даёт команда john —test — это и есть хэши в секунду.
Для начала работы программы, запишите вскрываемый хэш в файл: user:hash, где user — это любая строка, и hash — вскрываемый вами хэш. Если вам требуется вскрыть сразу несколько хэшей, то нужно записать их всех в один файл. Как сказано выше, велика вероятность того, что так все хэши вскроются быстрее, чем если бы они были записаны в разные файлы по отдельности. Например, создадим файл bla.pass такого содержания:
user1:$1$yHJlM1Y9$lzO5yVj6Drepbz6xje0wq0
user2:$1$RDBUtZMr$z8acZKa5XzY0vQuUwG6Un1
user3:$1$EP5lm7ex$poOrQvYoH78Bc63nhXx1p1
user4:$1$ths1/RY5$CUR32fPoOr/UcjeBpD4fx0
Что бы начать перебор, дайте команду john bla.pass. Программа скажет о количестве загруженных хэшей, о количестве различных salt-ов (в старых unix-системах salt был фиксированным, т.е. одинаковым у всех паролей) и о типе хэшей. Тип хэша может определится не верно. Так, если попытаться вскрыть обычный md5_128bit (без salt), то рассматриваемая в этой статье версия john-а определит этот хэш как NT LM DES, и начнёт подбор пароля, заведомо безрезультатно.
После начала перебора, может пройти вечность до того, как пароль вскроется. Что бы попытаться вскрыть пароль в разумные сроки, у john-а есть целый арсенал различных типов подбора (режимов работы), правил, фильтров и гибкий файл конфигурации. Далее будут коротко рассмотрены режимы работы john-а. Дополнительную информацию читайте в документации к программе.
Итого, john имеет 4 режима работы, т.е. 4 способа вскрытия пароля: single crack, wordlist, incremental и external.
Single crack mode — поиск пароля по косвенным уликам. Первыми кандидатами в пароли становятся имя пользователя, «GECOS», «Full Name» — поля его учётной записи и название домашней директории пользователя. А также используются правила (гибридная атака) для полученных данных, и возможных паролей становиться больше. Но не так много как в прилагаемом к программе словаре. Поэтому это самый быстрый способ. Он завершает свою работу (перебирает все возможные этим способы варианты паролей) за несколько секунд.
В GECOS-поле пользователь может записать дополнительные данные о себе, такие как номер телефона, дату рождения и т.п.
Wordlist — подбор пароля по словарю. Основной словарь весит более чем 600 Mb, распространяется на двух дисках. В нём собраны наиболее употребляемые пароли более чем на 20 языках. Стоит этот сборник паролей 28.25$. Также доступен малый сборник паролей размером 11 Mb. Эффективность этого сборника сомнительна, поскольку он также содержит пароли на более чем 20 языках. У режима wordlist есть «подрежим»: wordlist с правилами (rulets). Это гибридный вид подбора пароля. Набор применяемых правил можно изменять и дополнять своими. Правила описаны в файле конфигурации спецсимволами и специальными флагами, которые читает и обрабатывает john-овский препроцессор правил.
Вы можете скачать некоторые очень полезные словари с сайта passwords.ru
Incremental — грубый перебор, т.е. брутфорс. Настройки перебора хранятся в файле конфигурации. При переборе, программа равномерно распределяет частоту инкремента по длине пароля и набору символов (That’s one reason why this mode deals with trigraph frequencies, separately for each character position and for each password length, to crack as many passwords as possible within a limited time). Есть пять подрежимов инкрементного режима: «All», «Alnum», «Alpha», «Digits» и «LanMan». К примеру «Digits» будет перебирать лишь цифры, «Alpha» — лишь строчные латинские буквы. Также есть возможность создания своего подрежима инкрементного режима. Подробнее — в документации.
External — этот режим даёт возможность применять «фильтры», описанные в файле конфигурации на языке Си с использованием четырёх callback-функций. С помощью этого можно написать свой алгоритм перебора. Но несколько основных уже написаны в файле конфигурации, и ими можно пользоваться.
Все режимы можно совмещать. По дефолту (если не указывать режим и ничего не менять в конфигах) программа сначала отработает single-режим, затем попытается подобрать пароль по словарю, прилагаемому к программе (всего лишь 3108 паролей), затем начнёт перебор паролей (перейдёт в инкрементный режим) длиной от 0 до 8 с азбукой в 96 символов (латинские строчные, латинские заглавные, цифры и символы).
Практический совет: пробуйте сначала те режимы и подрежимы, которые заканчивают свою работу (в случае неудачи) быстрее всех. После завершения работы в режимах single, wordlist и wordlist with rulets, вы, вероятно, начнёте брутфорсить пароль в подрежиме «All». Это может оказаться вашей большой ошибкой, которая отнимет у вас слишком много времени. Вместо этого, сначала попробуйте более быстрые подрежимы в порядке возрастания количества символов: «Digits» (10 цифр), «Alpha» (26 латинских строчных букв), «Alnum» (36 символов — буквы + цифры) и т.п. Поскольку пользователи часто используют простые пароли, сперва следует попробовать более быстрые подрежимы инкрементного перебора. Это может значительно сэкономить вам время.
mdcrack
Программа нацелена на достижение максимальной скорости перебора пароля. Версия программы 1.2 имеет открытый исходный код, но поддерживает всего лишь три вида хэшей: MD4, MD5 и NTLM1. Программа версии 1.5 и 1.7 поддерживает большее число хэшей, в том числе и md5_freebsd, но исходный код в открытом виде не предоставляется. Программу mdcrack удобно использовать для брутфорса, когда стандартная сборка программы john вам не подошла, т.е. когда вам необходимо вскрыть хэш без соли (без salt).
Пример вызова программы mdcrack:
mdcrack -s qwertyuiopasdfghjklzxcvbnm -S 7 c8e5b031cee3fe69955e63f8c5e11509.
После этой команды создастся «сессия», и если вы прервёте перебор, дайте команду mdcrack (без параметров) для возврата к прерванной сессии. Для удаления сессии, дайте команду mdcrack -d.
По завершению или после прерывания работы программы, она выдаёт информацию о производительности компьютера (среднее количество хэшей в секунду).
Флаг -W используется для создания файла предварительно рассчитанных пар pass:hash. Для чтения такого файла используется флаг -R. Для более быстрой работы чтения/записи используется флаг -F.
Флаги -b и -e используются для указания challegne-значения. В некоторых протоколах передачи данных, передаваемый хэш пароля шифруется (вычисляется хэш от передаваемого хэша). Пароль, на который он шифруется в данном контексте называется challegne.
Стоит отметить, что программа mdcrack ищет в хэше коллизии. Дело в том, что одному хэшу может соответствовать несколько паролей (но вероятность этого очень мала), причём разной длины. Если пользователь задал пароль из 9 символов, при подборе такого пароля может выясниться, что другой, более короткий пароль, к примеру из двух символом, имеет точно такой же хэш. И если его ввести атакуемой системе — он будет воспринят как правильный.
Тематические ссылки
- Статья «Заметки: какой брутер выбрать?»: forum.antichat.ru/showthread.php?t=37651
- Словари для вскрытия хэша, и не только: www.passwords.ru