Програми аудиту та зламу паролів John The Ripper та L0phtcrack

33485
знаков
0
таблиц
0
изображений

Курсова робота

на тему: «Програми аудиту та зламу паролів John The Ripper та L0phtcrack»


Вступ

У Linux паролі шифруються в алгоритмі "DES", також є така річ як "salt", це дві будь-які літери, які є ключем до паролю, іншими словами, за допомогою "salt" і шифрується пароль.

Паролі в більшості випадків зберігаються в таких файлах:

/ Etc / passwd

/ Etc / shadow

Хоча можуть і лежати в якому-небудь / 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

Увага! Насправді ніяких паролів тут немає! А ось якщо бачимо таку ситуацію:

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.

Але відразу хотілося б відзначити, що на файл у якому знаходяться паролі в DES (будь то shadow або passwd), права в більшості випадків дають r -------- або r - r -----, це означає, що права на читання є у root'а та зареєстрованих користувачів (у другому випадку r - r -----).

У Free BSD паролі зберігаються у файлі / etc / master.passwd, а в іншому технологія така ж як і в LINUX, хоча використовується більш стійкий алгоритм шифрування MD5. У Open BSD, для шифрування використовується алгоритм Blowfish.


John The Ripper

John The Ripper - вільна програма, призначена для відновлення паролів за їхніми хешам. Основне призначення програми - аудит слабких паролів у UNIX системах. Програма також може виконувати аудит NTLMхешей, Kerberos, та ін.

John the Ripper, можливо, найшвидший і найбільш універсальний з доступних інструментів, призначених для злому паролів. Програма підтримує шість різних схем хешування паролів, які покривають різні варіанти схем хешування паролів для Unix і Windows LanMan (використовуваний в NT, 2000 і XP). Він може використовувати спеціалізований список слів або правил для паролів, заснованих на типах символів і їх місцезнаходження. Програма працює під управлінням 13 різних операційних систем і підтримує різні процесори, включаючи спеціальні прискорювачі для Pentium і RISC-процесорів.

Реалізація

По-перше, необхідно отримати і скомпілювати програму. Після розпакування john-1.6.31-dev в обраній директорії, вам буде потрібно перейти в директорію / src.

[Root @ hedwig] # tar zxvf john-1.6.31-dev.tar.gz

[Root @ hedwig] # tar zxvf john-1.6.tar.gz

[Root @ hedwig] # cd john-1.6.31-dev

[Root @ hedwig john-1.6.31-dev] # cd src

Наступна команда проста: make <OS name>.

[Root @ hedwig src] # make win32-cygwin-x86-mmx

Потім програма самостійно здійснить збірку версії для вашої платформи. Коли процес закінчиться, виконувані файли і файли конфігурації будуть розміщені в директорії john-1.6.31-dev/run. Версія розробника не містить деякі необхідні файли. Вам знадобиться розпакувати ці файли з архіву john-1.6.tar.gz і помістити його у директорію / run.


[Root @ hedwig] # cd john-1.6.31-dev/run

[Root @ hedwig run] # cp../../john-1.6/run/all.chr.

[Root @ hedwig run] # cp../../john-1.6/run/alpha.chr.

[Root @ hedwig run] # cp../../john-1.6/run/digits.chr.

[Root @ hedwig run] # cp../../john-1.6/run/lanman.chr.

[Root @ hedwig run] # cp../../john-1.6/run/password.lst.

Якщо все пройшло нормально, ви можете протестувати програму. Для решти команд вам слід враховувати, що поточною директорією є john-1.6.31-dev/run. По-перше, переконайтеся, що програма працює, показуючи базову швидкість роботи для вашої системи.

[Root @ hedwig run] #. / John-test

Benchmarking: Traditional DES [64/64 BS MMX]... DONE

Many salts: 323175 c / s

Only one salt: 279202 c / s

Benchmarking: BSDI DES (x725) [64/64 BS MMX]... DONE

Many salts: 10950 c / s

Only one salt: 10770 c / s

Benchmarking: FreeBSD MD5 [32/32]... DONE

Raw: 2437 c / s

Benchmarking: OpenBSD Blowfish (x32) [32/32]... DONE

Raw: 169 c / s

Benchmarking: Kerberos AFS DES [48/64 4K MMX]... DONE

Short: 118816 c / s

Long: 305669 c / s

Benchmarking: NT LM DES [64/64 BS MMX]... DONE

Raw: 487689 c / s

