Смекни!
smekni.com

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

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

на тему: «Програми аудиту та зламу паролів 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 &bsol; WINNT &bsol; repair &bsol; 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" може бути правильною. Ось і правило для попереджання слова цифрою.