Смекни!
smekni.com

Програми аудиту та зламу паролів John The Ripper та L0phtcrack (стр. 2 из 3)

# Prepend digits (adds 10 more passes through the wordlist)

[0123456789]

Ми можемо розбити це правило на три частини. Символ ^ означає, що операція повинна починатися від початку слова. Іншими словами, вона повинна випереджати послідовність символів. Квадратні дужки [і] містять набір символів, які повинні слідувати за символом ^. Цифри 0123456789 є символами, які повинні передувати слово. Отже, якщо наше правило працює з рядком "letmein", йому знадобиться лише десять спроб, щоб пробігти від комбінації "0letmein" до"9letmein".

Ми можемо визначити будь-який набір символів, який буде вставлятися в рядок. Повний список слів буде перероблений для кожного з додаткових символів. Наприклад, список з 1000 слів може реально перетворитися на список з 10000, якщо до кожного слова в початок буде доданий один із символів від 0 до 9. Нижче наведені деякі, найбільш часто використовувані символи, які додаються до базових словами.

[0123456789]. Цифри.

[!@#$%^&*()]. Верхній регістр для цифр.

[,.?!]. Знаки пунктуації.

Ми можемо використовувати перетворення правил для зміни регістру або типу (верхній, нижній, від e до 3) символів, або видалення окремих типів символів.


? V? Голосні (a, e, i, o, u).

s? v.? Заміна голосних точкою (.).

@ @? V? Видалити всі голосні.

@ @ A? Видалити всі букви a.

sa4? Замінити всі букви a на 4.

se3? Замінити всі букви e на 3.

l *? Де * символ, який треба перевести в нижній регістр.

u *? Де * символ, який треба перевести у верхній регістр.

Правила - чудовий спосіб підвищити продуктивність підбору пароля, особливо ті з них, які додають символи або правила l33t, що замінюють символи і цифри. Правила найбільш підходять для випадку, коли швидкість роботи комп'ютера не більше, ніж у мавпи, яка вважає на рахунках. Сьогодні, коли за кілька сотень доларів можна купити процесор з тактовою частотою більше 1GHz, ви не багато втратите, пропустивши етап обробки складними правилами, і перейдете безпосередньо до прямого перебору.

Складні правила і великі словники не зможуть зламати будь-який пароль. Це змушує вдаватися до атаки методом прямого перебору. Іншими словами, ми будемо пробувати всі можливі комбінації символів заданої довжини. Програма може перемикатися в режим прямого перебору за замовчуванням, якщо в командному рядку не задано жодних параметрів. Щоб змусити програму перейти до прямого перебору, використовуйте параметр-incremental.

[Root @ hedwig run] #. / John-incremental: LanMan passwd.lanman

Loaded 1152 passwords with no different salts (NT LM DES [64/64 BS MMX])

За замовчуванням файл john.conf містить чотири адитивних параметра.

All. Нижній регістр, верхній регістр, цифри, пунктуація, SHIFT +.

Alpha. Нижній регістр.

Digits. Від 0 до 9.

LanMan. Те ж, що і All, за винятком нижнього регістра.

Кожен адитивний параметр має п'ять полів у файлі john. conf. Наприклад, стрічка для LanMan містить наступні поля.

[Incremental: LanMan]. Опис параметра.

File =. / Lanman.chr. Файл використовуваний як список символів.

MinLen = 0. Мінімальна довжина генерується рядка.

MaxLen = 7. Максимальна довжина генерується рядка.

CharCount = 69. Кількість символів у списку.

Аналогічно рядок для ALL містить наступні поля.

[Incremental: All]. Опис параметра.

File =. / All.chr. Файл, який використовується як список символів.

MinLen = 0. Мінімальна довжина генерується рядка.

MaxLen = 8. Максимальна довжина генерується рядка.

CharCount = 95. Кількість символів у списку.

Поля MinLen і MaxLen найбільш важливі, оскільки ми можемо змінювати їх для визначення атаки. У MaxLen для LanMan ніколи не може бути більше семи символів. Число CharCount в ступені MaxLen дає кількість комбінацій, необхідне для повного завершення атаки перебором. Наприклад, загальна кількість комбінацій для роботи з паролями LanMan становить 7.6 трильйона. Загальна кількість комбінацій при використанні параметра ALL становить близько 6700 трильйонів! Зауважимо, що безглуздо використовувати параметр incremental: All для підбору паролів LanMan, оскільки немає необхідності окремо перевіряти символи нижнього і верхнього регістрів.

Якщо в розпорядженні список паролів з Unix, про який відомо, що всі паролі складаються з восьми символів, ми можемо змінити значення параметрів. У даному випадку це економить час, оскільки можна не займатися перебором рядків довжиною в сім і менш символів.

[Incremental: All]

File =. / All.chr

MinLen = 8

MaxLen = 8

CharCount = 95

Потім запустимо програму.

[Root @ hedwig run] #. / John-incremental: All passwd.unix

Буде проводитися тільки перебір рядків довжиною у вісім символів. Ми можемо використовувати параметр-stdout, щоб перевірити це. Кожен використаний варіант буде роздруковуватися на екрані.

[Root @ hedwig run] #. / John-incremental: All-stdout

Це корисно, якщо ви перенаправляє вивід в файл, створюєте список слів для подальшого використання з програмою john або іншою утилітою, яка може використовувати файл зі списком слів, наприклад Whisker.

[Root @ hedwig run] #. / John-makechars: guessed

Loaded 3820 plaintexts

Generating charsets... 1 2 3 4 5 6 7 8 DONE

Generating cracking order... DONE

Successfully written charset file: guessed (82 characters)

Відновлення файлів і розподілений злом

Вам слід знати дещо про програму 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 комп'ютерів. На кожній з цих систем програма виконує 400000 c / s (взломів у секунду). Для однієї з цих машин знадобитися 30 тижнів, щоб перебрати всі можливі комбінації з семи символів у випадку роботи з паролями LanMan (69 ^ 7 комбінацій). Запустіть програму на одній з машин на тиждень. Наприкінці тижня запишіть значення "crypt". Візьміть це значення і використовуйте його для іншої машини, і потім помножте значення на 2 і використовуйте отримане число для наступної машини. Тепер 10 комп'ютерів закінчать роботу по перебору всіх комбінацій за три тижні. Ця проста арифметика дозволяє визначити множник X для значення"crypt", яке необхідно записати в 10 файлів - по одному для кожної машини. Перша машина почне перебір з нуля, наступна зі значення нуль плюс X, і так далі.

Загальний час в тижнях.

Tw = (69 ^ 7 / взломів у секунду) / (секунд на тиждень)

Tw = (69 ^ 7 / 400,000) / (604800) = 30.8 тижнів.

"Crypt" множник.

X = Tw / (10 машин)

X = 30.8 / 10 = 3

Значення "crypt" після першого тижня (шістнадцяткове число, взяте з файлу restore): 00030000 00000000.

Нижче наведені значення параметра "crypt" (у шістнадцятковій запису). Це значення, які необхідно записати у файли на кожній системі.

System 1 = 0

System 2 = "crypt" * X = 00090000 00000000

System 3 = "crypt" * X * 2 = 00120000 00000000

System N = "crypt" * X * (N - 1) = restore value

System 10 = "crypt" * X * 9 = 00510000 00000000

Цей метод далекий від елегантності, але ефективний, коли використовується на кількох однакових машинах. Інший спосіб розподіленого злому - використання параметра-external. Цей параметр дозволяє написати свої програми і методи перебору паролів. Зовнішні програми зберігаються у файлі john.conf після директиви List.External. Просто використовуйте директиву-external, як це потрібно.


L0phtcrack

L0phtcrack - утиліта для аудиту і злому паролів знову з'явилася на світ, здобувши по дорозі ряд нових можливостей. Основні можливості програми: Імпорт різна інформації про облікові записи користувачів; Відновлення паролів (атакою по словнику або послідовним перебором); Розбиття послідовного перебору на частини; Обчислення хешей (LM-і NT-хеш за паролем та LM-і NT-відповідей за паролем і запиту сервера), має підтримку 64-бітових процесорів і самих останніх операційних систем від Microsoft, Ubuntu і інших. Крім того, утиліта запропонує новий ефективний підхід до злому хешу NTLM - захисного алгоритму Windows, увійшов у моду декілька років тому... і т.д.

L0phtcrack 6 пропонується світу все тією ж командою хакерів, яка вперше представила її десятиліття тому. У 2005 році, відразу ж після придбання утиліти компанією Symantec, розробка програми була припинена - ймовірно через те, що її агресивна призначення не відповідало духу інших продуктів, що випускаються Symantec.

Багато чого змінилося за ті п'ять років, що пройшли з моменту виходу L0phtcrack 5, і ряд таких змін знайшов відображення у новій версії. Так, L0phtcrack 6 має підтримку 64-бітових процесорів і самих останніх операційних систем від Microsoft, Ubuntu і інших. Крім того, утиліта запропонує новий ефективний підхід до злому хешу NTLM - захисного алгоритму Windows, увійшов у моду декілька років тому.