Защита на привилегировани акаунти на домейн LM хешове - Добър, Лош, Грозен
Останалата част от поредицата:
Осъзнавам, че LM хешовете (LanMan) са останали в миналото за мнозина, но наскоро открих, че LM хешовете са дори по-опасни, отколкото мислех преди. Причините за това са както простотата на разбиване на LM хешове на съвременния хардуер, така и неявният факт, че Microsoft не предоставя възможност за премахване на тези хешове от паметта. Ето защо, дори ако смятате, че вече сте чули всичко, което можете за LM хешовете, препоръчвам ви да прочетете тази статия, за да сте сигурни, че сте наясно с LM хешовете, които се крият в паметта.
Въпреки че проблемите на LM хешовете са добре документирани, нека да опиша накратко как се създават LM хешове. След това веднага ще видите няколко значителни проблема с този алгоритъм. Тези проблеми ни позволяват да идентифицираме причините, поради които трябва да се отървем от LM хешовете. Ето как работи алгоритъмът за хеширане на LM (от Wikipedia):
- Потребителска парола в ASCII символи, преобразувана в главни букви
- Резултатът е подплатен с нули с дължина от 14 байта
- Получените 14 байта се намаляват наполовина
- Всяка от половинките се използва във функцията за криптиране DES за създаване на два 8-байтови шифротекста
- Двата получени шифротекста се обединяват в 16-байтова стойност, която е LM хеш стойността
- При генерирането на хеш не се използва сол
Има много недостатъци в дизайна на алгоритъма. Нека да опиша накратко някои от тях:
- Фактът, че всеки знак в паролата е ASCII знак (един от 95 знака за печат), означава, че има само 95 опции за всеки символ в паролата. Нещата обаче са още по-лоши, тъй като всеки малък знак се заменя със съответния главен знак, така че всъщност има само 69 опции за символ.
- Максималният брой знаци в паролата е 14. Всички пароли с по-малка дължина са подплатени с нулеви байтове. Получената 14-байтова стойност след това се разделя на две равни части. Разделянето на тази стойност на две половини значително намалява областта за търсене на всяка програма за разбиване на пароли. В този случай тя трябва да отгатне две стойности от 69 7 (
7,5 трилиона) възможно вместо един от 69 14 възможни (
55 септилиона). Това е с около 13 порядъка по-малко, което значително улеснява задачата за разбиване на пароли.
Тези значителни проблеми правят атаките срещу LM хешовете с помощта на предварително изчислени дъгови маси толкова ефективни. Най-ефективното изпълнение на атака срещу LM хешове, което съм виждал, беше посочено от Чад Тилбъри. По време на преподаването на курса по SANS Forensics 408 Чад насочи вниманието на студентите към проекта, чиято същност е поставянето на дъгови маси от LM хешове на SSD дискове. Това е невероятно бързо и евтино решение за разбиване на много сложни пароли от 14 знака само за 5-11 секунди! Какво означава? Това означава, че ако вашият LM хеш (или хешът на един от вашите потребители) стане известен на нападателя, той научава паролата ви почти мигновено.
Ако всичко това не изглеждаше достатъчно депресиращо, нека се заемем с наистина ужасните неща. Преди да направим това, трябва да отбележа, че Microsoft отдавна е признала слабостта на LM хеша и ни е предоставила някои методи за деактивиране на използването му. Нека да разгледаме тези методи, след което ще ви покажа грубия надзор на Microsoft, опитвайки се да ни защити от LM хешове.

Друга противодействие, предоставено от Microsoft, предоставя начин за предотвратяване на удостоверяването на Windows през протокола за удостоверяване на отговор на предизвикателството-отговор на LMv1/LMv2. След няколко седмици ще публикувам статия, която ще навлиза в детайли за мрежовото удостоверяване, така че тук няма да се спирам на всички тънкости на работата му. Трябва само да се каже, че LM хешът е необходим, за да завърши удостоверяването на мрежово предизвикателство-отговор като LMv1 или LMv2. Така че, ако използваме инструменти на Microsoft, за да деактивираме протоколите за реакция на предизвикателствата и разрешим само по-новия протокол NTLMv2 (който се нуждае само от NT хеш, а не от LM), тогава Windows вече няма да има нужда от LM хешове, нали? Поне аз така мислех.