Варті уваги два тести: FreeBSD MD5 і NT LM DES. Кількість взломів у секунду (c / s) відрізняється для цих двох методів у 200 разів. Це означає, що на повну атаку перебором для FreeBSD буде потрібно в 200 разів більше зусиль, ніж на аналогічну роботу для Windows NT! Алгоритм OpenBSD Blowfish ще більш трудомісткий для злому. Це говорить про те, наскільки більш стійким може бути алгоритм шифрування в порівнянні з іншими типами алгоритмів. Замість того щоб говорити, що один алгоритм безпечніше іншого, правильніше буде сказати, що алгоритм Blowfish більш стійкий до атаки перебором.

Злом паролів

Тепер виламаємо пароль. Програма може сприймати три різних формати паролів. Насправді, програма може зламати будь-який шифр паролів, описаний в довідці, отриманої за параметром-test. Все, що вам потрібно зробити, це переформатувати пароль у вигляд, який може прийняти додаток. Якщо ви використовуєте парольний файл Unix або вихідний формат утиліти pwdump, про яку буде розмова пізніше в цій лекції, то вам не потрібно модифікувати формат файлу. Нижче наведено п'ять різних прикладів форматів файлів паролів, які програма знає, як інтерпретувати (рядок пароля виділена жирним шрифтом).

root: rf5V5.Ce31sOE: 0:0::

root: KbmTXiy.OxC.s: 11668:0:99999:7: -1: -1:1075919134

root: $ 1 $ M9/GbWfv $ sktn.4pPetd8zAwvhiB6.1: 11668:0:99999:7: -1: -1:1075919134

root: $ 2a $ 06 $ v3LIuqqw0pX2M4iUnCVZcuyCTLX14lyGNngtGSH4/dCqPHK8RyAie: 0:0 ::::::

Administrator: 500: 66bf9d4b5a703a9baad3b435b51404ee: 17545362d694f996c37129225df11f4c:::

Далі перерахуємо системи, з яких взято наведені вище приклади. Зауважимо, що, незважаючи на те, що кожен з них дещо відрізняється в конкретній операційній системі, формати файлів схожі. Зауважимо також, що ви можете зламати паролі для Solaris, використовуючи Windows-версію програми: для цього необхідна лише реальна рядок пароля; операційна система не важлива.

Solaris DES from / etc / passwd.

Mandrake Linux DES from / etc / shadow.

FreeBSD MD5 from / etc / shadow.

OpenBSD Blowfish from / etc / master.password.

Windows 2000 LAN Manager from \ WINNT \ repair \ SAM.

Паролі можуть бути зламані та програмою, що працює під відмінною від Unix і Windows операційною системою. Для злому одного з цих паролів просто скопіюйте рядок (виділену жирним шрифтом у кожному прикладі) у другому полі файлу у форматі Unix.

Cisco

Вихідна рядок: enable secret 5 $ 1 $ M9/GbWfv $ sktn.4pPetd8zAwvhiB6.1

Фраза для злому: cisco: $ 1 $ M9/GbWfv $ sktn.4pPetd8zAwvhiB6.1::::

Apache. Htaccess-файли, які використовують рядок пароля, сформатована у форматі DES. Apache також підтримує рядки паролів у форматі алгоритмів SHA-1 і MD5, але вони несумісні з форматом програми.

Вихідний формат. Htaccess: dragon: yJMVYngEA6t9c

Формат для програми: dragon: yJMVYngEA6t9c::::

Інші, засновані на алгоритмі DES паролі, такі як WWWBoard.

Вихідний файл passwd.txt: WebAdmin: aepTOqxOi4i8U

Фраза для злому: WebAdmin: aepTOqxOi4i8U: 0:3: www.victim.com::

Для злому пароля з використанням опцій за замовчуванням, ви повинні ввести ім'я файлу в якості аргументу. Для прикладів ми будемо використовувати три різних файлу паролів: passwd.unix, містить паролі, зашифровані за допомогою алгоритму DES, passwd.md5, містить паролі, зашифровані з використанням алгоритму MD5, і passwd.lanman, містить паролі у форматі Windows NT.


[Root @ hedwig run] #. / John passwd.unix

Loaded 189 passwords with 182 different salts

(Traditional DES [64/64 BS MMX])

