Курсова робота
на тему: «Програми аудиту тазламу паролів 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. JohnNikolsen, 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. У OpenBSD, для шифрування використовується алгоритм Blowfish.
John TheRipper
John TheRipper - вільна програма, призначена для відновлення паролів заїхніми хешам. Основне призначення програми — аудит слабких пароліву UNIX системах. Програма також може виконувати аудит NTLMхешей, Kerberos,та ін.
John theRipper, можливо, найшвидший і найбільш універсальний з доступнихінструментів, призначених для злому паролів. Програма підтримує шістьрізних схем хешування паролів, які покривають різні варіанти схем хешуванняпаролів для 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 @ hedwigjohn-1.6.31-dev] # cd src
Наступна командапроста: make .
[Root @ hedwigsrc] # 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 @ hedwigrun] # cp../../john-1.6/run/all.chr.
[Root @ hedwigrun] # cp../../john-1.6/run/alpha.chr.
[Root @ hedwigrun] # cp../../john-1.6/run/digits.chr.
[Root @ hedwigrun] # cp../../john-1.6/run/lanman.chr.
[Root @ hedwigrun] # cp../../john-1.6/run/password.lst.
Якщо все пройшлонормально, ви можете протестувати програму. Для решти команд вам слідвраховувати, що поточною директорією є john-1.6.31-dev/run. По-перше,переконайтеся, що програма працює, показуючи базову швидкість роботи для вашоїсистеми.
[Root @ hedwigrun] #. / 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: 10950c / 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: NTLM DES [64/64 BS MMX]... DONE
Raw: 487689 c / s
Варті уваги дватести: FreeBSD MD5 і NT LM DES. Кількість взломів усекунду (c / s) відрізняється для цих двох методів у 200 разів. Цеозначає, що на повну атаку перебором для FreeBSD буде потрібно в 200 разівбільше зусиль, ніж на аналогічну роботу для Windows NT! Алгоритм OpenBSDBlowfish ще більш трудомісткий для злому. Це говорить про те, наскількибільш стійким може бути алгоритм шифрування в порівнянні з іншими типамиалгоритмів. Замість того щоб говорити, що один алгоритм безпечніше іншого,правильніше буде сказати, що алгоритм 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 DESfrom / etc / shadow.
FreeBSD MD5 from/ etc / shadow.
OpenBSD Blowfishfrom / etc / master.password.
Windows 2000 LANManager 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 @ hedwigrun] #. / John passwd.unix
Loaded 189passwords with 182 different salts
(Traditional DES[64/64 BS MMX])
Програмаавтоматично вибирає правильний алгоритм шифрування для рядків і починаєзлом. Натисніть будь-яку клавішу, щоб вивести на екран поточну статистикузлому, і CTRL-C, щоб перервати роботу програми. Якщо пароль зламаний,програма виводить на екран і зберігає зламаний пароль для подальшоговикористання. Щоб подивитися розкриті паролі із спеціального файлу,використовуйте параметр-show.
[Root @ hedwigrun] #. / 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 @ hedwigrun] #. / John-wordfile: password.lst passwd.unix
Loaded 188passwords with 182 different salts
(Traditional DES[64/64 BS MMX])
guesses: 0 time:0:00:00:01 100%
c / s: 333074trying: tacobell — zhongguo
Ми навіть можеморобити деякі перестановки в словнику, використовуючи параметр-rules.
[Root @ hedwigrun] #. / John-wordfile: password.lst-rules passwd.unix
Loaded 188passwords with 182 different salts
(Traditional DES[64/64 BS MMX])
guesses: 0 time:0:00:00:58 100%
c / s: 327702trying: Wonderin — Zenithin
Щоб зрозумітифункцію параметра-rules, подивимося на файл john.conf (або john.iniдля версії 1.6). Нижче наведена частина файлу john.conf, яка описуєперестановки в нашому списку слів (коментарі починаються з символу #).
[List.Rules:Wordlist]
# Try words asthey are
:
Lowercase everypure alphanumeric word
-C> 3!? XlQ
# Capitalizeevery pure alphanumeric word
-C> 2 (? A!?XcQ
# Lowercase andpluralize pure alphabetic words
2!? Alp
# Lowercase purealphabetic 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 @ hedwigrun] #. / John-incremental: LanMan passwd.lanman
Loaded 1152passwords 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 @ hedwigrun] #. / John-incremental: All passwd.unix
Буде проводитисятільки перебір рядків довжиною у вісім символів. Ми можемовикористовувати параметр-stdout, щоб перевірити це. Коженвикористаний варіант буде роздруковуватися на екрані.
[Root @ hedwigrun] #. / John-incremental: All-stdout
Це корисно, якщови перенаправляє вивід в файл, створюєте список слів для подальшоговикористання з програмою john або іншою утилітою, яка може використовувати файлзі списком слів, наприклад Whisker.
[Root @ hedwigrun] #. / John-makechars: guessed
Loaded 3820plaintexts
Generatingcharsets… 1 2 3 4 5 6 7 8 DONE
Generatingcracking order... DONE
Successfullywritten charset file: guessed (82 characters)
/>
Відновленняфайлів і розподілений злом
Вам слід знатидещо про програму john, щоб керувати великими наборами пароліврізного ступеня складності. Програма періодично зберігає стан процесу,записуючи проміжні результати у файл. Період збереження встановлюється уфайлі john.conf.
# Crash recoveryfile saving delay in seconds
Save = 600
Ім'я файлу зазамовчуванням restore, але його можна змінити,використовуючи параметр-session.
[Root @ hedwigrun] #. / John-incremental: LanMan-session: pdc \
passwd.lanman
Loaded 1152passwords with no different salts (NT LM DES
[64/64 BS MMX])
Вміст файлуrestore виглядає приблизно так.
REC2
5
-Incremental:LanMan
-Session: pdc
passwd.lanman
-Format: lm
6
47508000
00000000
-1
488
8
3
2
6
5
2
Число можливихкомбінацій не може бути представлено 32-бітним числом, тому програмавикористовує два 32-бітових поля для створення 64-бітногочисла. Інформація про це числі й те, як ним можна маніпулювати, може бутивикористана для виконання розподілених обчислень. Візьмемо наш файлrestore і використовуємо його для запуску паралельних версій програми на двохнезалежних машинах. Файл restore для першого комп'ютера буде міститинаступні рядки.
REC2
4
-Incremental:LanMan
passwd.lanman
-Format: lm
4
00000000
00000000
-1
333
8
15
16
Файл restore длядругого комп'ютера буде таким.
REC2
4
-Incremental:LanMan
passwd.lanman
-Format: lm
4
00000000
0000036f
-1
333
8
15
16
Отже, першасистема почне перебір комбінацій з нуля. Другий комп'ютер почне перебір зпаролів для 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 байт даних.
898f30164a203ca014cc8d7feb12c1db
898f30164a203ca0aad3b435b51404ee
14cc8d7feb12c1dbaad3b435b51404ee
Останні 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 processcannot access the file because it is being used by
another process.
0 file (s)copied.
Негубіться. Windows, на щастя, зберігає резервну копію SAM файлу вдиректорії \ WINNT \ repair \ або \ WINNT \ repair \RegBack \.
L0phtCrack можеотримати паролі локального або віддаленого комп'ютера за допомогоюфункції Dump Passwords From Registry.
Віддалене витягпароля вимагає доступу до загального ресурсу ADMIN $. Для цьогонеобхідний доступ до порту 39 NetBIOS TCP. L0phtCrack можестворити для вас сесію, або ви можете зробити це вручну.
C: \> net use\ \ victim \ admin $ * / u: Administrator
Type the passwordfor \ \ localhost \ admin $:
The commandcompleted successfully.
Програма такожможе перехопити рядок пароля з мережі. Кожного разу, коли прослуховуєтьсякомп'ютер посилає команду net use, можна витягти рядокаутентифікації. Ви повинні перебувати в локальній мережі і мати можливістьпереглядати трафік, щоб можна було обмежувати використання програми.
Швидкість зломупароля у L0phtCrack задовільна, але не зрівняється з останньоюверсією john. При цьому програма не пропонує можливостей гнучкогозміни правил. Програма лише допускає настройку списку символів з менюOptions.
Тим не менш,найкращим варіантом зазвичай є використання L0phtCrack для отриманняпаролів і збереження їх для використання з john. Для цьогоскористайтеся функціями File / Save As.
Вам знадобитьсяобробити файл для використання з john. Зміни полягають у приміщеннірядків паролів у відповідні поля.
Тут представленийфайл, в якому L0phtCrack зберігає паролі.
LastBruteIteration= 0
CharacterSet =1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
ElapsedTime = 0 0
Administrator:"":"": A34E6990556D7BA3BA1F6705936BF461:
2B1437DBB1DC57DA3DA1B88BADAB13B2:::
А це файл, з якимпрацює John the Ripper. Зверніть увагу на те, що три першихрядки видалені, і є тільки одне поле між ім'ям користувача (Administrator) ірядком пароля. Ця інформація не має значення для john, але ми,як нагадування, помістимо сюди ідентифікатор користувача (SID).
Administrator:500: A34E6990556D7BA3BA1F6705936BF461:
2B1437DBB1DC57DA3DA1B88BADAB13B2:::
У версії3.0 L0phtCrack введені удосконалення для аналізу додатків. Цяверсія також простіше для використання адміністраторами і вона більшевідповідає їхнім потребам (такі можливості, як повідомлення про те, що парольбув зламаний, без виведення результату). Ми вважаємо за кращевикористовувати L0phtCrack 2.52 для захоплення паролів івикористовувати John the Ripper для їх злому.
У версії3.0. L0phtCrack свої переваги. Домени Windows 2000 мають профілікористувачів з паролями з 15 символів. Це виключає методи зберігання,застосовуються в LanMan. Відповідно, версія 2.5. буде видаватиповідомлення «No Password» як для рядків LanMan, так і для NTLM, длябудь-якого користувача з паролем з 15 символів. Версія 3.0 коректнозавантажує і ідентифікує паролі, що складаються з 15 символів. Якщо вираптом зустрінете рядок схожу на цю,
AAD3B435B51404EEAAD3B435B51404EE: FA95F45CC70B670BD865F3748CA3E9FC:::
то вам вартодосліджувати цей «СуперПароль». Зауважимо, що рядок пароля для LanManмістить уже знайомі нам нульові символи AAD3B435B51404EE, двічіповторювані LanMan в частині пароля (виділено жирним шрифтом).
Іншаперевага L0phtCrack 3.0 полягає в можливості виконувати розподіленийзлом. Метод злому полягає в розділенні процедур підбору паролів наблоки. Це дуже важливо для запуску програми в гетерогенному середовищі івідстеження стану процесу.
Порівняння
Вже довгий часбагато людей сперечаються яка ж програма для зламу паролів краща і зручніша:L0phtcrack чи John the Ripper. Нижче приведені всі аргументи за і проти.
L0phtcrackоб'єднує обидва способи злому паролів Windows NT. Спочатку вона проводить атакупо словнику, а потім використовує метод повного перебору паролів. Поряд з цимпрограма може перехоплювати хешірованние паролі прямо з мережі, що загрожуєкожному, хто запускає спільно використовуються мультимедійні додатки. КрімL0phtcrack є ще більш універсальний засіб — програма John the Ripper(«Джон-Різник»), яка зламує не тільки паролі Windows NT, але також істандартні паролі UNIX, тобто практично вона застосовна до більшості ПК. Такагнучкість є ідеальною при створенні «машин для злому», які незаймаються нічим іншим, крім перебору паролів UNIX та Windows NT — день заднем, до отримання результату.
John The Ripperпроводити атаку за словником і брутфорс. У режимі атаки по словнику програмабере передбачувані паролі із зазначеного файлу, генерує хеш і звіряє його зеталонним. У режимі брутфорс програма перебирає всі можливі комбінації пароля.
L0phtcrack длявідновлення пароля використовується різні атаки: за словником, брутфорс,гібридний спосіб. В останньому випадку можна задати параметри для мутаціїпароля: наприклад, dana в Dana99. Розробники не полінувалися спроститипроцедуру з підбору пароля: тепер прямо на запуску програми з'являєтьсяспеціальний майстер, який послідовно з'ясовує, що саме ти хочеш зробити.
Багатоадміністраторів напевно надають перевагу інструменту для злому паролів тааудиту L0phtCrack, спочатку розробленому групою The Cult of the Dead Cow; вданий час володіє програмою і удосконалює її фірма @ stake, нещодавно купленакомпанією Symantec. Я віддаю перевагу John the Ripper, простий, ефективнийінструмент розгадування паролів, реалізований на багатьох платформах (в томучислі на Windows), в основі якого лежить відомий UNIX-інструмент Crack. Задопомогою John можна виявити характеристики і можливості системи, щобоптимізувати продуктивність. З мого досвіду John робить значно більше спроб всекунду, ніж інші програми розгадування паролів, в тому числі L0phtCrack(вважається, що LC5 — поточна версія L0phtCrack — значно швидше минулих версій,але за неї доводиться платити).
Крім того, Johnне тільки розкриває хешировані паролі Windows (LAN Manager і NT LAN Manager,NTLM), але і без додаткової настройки зламує будь-які паролі, в якихзастосовуються шифротекст або формати хешування DES (standard, single,extended), MD5, Blowfish або Andrew File System (AFS). John в поєднанні зісловниковим файлом (існує безліч таких файлів, що охоплюють практично всівідомі мови галактики — навіть Вуки і Клінгонів) являє собою незаміннийінструмент для злому паролів і аудиту (необхідний кожній компанії, незалежновід строгості її політики). Утиліту John the Ripper можна отримати за адресою:
www.openwall.com/john
www.securiteam.com/tools/3X5QLPPNFE.html.
Висновки
У цій курсовійроботі ми розглянули дві популярних програми для адміністрації та зламу паролівL0phtcrack чи John the Ripper. Ці програми ще застосовуються для знаходженняслабких паролів у Windows та Unix, через це являються легальними і абсолютнобезплатними. Розглянуті принципи роботи, способи використання та областіреалізації. Також було зроблено порівняння цих двох програм та були виділеніпозитивні та негативні сторони. Тобто загалом було проведено аналіз програмидля адміністрації та зламу паролів L0phtcrack чи John the Ripper.
Списоквикористаної літератури
1. www.xakep.ru/post/49191/default.asp
2. www.malinovskey.narod.ru/hack/programs/password.htm
3. https://forum.xaknet.ru/showthread.php?t=4567
4. www.amazon.co.uk/Password-Cracking-Software-Saminside-L0phtcrack/dp/1155473574
5. khup.com/keyword/password-cracking.html
6. «Анти-хакер» Кейт Дж. Джонс,Майк Шема, Бредли С. Джонсон.