Програми аудиту та зламу паролів John The Ripper та L0phtcrack
Програми аудиту та зламу паролів John The Ripper та L0phtcrack
Курсова робота
на тему: «Програми аудиту та
зламу паролів 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.
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 password
for \ \ localhost \ admin $:
The command
completed 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 можна отримати за адресою:
http://www.openwall.com/john
http://www.securiteam.com/tools/3X5QLPPNFE.html.
Висновки
У цій курсовій
роботі ми розглянули дві популярних програми для адміністрації та зламу паролів
L0phtcrack чи John the Ripper. Ці програми ще застосовуються для знаходження
слабких паролів у Windows та Unix, через це являються легальними і абсолютно
безплатними. Розглянуті принципи роботи, способи використання та області
реалізації. Також було зроблено порівняння цих двох програм та були виділені
позитивні та негативні сторони. Тобто загалом було проведено аналіз програми
для адміністрації та зламу паролів L0phtcrack чи John the Ripper.
Список
використаної літератури
1. http://www.xakep.ru/post/49191/default.asp
2. http://www.malinovskey.narod.ru/hack/programs/password.htm
3. https://forum.xaknet.ru/showthread.php?t=4567
4. http://www.amazon.co.uk/Password-Cracking-Software-Saminside-L0phtcrack/dp/1155473574
5. http://khup.com/keyword/password-cracking.html
6. «Анти-хакер» Кейт Дж. Джонс,
Майк Шема, Бредли С. Джонсон.
|