Програма автоматично вибирає правильний алгоритм шифрування для рядків і починає злом. Натисніть будь-яку клавішу, щоб вивести на екран поточну статистику злому, і CTRL-C, щоб перервати роботу програми. Якщо пароль зламаний, програма виводить на екран і зберігає зламаний пароль для подальшого використання. Щоб подивитися розкриті паролі із спеціального файлу, використовуйте параметр-show.

[Root @ hedwig run] #. / John-show passwd.unix

2buddha: smooth1: 0:3: wwwboard: /: / sbin / sh

ecs: asdfg1: 11262:0:40:5:: 11853:

informix: abc123: 10864:0:40:5:: 12689:

kr: grant5: 11569:0:35:5:: 11853:

mjs: rocky22: 11569:0:35:5:: 11853:

np: ny0b0y: 11572:0:35:5:: 11853:

Всі розкриті паролі зберігаються у файлі john.pot, що представляє собою текстовий файл, який може поповнюватися в відповідно до збільшення кількості зламаних паролів. Слабкі паролі, незалежно від схеми шифрування, можуть бути розкриті за час від декількох хвилин до одного дня. Складні паролі можуть зажадати тижні чи місяці. Однак ми можемо використовувати деякі фокуси, щоб спробувати розколоти ці складні паролі швидше. Можна використовувати докладні файли словників (файли з іноземними словами, іменами, назвами спортивних команд, науково-фантастичними символами), використовувати специфічні комбінації для пароля (завжди не менше двох цифр і символів пунктуації), або розподілити обробку по декількох комп'ютерів.

Словник за замовчуванням для програми міститься у файлі password.lst. Цей файл містить паролі, які найбільш часто зустрічаються серед користувачів. Ви можете знайти декілька альтернативних словників в інтернеті, просто скориставшись пошуковою системою Google. Один з кращих (близько 15Mb) називається bigdict.zip. Використовуйте параметр-wordfile, щоб вказати програмі на необхідність використовувати альтернативний словник.

[Root @ hedwig run] #. / John-wordfile: password.lst passwd.unix

Loaded 188 passwords with 182 different salts

(Traditional DES [64/64 BS MMX])

guesses: 0 time: 0:00:00:01 100%

c / s: 333074 trying: tacobell - zhongguo

Ми навіть можемо робити деякі перестановки в словнику, використовуючи параметр-rules.

[Root @ hedwig run] #. / John-wordfile: password.lst-rules passwd.unix

Loaded 188 passwords with 182 different salts

(Traditional DES [64/64 BS MMX])

guesses: 0 time: 0:00:00:58 100%

c / s: 327702 trying: Wonderin - Zenithin

