Thanat0z
26.07.2007, 02:45
"Мы увидим чья стрела точней
Чьи щиты прочней
Чей расчет верней
Этот спор будет решен" (с)
wtFAQ? - John the Ripper, практическое пособие
Cодержание:
1. Вступление
1.1 Чушь от автора (можно пропустить)
1.2 Обозначения и прочие комментарии к статье
2. Краткая справка по JTR
2.1 john.conf и принцип работы
2.2 Режимы работы
3. Статистика (должен знать каждый, но вам решать)
3.1 Множества и затраты времени (можно пропустить)
3.2 Частые комбинации, словообразующие
4. Правила в JTR
4.1 Перевод секции Wordlist
4.2 Статистика по реальной базе (гляньте хоть мельком)
4.3 Извращенное использование правил (для извращенцев ;))
5. Чарсеты
6. External, builttin
6.1 Создание специальных чарсетов
7. Соль и скорость
7.1 Понятие скорости в JTR
7.2 Соли и разница во времени
8. Пароли и хеши
8.1 Генерёнка
8.2 Фейк пароли
8.3 Чудесные совпадения
9. Специальные возможности
10. Ссылки
11. О чем я не сказал
12. Changelog
1. Вступление
1.1 Чушь от автора
Когда-то давно, наверное в начале весны мне предложили написать статью по JTR и правилам в нем, то есть объясняю правила и попутно объясняя и сравнивая правила в PassordsPro. Через пару дней я начал собирать материалы и тесты, но будучи очень ленивым человеком закинул это дело. Иногда у меня бывали просветления и у меня снова хватало интузиазма на 1-3 дня. В итоге к июлю месяцу поработав достаточно с джоном чтоб отличать правило от правила я решил дописать материал, но уже с точки зрения практического применения джона на реальных примерах в полевых условиях. К сожалению до отдыха сделать я это не успел и отложил к сентябрю, а на отдыхе мне стало так скучно, что я начал писать всё это дело с нуля, и за неимением некоторых материалов и тестов кое-что я упущу, но думаю в этом материале вы найдете то, что нигде не видели и что не знали.
Почему JTR? Потому что на данный момент нет не одной известной мне программы, которая по своей функциональности может поспорить с джоном. Одна будет быстрее, но будет ограничена, другая красивая, но медленная, в третей еще что-то. Да и еще за джона платить не надо. Достаточно людей, которые занимаются расшифровкой не умеют работать с джоном, часто такое происходит по двум причинам - незнание англ языка и неприязнь к командной строке. Лично я не страдаю ни тем ни другим, и вообще люблю командную строку :) Постоянный житель на моем компе это Cygwin. Достаточно часто я не мог найти нужный мне софт или сделать что-то средствами CMD, зато всегда мог сделать через шелл скрипт. Для тех у кого пробелмы с англ, постараюсь что-то обьяснить, для тех у кого неприязнь к командной строке, попробуем ее отбить :)
Сразу хочу выразить благодарности:
X_Lex - за то что сподвиг меня на написание этого материала, за помощь в изучении JTR с самого начала
Grey, GreenBear, hhover - за скрипты которые я использовал во время работы со статьей
Tutton - за огромные базы реальных паролей, сразу же людям которые помогли мне когда-то в этом вопросе : ettee, c411k, -=lebed=-
Материал основан на собственных знаниях и опытах и также не был бы возможен без материалов и помощи людей из WaPBBS Decrypt Clan за что им огромная благодарность.
И еще, у меня не было лимонного или апельсинового сока во время написания и публикации статьи, я пил пиво и ел сыр Косичку, либо пил чай и ел шоколад с изюмом и орехами :)
Да, и я не несу ответственности за возможный причененный вред вашой психике, который будет получен прямым или косвенный путем во время чтения данного материала. Так что не рекомендую читать это детям, старикам, животным, людям с болезнями сердца и расстройствами психики или желудка
1.2 Обозначения и прочие комментарии к статьеJohn The Ripper - JTR, джон
Важные замечания выделены отступом и красным знаком восклицания.
Все примеры в статье использованы со специальной сборкой JTR от Maxx'a, версией под Windows. Это значит что основная часть функций и примеров в этой статье будет недоступна при работе с официальной версией (с оффициальной сборкой я вообще практически не работал :)) - данную версию брать здесь Патчи, модификации, скрипты для John the Ripper и подбора паролей в целом
В статье будут упоминаться примеры работы только с DES и FreeBSD MD5 хешами - как основными жертвами JTR. Это сделано потому, что для работы с другими хешами достаточно софта, и потому что с перечисленными хешами есть некоторая специфика работы в JTR.
У меня на компе есть john.md.exe и john.dessql.exe - для работы с разными типами хешей, в статье в общем случае будет упоминаться просто john
2. Краткая справка о JTR
2.1 john.conf и принцип работы
Я очень надеялся что не буду писать "для новичков", в плане "наберем cmd, в черном окошке напишем john -i:Alpha passwords", но видимо придеться учитывая некоторые вопросы которые поступили во время написания статьи - существует достаточно материала на русском, но люди все равно леняться читать. Все равно я постараюсь писать таким образом, предполагая что человек уже по крайней мере умеет запускать джона.
На счет содержимого папочки run:
john.conf - файл конфигурации
password.lst - если верить описанию ;) то тут упомянуты самые популярные пароли с середины 90 годов.
john.pot - в этом файле сохраняется в виде login : password то, что вы уже подобрали
*.rec - файлы сессии. Они нужны для востановления работы сессии если вы ее прервали
*.log - лог файл, тут всё ясно
*.chr - чарсеты, некие "rainbow tables" джона, по ним совершается атака в режиме incremental по определенной закономерности
Начнем вскрытие... сердцем джона или же мозгом, является его конфигурационный файл, вам часто придеться его редактировать. Крови не боитесь? Тогда открываем, нас ожидают пару банок хорошего мясного лечО :)
Конфиг делится на секции, секции заключены в квадратные скобки. Например, [Options]. В секции Options вас будут интересовать только две опции
# Use idle cycles only - приоритет запуска джона, в данном случае это Normal
Idle = n
# Crash recovery file saving delay in seconds - сохранение сессии работы каждые 30 секунд
Save = 30
Думаю тут и без знания англ можно было понять, но мало ли...Кстати комментарии выделяются с помощью # либо ;. Далее идут секции с заголовками:
[Mask] - здесь наборы символов для режима перебора -mask
- наборы символов для перебора с опцией -builtin (данный режим как и -mask есть только в версии которую мы рассматриваем)
[List.Rules:Single] - набор правил для режима -single
[List.Rules:Wordlist] - набор правил для режимa -wordlist
[Incremental:*] - определение чарсетов для -incremental режима
[List.External:*] - генераторы внешних переборщиков
В каждом из этих блоков вы можете создавать свои наборы и правила, править и удалять что захотите, но секцию Single лучше не трогать. Не потому что джон вдруг перестанет работаеть без нее, а потому что правила в данной секции писались и тестировались достаточное время, чтобы можно было признать их авторитетность :), и потому что логины после нахождения пароля откидываются. То есть если вы нашли 100 паролей, то 100 логинов уже не смогут быть использованы в режиме -Single, очевидно это актуально когда логины разные и не придуманы вами для нумерации
Допустим вы смогли запустить джона ;) но тут он вам выдал ошибку что хеши не загружены, очень распространенная ошибка у новичков
! Минимальный формат который понимает джон имеет вид login:hash. Если в конце хеша есть пробел, хеш не будет воспринят
И так, вы запустили джона, что же происходит дальше?
1) из файла (дальше passfile) загружаются хеши
2) из john.pot читаются уже найденные пароли
3) идет сравнение хешей из этих двух файлов между собой, если совпадение найдено, то хеш выкидывается из перебора
! Расспространенное заблуждение, что если вы однажды нашли какой-то пароль, то в следующий раз если он будет в переборе, то он будет моментально найден. Это верно только для алгоритмов без соли!!! То есть, если у вас уже найден пароль hotdog, то дав джону хеш этого пароля с другой солью, джон его не найдет в своем pot файле
4) в результате в памяти будет сформирован список хешей для перебора. К примеру, подобное формирование списка для 400 000 хешей может занять около минуты
5) производится перебор по тому режиму что вы задали - допустим атака по словарю
[B]2.2 Режимы работы
Режим Single.
john -single passfile
Данный режим надо прогонять всегда первым, потому что это очень быстрая операция, но смысл в этом есть только в том случае, если вы имеете реальные логины, то есть логины выступают словарем в данном случае, и используются с правилами, которые записаны в секции [List.Rules:Single]
Режим Wordlist.
john -w=dictionary.txt -rules passfile
john -w:dictionary.txt --rules=SomeRules passfile
В данном режиме Джон использует словарь и правила из секций [List.Rules:*] которую вы указали
Если вы указываете просто -rules, то будут использоваться стандартные правила секции [List.Rules:Wordlist].
Если вы указываете -rules:SomeRules, то будут использоваться правила секции [List.Rules:SomeRules].
Обратите внимание что в Джоне возможен разный синтаксис
-w:dict.txt
-w=dict.dic
-rules:test
--rules=big
Режим -Incremental.
john -i:Alpha passfile
Брутфорс, только не тупой в стиле счетчика, то есть не 1,2,3....99,100, а брутфорс по определенным закономерностям, "интеллектуальный". Закономерности определяются файлами *.chr.
Режим -Builtin.
john -i=uld8 -builtin=ld passfile
Режим перебора по встроенному набору
-i=uld8 обозначает, что перебор будет осуществляется по чарсету uld, длиной в 8 символов
-builtin=ld обозначает, что по данному чарсету будут генерироваться слова из смешанного множества ld. (в слове будут И буквы И цифры)
Режим -External.
john -e=Paralel01 passfile
Режим генератора внешних переборщиков - генерация слов будет осуществляться в соответствии с правилами, описанными в секции [List.External:Paralel01]
Режим -Mask.
john -mask=\u\l\l\d\d\d passfile
Режим перебора по маске, в данном примере будут генериться слова по типу Fuk666
Подитожим:
Режим -mask - перебор по шаблону, допустим первая буква заглавная, другие прописные
Режим -external - перебор по специальным правилам. Часто используется как фильтр при генерации чарсета
Режим -incremental - перебор по заранее созданным чарсет файлам, в которых учтена частота использования и позиции символов, что предоставляет некую интеллектуальность перебора, предугадывание.
Режим -builtin - перебор по встроенному набору, нужно лишь наличие строки описания набора в конфиге
Еще бы хотелось напомнить что лучше работать всегда с сессиями, чтоб у вас была возможность всегда восстановить атаку и чтоб без проблем запустить 2 и более джона. Делается это так:
john -session=name i:Alpha passfile
восстановление сессии:
john -restore=name
Стоит заметить, что следующие пары запусков джона делают одно и тоже - не полное имя комманды является ее синонимом
john -single passfile
john -Si passfile
john -restore=name
john -restor=name
3. Статистика
3.1 Множества и затраты времени
Множество - совокупность символов. Алфавит это множество буков. С какими множествами работает дешифровщик?
u (26) = ABCDEFGHIJKLMNOPQRSTUVWXYZ
l (26) = abcdefghijklmnopqrstuvwxyz
s (32) = !@#$%^&*()`~-_=+\|[]{};:'",.<>/?
d (10) = 0-9
Вы должны к ним привыкнуть и запомнить. В скобках указано количество символов множества, всего 94 символа (с пробелом будет 95).
Далее приведена таблица, в которой указано количество комбинаций в множестве, сколько займет времени прохождение этого множества. Взято для 1 DES зеша со скоростью 657700.
В таблице alpha 6 это lu6.
множество | комбинаций | в секундах | в h:m:s
================================================== =================
low alpha 4 | 456976 | 0.694809183518| 0:00:00
low alpha 5 | 11881376 | 18.0650387715 | 0:00:18
low alpha 6 | 308915776 | 469.691008058 | 0:07:49
low alpha 7 | 8031810176 | 12211.9662095 | 3:23:31
low alpha 8 | 208827064576 | 317511.121447 | 88:11:51
low alpha 9 | 5429503678976 | 8255289.15763 | 95 days
------------------------------------------------------------------------
alpha 4 | 7311616 | 11.1169469363 | 0:00:11
alpha 5 | 380204032 | 578.081240687 | 0:09:38
alpha 6 | 19770609664 | 30060.2245157 | 8:21:00
alpha 7 | 1028071702528 | 1563131.67482 | 18 days
alpha 8 | 53459728531456| 81282847.0906 | 941 days
------------------------------------------------------------------------
digits 4 | 10000 |0.0152045005322| 0:00:00
digits 5 | 100000 | 0.152045005322| 0:00:00
digits 6 | 1000000 | 1.52045005322 | 0:00:01
digits 7 | 10000000 | 15.2045005322 | 0:00:15
digits 8 | 100000000 | 152.045005322 | 0:02:32
digits 9 | 1000000000 | 1520.45005322 | 0:25:20
------------------------------------------------------------------------
low digits 4 | 1679616 | 2.55377223658 | 0:00:02
low digits 5 | 60466176 | 91.935800517 | 0:01:31
low digits 6 | 2176782336 | 3309.68881861 | 0:55:09
low digits 7 | 78364164096 | 119148.79747 | 33:05:48
low digits 8 | 2821109907456 | 4289356.70892 | 50 days
------------------------------------------------------------------------
alpha digits 4 | 14776336 | 22.4666808575 | 0:00:22
alpha digits 5 | 916132832 | 1392.93421317 | 0:23:12
alpha digits 6 | 56800235584 | 86361.9212164 | 23:59:21
alpha digits 7 | 3521614606208 | 5354439.11541 | 62 days
alpha digits 8 |218340105584896| 331975225.156 | 3842 days
------------------------------------------------------------------------
low special 4 | 11316496 | 17.2061669454 | 0:00:17
low special 5 | 656356768 | 997.957682834 | 0:16:37
low special 6 | 38068692544 | 57881.5456044 | 16:04:41
low special 7 | 2207984167552 | 3357129.64505 | 38 days
low special 8 |128063081718016| 194713519.413 | 2253 days
------------------------------------------------------------------------
all 4 | 78074896 | 118.708979778 | 0:01:58
all 5 | 7339040224 | 11158.6440991 | 3:05:58
all 6 | 689869781056 | 1048912.54532 | 12 days
all 7 | 64847759419264| 98597779.2599 | 1141 days
all 8 |6095689385410816| 9268191250.43| 107270 days
3.2 Частые комбинации, словообразующие
Частота встречаемости букв в англ, французском, немецком, испанском языках. Красным выделено первые пять самых частых букв в англ языке
| Eng | Fr | De | Sp |
=================================
a | 8.167 | 7.636 | 6.51 |12.53 |
b | 1.492 | 0.901 | 1.89 | 1.42 |
c | 2.782 | 3.260 | 3.06 | 4.68 |
d | 4.253 | 3.669 | 5.08 | 5.86 |
e |12.702 |14.715 |17.40 |13.68 |
f | 2.228 | 1.066 | 1.66 | 0.69 |
g | 2.015 | 0.866 | 3.01 | 1.01 |
h | 6.094 | 0.737 | 4.76 | 0.70 |
i | 6.966 | 7.529 | 7.55 | 6.25 |
j | 0.153 | 0.545 | 0.27 | 0.44 |
k | 0.772 | 0.049 | 1.21 | 0.00 |
l | 4.025 | 5.456 | 3.44 | 4.97 |
m | 2.406 | 2.968 | 2.53 | 3.15 |
n | 6.749 | 7.095 | 9.78 | 6.71 |
o | 7.507 | 5.378 | 2.51 | 8.68 |
p | 1.929 | 3.021 | 0.79 | 2.51 |
q | 0.095 | 1.362 | 0.02 | 0.88 |
r | 5.987 | 6.553 | 7.00 | 6.87 |
s | 6.327 | 7.948 | 7.27 | 7.98 |
t | 9.056 | 7.244 | 6.15 | 4.63 |
u | 2.758 | 6.311 | 4.35 | 3.93 |
v | 0.978 | 1.628 | 0.67 | 0.90 |
w | 2.360 | 0.114 | 1.89 | 0.02 |
x | 0.150 | 0.387 | 0.03 | 0.22 |
y | 1.974 | 0.308 | 0.04 | 0.90 |
z | 0.074 | 0.136 | 1.13 | 0.52 |
Для англ языка имеем следующее:
Самые частые буквы в начале слова
T, O, A, W, B, C, D, S, F, M, R, H, I, Y, E, G, L, N, O, U, J, K
Самые частые буквы вторые с начала
H, O, E, I, A, U, N, R, T
Самые частые буквы третьи с начала
E, S, A, R, N, I
Самые частые буквы в конце слова
E, S, T, D, N, R, Y, F, L, O, G, H, A, K, M, P, U, W
Более половину слов заканчиваются на буквы
E ,T, D, S
Буквы которые чаще всего встречаются после Е
R,S,N,D
Самые частые биграммы
TH, HE, AN, IN, ER, ON, RE, ED, ND, HA, AT, EN, ES, OF, NT, EA, TI, TO, IO, LE, IS, OU, AR, AS, DE, RT, VE
Самые частые триграммы
THE, AND, THA, ENT, ION, TIO, FOR, NDE, HAS, NCE, TIS, OFT, MEN
Самые частые парные комбинации одной буквы
SS, EE, TT, FF, LL, MM, OO
Статистика самых частых комбинаций в начале и конце слова. Сделано по моему словарю в 20мб (ровно 2320000 слов) из настоящих баз, попались и генеренные пароли, но я обнаружил это слишком поздно что отфильтровать их. top15:
первые | последние
==============================
c | co | cra | 1 | er | 000
s | cr | mar | 2 | 00 | 123
m | ma | coo | 3 | an | man
a | mi | con | s | on | ter
b | al | cor | e | 01 | ing
d | ch | ale | 9 | 23 | 001
p | st | col | a | 11 | son
t | ba | com | n | in | ers
1 | sa | cro | 0 | 99 | ova
k | ca | cio | 7 | 69 | ina
l | an | cou | 5 | 12 | one
r | ki | pro | 4 | es | 999
j | pa | cre | 6 | en | 111
g | da | and | 8 | 22 | ine
n | ro | cha | r | 77 | ler
Чьи щиты прочней
Чей расчет верней
Этот спор будет решен" (с)
wtFAQ? - John the Ripper, практическое пособие
Cодержание:
1. Вступление
1.1 Чушь от автора (можно пропустить)
1.2 Обозначения и прочие комментарии к статье
2. Краткая справка по JTR
2.1 john.conf и принцип работы
2.2 Режимы работы
3. Статистика (должен знать каждый, но вам решать)
3.1 Множества и затраты времени (можно пропустить)
3.2 Частые комбинации, словообразующие
4. Правила в JTR
4.1 Перевод секции Wordlist
4.2 Статистика по реальной базе (гляньте хоть мельком)
4.3 Извращенное использование правил (для извращенцев ;))
5. Чарсеты
6. External, builttin
6.1 Создание специальных чарсетов
7. Соль и скорость
7.1 Понятие скорости в JTR
7.2 Соли и разница во времени
8. Пароли и хеши
8.1 Генерёнка
8.2 Фейк пароли
8.3 Чудесные совпадения
9. Специальные возможности
10. Ссылки
11. О чем я не сказал
12. Changelog
1. Вступление
1.1 Чушь от автора
Когда-то давно, наверное в начале весны мне предложили написать статью по JTR и правилам в нем, то есть объясняю правила и попутно объясняя и сравнивая правила в PassordsPro. Через пару дней я начал собирать материалы и тесты, но будучи очень ленивым человеком закинул это дело. Иногда у меня бывали просветления и у меня снова хватало интузиазма на 1-3 дня. В итоге к июлю месяцу поработав достаточно с джоном чтоб отличать правило от правила я решил дописать материал, но уже с точки зрения практического применения джона на реальных примерах в полевых условиях. К сожалению до отдыха сделать я это не успел и отложил к сентябрю, а на отдыхе мне стало так скучно, что я начал писать всё это дело с нуля, и за неимением некоторых материалов и тестов кое-что я упущу, но думаю в этом материале вы найдете то, что нигде не видели и что не знали.
Почему JTR? Потому что на данный момент нет не одной известной мне программы, которая по своей функциональности может поспорить с джоном. Одна будет быстрее, но будет ограничена, другая красивая, но медленная, в третей еще что-то. Да и еще за джона платить не надо. Достаточно людей, которые занимаются расшифровкой не умеют работать с джоном, часто такое происходит по двум причинам - незнание англ языка и неприязнь к командной строке. Лично я не страдаю ни тем ни другим, и вообще люблю командную строку :) Постоянный житель на моем компе это Cygwin. Достаточно часто я не мог найти нужный мне софт или сделать что-то средствами CMD, зато всегда мог сделать через шелл скрипт. Для тех у кого пробелмы с англ, постараюсь что-то обьяснить, для тех у кого неприязнь к командной строке, попробуем ее отбить :)
Сразу хочу выразить благодарности:
X_Lex - за то что сподвиг меня на написание этого материала, за помощь в изучении JTR с самого начала
Grey, GreenBear, hhover - за скрипты которые я использовал во время работы со статьей
Tutton - за огромные базы реальных паролей, сразу же людям которые помогли мне когда-то в этом вопросе : ettee, c411k, -=lebed=-
Материал основан на собственных знаниях и опытах и также не был бы возможен без материалов и помощи людей из WaPBBS Decrypt Clan за что им огромная благодарность.
И еще, у меня не было лимонного или апельсинового сока во время написания и публикации статьи, я пил пиво и ел сыр Косичку, либо пил чай и ел шоколад с изюмом и орехами :)
Да, и я не несу ответственности за возможный причененный вред вашой психике, который будет получен прямым или косвенный путем во время чтения данного материала. Так что не рекомендую читать это детям, старикам, животным, людям с болезнями сердца и расстройствами психики или желудка
1.2 Обозначения и прочие комментарии к статьеJohn The Ripper - JTR, джон
Важные замечания выделены отступом и красным знаком восклицания.
Все примеры в статье использованы со специальной сборкой JTR от Maxx'a, версией под Windows. Это значит что основная часть функций и примеров в этой статье будет недоступна при работе с официальной версией (с оффициальной сборкой я вообще практически не работал :)) - данную версию брать здесь Патчи, модификации, скрипты для John the Ripper и подбора паролей в целом
В статье будут упоминаться примеры работы только с DES и FreeBSD MD5 хешами - как основными жертвами JTR. Это сделано потому, что для работы с другими хешами достаточно софта, и потому что с перечисленными хешами есть некоторая специфика работы в JTR.
У меня на компе есть john.md.exe и john.dessql.exe - для работы с разными типами хешей, в статье в общем случае будет упоминаться просто john
2. Краткая справка о JTR
2.1 john.conf и принцип работы
Я очень надеялся что не буду писать "для новичков", в плане "наберем cmd, в черном окошке напишем john -i:Alpha passwords", но видимо придеться учитывая некоторые вопросы которые поступили во время написания статьи - существует достаточно материала на русском, но люди все равно леняться читать. Все равно я постараюсь писать таким образом, предполагая что человек уже по крайней мере умеет запускать джона.
На счет содержимого папочки run:
john.conf - файл конфигурации
password.lst - если верить описанию ;) то тут упомянуты самые популярные пароли с середины 90 годов.
john.pot - в этом файле сохраняется в виде login : password то, что вы уже подобрали
*.rec - файлы сессии. Они нужны для востановления работы сессии если вы ее прервали
*.log - лог файл, тут всё ясно
*.chr - чарсеты, некие "rainbow tables" джона, по ним совершается атака в режиме incremental по определенной закономерности
Начнем вскрытие... сердцем джона или же мозгом, является его конфигурационный файл, вам часто придеться его редактировать. Крови не боитесь? Тогда открываем, нас ожидают пару банок хорошего мясного лечО :)
Конфиг делится на секции, секции заключены в квадратные скобки. Например, [Options]. В секции Options вас будут интересовать только две опции
# Use idle cycles only - приоритет запуска джона, в данном случае это Normal
Idle = n
# Crash recovery file saving delay in seconds - сохранение сессии работы каждые 30 секунд
Save = 30
Думаю тут и без знания англ можно было понять, но мало ли...Кстати комментарии выделяются с помощью # либо ;. Далее идут секции с заголовками:
[Mask] - здесь наборы символов для режима перебора -mask
- наборы символов для перебора с опцией -builtin (данный режим как и -mask есть только в версии которую мы рассматриваем)
[List.Rules:Single] - набор правил для режима -single
[List.Rules:Wordlist] - набор правил для режимa -wordlist
[Incremental:*] - определение чарсетов для -incremental режима
[List.External:*] - генераторы внешних переборщиков
В каждом из этих блоков вы можете создавать свои наборы и правила, править и удалять что захотите, но секцию Single лучше не трогать. Не потому что джон вдруг перестанет работаеть без нее, а потому что правила в данной секции писались и тестировались достаточное время, чтобы можно было признать их авторитетность :), и потому что логины после нахождения пароля откидываются. То есть если вы нашли 100 паролей, то 100 логинов уже не смогут быть использованы в режиме -Single, очевидно это актуально когда логины разные и не придуманы вами для нумерации
Допустим вы смогли запустить джона ;) но тут он вам выдал ошибку что хеши не загружены, очень распространенная ошибка у новичков
! Минимальный формат который понимает джон имеет вид login:hash. Если в конце хеша есть пробел, хеш не будет воспринят
И так, вы запустили джона, что же происходит дальше?
1) из файла (дальше passfile) загружаются хеши
2) из john.pot читаются уже найденные пароли
3) идет сравнение хешей из этих двух файлов между собой, если совпадение найдено, то хеш выкидывается из перебора
! Расспространенное заблуждение, что если вы однажды нашли какой-то пароль, то в следующий раз если он будет в переборе, то он будет моментально найден. Это верно только для алгоритмов без соли!!! То есть, если у вас уже найден пароль hotdog, то дав джону хеш этого пароля с другой солью, джон его не найдет в своем pot файле
4) в результате в памяти будет сформирован список хешей для перебора. К примеру, подобное формирование списка для 400 000 хешей может занять около минуты
5) производится перебор по тому режиму что вы задали - допустим атака по словарю
[B]2.2 Режимы работы
Режим Single.
john -single passfile
Данный режим надо прогонять всегда первым, потому что это очень быстрая операция, но смысл в этом есть только в том случае, если вы имеете реальные логины, то есть логины выступают словарем в данном случае, и используются с правилами, которые записаны в секции [List.Rules:Single]
Режим Wordlist.
john -w=dictionary.txt -rules passfile
john -w:dictionary.txt --rules=SomeRules passfile
В данном режиме Джон использует словарь и правила из секций [List.Rules:*] которую вы указали
Если вы указываете просто -rules, то будут использоваться стандартные правила секции [List.Rules:Wordlist].
Если вы указываете -rules:SomeRules, то будут использоваться правила секции [List.Rules:SomeRules].
Обратите внимание что в Джоне возможен разный синтаксис
-w:dict.txt
-w=dict.dic
-rules:test
--rules=big
Режим -Incremental.
john -i:Alpha passfile
Брутфорс, только не тупой в стиле счетчика, то есть не 1,2,3....99,100, а брутфорс по определенным закономерностям, "интеллектуальный". Закономерности определяются файлами *.chr.
Режим -Builtin.
john -i=uld8 -builtin=ld passfile
Режим перебора по встроенному набору
-i=uld8 обозначает, что перебор будет осуществляется по чарсету uld, длиной в 8 символов
-builtin=ld обозначает, что по данному чарсету будут генерироваться слова из смешанного множества ld. (в слове будут И буквы И цифры)
Режим -External.
john -e=Paralel01 passfile
Режим генератора внешних переборщиков - генерация слов будет осуществляться в соответствии с правилами, описанными в секции [List.External:Paralel01]
Режим -Mask.
john -mask=\u\l\l\d\d\d passfile
Режим перебора по маске, в данном примере будут генериться слова по типу Fuk666
Подитожим:
Режим -mask - перебор по шаблону, допустим первая буква заглавная, другие прописные
Режим -external - перебор по специальным правилам. Часто используется как фильтр при генерации чарсета
Режим -incremental - перебор по заранее созданным чарсет файлам, в которых учтена частота использования и позиции символов, что предоставляет некую интеллектуальность перебора, предугадывание.
Режим -builtin - перебор по встроенному набору, нужно лишь наличие строки описания набора в конфиге
Еще бы хотелось напомнить что лучше работать всегда с сессиями, чтоб у вас была возможность всегда восстановить атаку и чтоб без проблем запустить 2 и более джона. Делается это так:
john -session=name i:Alpha passfile
восстановление сессии:
john -restore=name
Стоит заметить, что следующие пары запусков джона делают одно и тоже - не полное имя комманды является ее синонимом
john -single passfile
john -Si passfile
john -restore=name
john -restor=name
3. Статистика
3.1 Множества и затраты времени
Множество - совокупность символов. Алфавит это множество буков. С какими множествами работает дешифровщик?
u (26) = ABCDEFGHIJKLMNOPQRSTUVWXYZ
l (26) = abcdefghijklmnopqrstuvwxyz
s (32) = !@#$%^&*()`~-_=+\|[]{};:'",.<>/?
d (10) = 0-9
Вы должны к ним привыкнуть и запомнить. В скобках указано количество символов множества, всего 94 символа (с пробелом будет 95).
Далее приведена таблица, в которой указано количество комбинаций в множестве, сколько займет времени прохождение этого множества. Взято для 1 DES зеша со скоростью 657700.
В таблице alpha 6 это lu6.
множество | комбинаций | в секундах | в h:m:s
================================================== =================
low alpha 4 | 456976 | 0.694809183518| 0:00:00
low alpha 5 | 11881376 | 18.0650387715 | 0:00:18
low alpha 6 | 308915776 | 469.691008058 | 0:07:49
low alpha 7 | 8031810176 | 12211.9662095 | 3:23:31
low alpha 8 | 208827064576 | 317511.121447 | 88:11:51
low alpha 9 | 5429503678976 | 8255289.15763 | 95 days
------------------------------------------------------------------------
alpha 4 | 7311616 | 11.1169469363 | 0:00:11
alpha 5 | 380204032 | 578.081240687 | 0:09:38
alpha 6 | 19770609664 | 30060.2245157 | 8:21:00
alpha 7 | 1028071702528 | 1563131.67482 | 18 days
alpha 8 | 53459728531456| 81282847.0906 | 941 days
------------------------------------------------------------------------
digits 4 | 10000 |0.0152045005322| 0:00:00
digits 5 | 100000 | 0.152045005322| 0:00:00
digits 6 | 1000000 | 1.52045005322 | 0:00:01
digits 7 | 10000000 | 15.2045005322 | 0:00:15
digits 8 | 100000000 | 152.045005322 | 0:02:32
digits 9 | 1000000000 | 1520.45005322 | 0:25:20
------------------------------------------------------------------------
low digits 4 | 1679616 | 2.55377223658 | 0:00:02
low digits 5 | 60466176 | 91.935800517 | 0:01:31
low digits 6 | 2176782336 | 3309.68881861 | 0:55:09
low digits 7 | 78364164096 | 119148.79747 | 33:05:48
low digits 8 | 2821109907456 | 4289356.70892 | 50 days
------------------------------------------------------------------------
alpha digits 4 | 14776336 | 22.4666808575 | 0:00:22
alpha digits 5 | 916132832 | 1392.93421317 | 0:23:12
alpha digits 6 | 56800235584 | 86361.9212164 | 23:59:21
alpha digits 7 | 3521614606208 | 5354439.11541 | 62 days
alpha digits 8 |218340105584896| 331975225.156 | 3842 days
------------------------------------------------------------------------
low special 4 | 11316496 | 17.2061669454 | 0:00:17
low special 5 | 656356768 | 997.957682834 | 0:16:37
low special 6 | 38068692544 | 57881.5456044 | 16:04:41
low special 7 | 2207984167552 | 3357129.64505 | 38 days
low special 8 |128063081718016| 194713519.413 | 2253 days
------------------------------------------------------------------------
all 4 | 78074896 | 118.708979778 | 0:01:58
all 5 | 7339040224 | 11158.6440991 | 3:05:58
all 6 | 689869781056 | 1048912.54532 | 12 days
all 7 | 64847759419264| 98597779.2599 | 1141 days
all 8 |6095689385410816| 9268191250.43| 107270 days
3.2 Частые комбинации, словообразующие
Частота встречаемости букв в англ, французском, немецком, испанском языках. Красным выделено первые пять самых частых букв в англ языке
| Eng | Fr | De | Sp |
=================================
a | 8.167 | 7.636 | 6.51 |12.53 |
b | 1.492 | 0.901 | 1.89 | 1.42 |
c | 2.782 | 3.260 | 3.06 | 4.68 |
d | 4.253 | 3.669 | 5.08 | 5.86 |
e |12.702 |14.715 |17.40 |13.68 |
f | 2.228 | 1.066 | 1.66 | 0.69 |
g | 2.015 | 0.866 | 3.01 | 1.01 |
h | 6.094 | 0.737 | 4.76 | 0.70 |
i | 6.966 | 7.529 | 7.55 | 6.25 |
j | 0.153 | 0.545 | 0.27 | 0.44 |
k | 0.772 | 0.049 | 1.21 | 0.00 |
l | 4.025 | 5.456 | 3.44 | 4.97 |
m | 2.406 | 2.968 | 2.53 | 3.15 |
n | 6.749 | 7.095 | 9.78 | 6.71 |
o | 7.507 | 5.378 | 2.51 | 8.68 |
p | 1.929 | 3.021 | 0.79 | 2.51 |
q | 0.095 | 1.362 | 0.02 | 0.88 |
r | 5.987 | 6.553 | 7.00 | 6.87 |
s | 6.327 | 7.948 | 7.27 | 7.98 |
t | 9.056 | 7.244 | 6.15 | 4.63 |
u | 2.758 | 6.311 | 4.35 | 3.93 |
v | 0.978 | 1.628 | 0.67 | 0.90 |
w | 2.360 | 0.114 | 1.89 | 0.02 |
x | 0.150 | 0.387 | 0.03 | 0.22 |
y | 1.974 | 0.308 | 0.04 | 0.90 |
z | 0.074 | 0.136 | 1.13 | 0.52 |
Для англ языка имеем следующее:
Самые частые буквы в начале слова
T, O, A, W, B, C, D, S, F, M, R, H, I, Y, E, G, L, N, O, U, J, K
Самые частые буквы вторые с начала
H, O, E, I, A, U, N, R, T
Самые частые буквы третьи с начала
E, S, A, R, N, I
Самые частые буквы в конце слова
E, S, T, D, N, R, Y, F, L, O, G, H, A, K, M, P, U, W
Более половину слов заканчиваются на буквы
E ,T, D, S
Буквы которые чаще всего встречаются после Е
R,S,N,D
Самые частые биграммы
TH, HE, AN, IN, ER, ON, RE, ED, ND, HA, AT, EN, ES, OF, NT, EA, TI, TO, IO, LE, IS, OU, AR, AS, DE, RT, VE
Самые частые триграммы
THE, AND, THA, ENT, ION, TIO, FOR, NDE, HAS, NCE, TIS, OFT, MEN
Самые частые парные комбинации одной буквы
SS, EE, TT, FF, LL, MM, OO
Статистика самых частых комбинаций в начале и конце слова. Сделано по моему словарю в 20мб (ровно 2320000 слов) из настоящих баз, попались и генеренные пароли, но я обнаружил это слишком поздно что отфильтровать их. top15:
первые | последние
==============================
c | co | cra | 1 | er | 000
s | cr | mar | 2 | 00 | 123
m | ma | coo | 3 | an | man
a | mi | con | s | on | ter
b | al | cor | e | 01 | ing
d | ch | ale | 9 | 23 | 001
p | st | col | a | 11 | son
t | ba | com | n | in | ers
1 | sa | cro | 0 | 99 | ova
k | ca | cio | 7 | 69 | ina
l | an | cou | 5 | 12 | one
r | ki | pro | 4 | es | 999
j | pa | cre | 6 | en | 111
g | da | and | 8 | 22 | ine
n | ro | cha | r | 77 | ler