Щоб зрозуміти функцію параметра-rules, подивимося на файл john.conf (або john.ini для версії 1.6). Нижче наведена частина файлу john.conf, яка описує перестановки в нашому списку слів (коментарі починаються з символу #).

[List.Rules: Wordlist]

# Try words as they are

:

Lowercase every pure alphanumeric word

-C> 3!? XlQ

# Capitalize every pure alphanumeric word

-C> 2 (? A!? XcQ

# Lowercase and pluralize pure alphabetic words

<*> 2!? Alp

# Lowercase pure alphabetic words and append '1 '

<*> 2!? Al $ 1

Ці записи, насправді, не такі складні, як це здається на перший погляд. Базовий синтаксис для більшості цих правил успадкований від утиліти для злому, написаної Алі Маффетом (пам'ятаєте libcrack?). Уявіть, що системна політика паролів вимагає, щоб кожен пароль починався з цифри. Отже, немає необхідності перебирати комбінації рядка "letmein" до тих пір, поки рядок не задовольнятиме вибраній політиці, а рядок "7letmein" може бути правильною. Ось і правило для попереджання слова цифрою.

# 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, увійшов у моду декілька років тому.

Реінкарнація L0phtcrack стала можливою після того, як її автори знову викупили права на цю програму у Symantec, які та придбала в 2004 році разом з компанією @ stake, яка їх одержала за рік до цього після злиття з L0pht.


Інсталяція

Для інсталяції просто розархівуйте дистрибутивний архів у будь-який каталог на жорсткому диску. Створіть ярлик до програми L0phtcrack.exe (або L0phtcrack95.exe для Windows 95/98). Крім того, якщо ви фізично підключені до даної локальної мережі і використовуєте Windows NT 4.0 (або Window 2000), ви можете використовувати мережевий sniffer readsmb.exe, за допомогою якого можна отримати паролі клієнтських машин Windows 3.11/95/95 і MS-DOS Перед використанням мережевого sniffer'a необхідно попередньо встановити мережевий NDIS-драйвер, який входить до дистрибутивний комплект. Цей драйвер може працювати тільки поверх драйвера реально присутньої в системі мережевого Ethernet-плати і використовує протокол CSMA-CD. Для установки NDIS-драйверу відкрийте аплет "Network" (Мережа) у панелі керування. На вкладці "Protocols" (Протоколи) натисніть кнопку "Add" (Додати). Потім натисніть кнопку "Have Disk" (Установити з диска) і визначте каталог, в який ви встановили L0phtCrack і в якому знаходиться файл Oemsetup.inf файл. Після перезавантаження ви зможете використовувати мережевий sniffer readsmb.exe, для перехоплення паролів клієнтських машин Windows.

Спочатку система Windows здавалася більш привабливою з точки зору безпеки паролів, ніж Unix. Більшість Unix-систем ніколи не створюють паролі більше восьми символів.

Windows NT допускає довжину пароля до 14 символів, це майже подвоєння довжини! Mudge і Weld Pond від L0pht Heavy Industries займаються удосконаленням схеми шифрування LanMan. Компанія послідовно випускала кошти, які користувалися перевагою неадекватності схеми шифрування паролів.

Ми вже коротко згадували в цій лекції про систему шифрування LanMan. Ми знаємо, що це система зберігання шифрованих паролів, схожа з форматами Unix-файлів / etc / passwd чи / etc / shadow. Що можна зрозуміти, уважно вивчаючи, як генерується і зберігається в LanMan шифрована рядок? Система Windows зберігає дві версії користувальницького пароля. Перша версія називається LanMan, або LM, хеш. Друга версія - NT-хеш, який шифрується з використанням алгоритму MD5. Це однобічна функція. Пароль шифрується, але ніколи не розшифровується. Рядок LanMan також шифрується за допомогою однопрохідної функції, але в цьому випадку пароль розбивається на дві частини перед тим, як шифруватися з використанням алгоритму DES.

Подивимося на вміст трьох рядків паролів в LanMan. Вони представлені в шістнадцятковій запису і містять 16 байт даних.

898f30164a203ca0 14cc8d7feb12c1db

898f30164a203ca0 aad3b435b51404ee

14cc8d7feb12c1db aad3b435b51404ee

Останні 8 байт другого і третього прикладу однакові: aad3b435b51404ee. Ці значення однакові для всіх паролів довжиною більше восьми символів. Ця криптографічний помилка виникає з двох причин: внаслідок того, що вміст пароля становить більше восьми символів і показує, що при генерації другої половини шифрованого рядки не використовується ніякої інформації про першу половину. Зверніть увагу, що друга половина першого прикладу (14cc8d7feb12c1db) містить першу частину третього прикладу. Це, скоріше, говорить про те, що пароль шифруватися на основі двох незалежних наборів символів (по сім кожен), ніж про те, що друга половина залежить від змісту першої частини пароля.

У результаті це перетворює великий пароль з 14 символів в два коротких пароля по 7 символів. І на довершення всього, LanMan при шифруванні ігнорує регістр символів, що різко скорочує час, що витрачається на злом пароля перебором.


Реалізація

L0phtCrack - інструмент для злому паролів з розвиненим графічним інтерфейсом для середовища Windows NT і її спадкоємців Windows 2000 і XP. Спроба поцупити пароль у Unix-системи зазвичай вимагає доступу до файлів / etc / passwd і / etc / shadow. І той і інший є легко читаний текст. Windows зберігає паролі в Security Accounts Manager (SAM) - двійковому файлі, який важко прочитати без спеціальних хитрувань. L0phtCrack не тільки підбирає паролі: він може витягувати шифровані рядки паролів з SAM-файлу, локальної або віддаленої системи і перехоплювати паролі, коли вони передаються по мережі.

SAM-файл розташовується в директорії \ WINNT \ system32 \ config \. Якщо ви спробуєте скопіювати або відкрити цей файл, отримаєте повідомлення про помилку.

C: \ WINNT \ system32 \ configcopy SAM c: \ temp

The process cannot access the file because it is being used by

another process.


Информация о работе «Програми аудиту та зламу паролів John The Ripper та L0phtcrack»
Раздел: Информатика, программирование
Количество знаков с пробелами: 33485
Количество таблиц: 0
Количество изображений: 0

0 комментариев


Наверх