Отримання хэш-кодов паролів Win 2000
Хакери будуть щасливі дізнатися, що хэш-коды диспетчера локальної мережі Lanmanager (LM) зберігається в пропонованому за умовчанням місцеположенні Win 2000 для забезпечення сумісності з клієнтами інших версій (відмінними від Windows Nt/2000). Це приводить до проблем, описаних в розділі 5, для усунення яких можна використовувати запропоновані там же рішення. Проте, на невелике розчарування хакерів, завдяки деяким новим властивостям Win 2000 і, насамперед, алгоритму шифрування SYSKEY, стандартні прийоми злому паролів тепер непридатні. Проте, як буде видно з наступних розділів, не все йде так благополучно.
Отримання бази даних SAM
На контроллерах доменів Win 2000 хэш-коды паролів зберігаються у файлі служби каталогів Active Directory (%windir%\NTDS\ntds .dit). При стандартній конфігурації цей файл займає близько 10 Мбайт і зберігається в зашифрованому вигляді, тому зломщики навряд чи зможуть дістати його з метою подальшого аналізу.
Проте інтерес для
хакерів може представляти файл диспетчера облікових записів захисту SAM (Security Account Manager), що міститься на комп'ютерах, не промовцях в ролі контроллерів домена. Отримання даних цього файлу в операційній системі NT 4 не складало великих труднощів. Місцеположення файлу SAM в новій версії операційної системи по колишньому визначається параметром %systemroot%\system32\config, а доступ до файлу блокується операційною системою. Тому отримання даних шляхом завантаження в режимі DOS як і раніше можливо навіть при використанні п'ятої версії файлової системи NTFS. Для реалізації цього завдання можна скористатися утилітою NTFSDOS, розташованою за адресою
http://www.sysinternals.com/. Місцеположення резервної копії файлу SAM визначається параметром %systemroot%\repair (цей файл називається SAM, а не ЗАМ._, як в NT 4). У ній міститься інформація про всіх користувачів системи на момент її установки. У додаток Microsoft Backup v.5 (файл ntbackup.exe) інтегрована утиліта rdisk, тому з його допомогою можна створити аварійний диск. При виборі команди Create Emergency Repair Disk відкривається діалогове вікно, в якому потрібно вказати, чи слід копіювати системний реєстр в резервний каталог, як показано нижче.
При виборі цього режиму весь системний реєстр, включаючи вулик SAM, копіюється в теку %windir%\ repair\regback. Члени групи Users володіють правом читання інформації з цієї теки, а члени групи Power Users — правом її модифікації, якщо диск відформатував для використання файлової системи NTFS. Отже, тільки члени групи Power Users мають розширений доступ до цього файлу, а не всі користувачі. Атаки, направлені на отримання резервної копії файлу SAM, також декілька ускладнюються тим, що цей файл зашифрований з використанням нового алгоритму шифрування SYSKEY, а на сьогоднішній день механізм розшифровки таких файлів (відмінний від pwdump2) невідомий.
Фаїл SAM в Win 2000 за умовчанням кодується з використанням SYSKEY і відновлюється за допомогою засобу pwdump2.
Не забувайте очищати каталог Repair \RegBack
Не залишайте зломщикам жодних шансів — переносите файли каталога Repair\regback на знімний диск або в інше безпечне місце. А ще краще — при запуску утиліти створення диска аварійного відновлення не вибирайте опцію архівації системного реєстру.
Завантаження хэш-кодов чо, із за допомогою pwdump2
У операційній системі Win 2000 за умовчанням застосовується кодування SYSKEY (докладніша інформація про це міститься в розділі Q143475 бази знань і в розділі 5). Тому за допомогою засобу pwdump не можна коректно розшифрувати хэш-коды паролів з системного реєстру Win 2000. Для вирішення цього завдання треба використовувати pwdump2 (детальніше про pwdump, pwdump2, а також про те, чому для розшифровки SYSKEY не підходить pwdump, читайте в розділі 5). Більш того, для локального завантаження хэш-кодов з контроллера домена потрібна оновлена версія утиліти pwdump2 (доступна за адресою
http://razor.bindview.com ), оскільки тепер зберігання паролів організоване на базі Active Directory, а не відповідно до традиційних принципів файлу SAM.
Контрзаходи проти завантаження хэш-кодов за
допомогою pwdump2
Оскільки принципи підключення динамічних бібліотек в Windows не змінилися, то проти утиліти pwdump2 не існує ніякої зашиті. Слабкою утіхою служить лише той факт, що ця утиліта працює локально і для її запуску потрібні привілеї адміністратора. Якщо ж хакерові вдалося отримати ці привілеї, то він зможе отримати практично будь-яку інформацію про локальну систему (інше питання, як можна використовувати дані SAM для нових атак).
Додавання хэш-кодов у файл SAM за допомогою chntpw
Якщо
хакер дістав фізичний доступ до системи і у нього достатньо часу для завантаження іншої операційної системи, то він може реалізувати складну атаку, описану Пітером Нордалом-Хагеном (Fetter
Nordahl-hagen). У ряді статей, що містяться на цьому вузлі, Пітер наводить вражаючі факти. Наприклад, за його словами, хэш-коды паролів можна додати у файл SAM в автономному режимі і таким чином змінити пароль будь-якого користувача системи.
Але це ще не все! Далі Пітер пропонує програму зміни паролів в операційній системі NT chntpw, а також завантажувальну дискету з операційною системою Linux, яку можна використовувати для входу в систему Nt/2000, зміни пароля адміністратора (навіть якщо він був перейменований), перезавантаження системи і реєстрації в ній з новим паролем.
Далі більше, Пітер стверджує, що цей метод працює навіть при використанні шифрування SYSKEY і навіть в режимі захисту ключа SYSKEY паролем або його зберігання на гнучкому диску.
"Хвилиночку, — заперечить читач, — засіб SYSKEY використовує другий, 128-розрядний тип шифрування паролів на основі унікального ключа, який можна зберігати в реєстрі, захистити паролем або записати на гнучкий диск (див. розділ 5). Як же можна змінити пароль, не знаючи системного ключа для його створення?"
Для
таких читачів Пітер розповідає, як відключити режим SYSKEY. Більш того, він виявив, що зломщикові це не знадобиться: при додаванні у файл SAM хэш-кодов старого зразка (що не використовують кодування SYSKEY) вони автоматично кодуються за допомогою ключа SYSKEY після перезавантаження системи. Такий глибокий аналіз гідний захоплення. Браво Пітеру!
Пітер відключає SYSKEY таким чином (хоча можна цього і не робити).
1. Встановлює для параметра
Hklm\system\currentcontrolset\control\lsaxsecureboot значення 0 (цей параметр може набувати наступних значень: 0 — системний ключ відключений, 1 — ключ зберігається в реєстрі у відкритому вигляді, 2 — ключ зберігається в реєстрі і захищений паролем, 3 — ключ зберігається на гнучкому диску).
2. Скидає відповідний прапор в бінарній структурі
Hklm\sam\domains\accountxf. Цей параметр недоступний в процесі роботи операційної системи.
3. У Win 2000 задає для параметра Hklm\security\policy\polsecretencryption Key\<default> значення 0.
Пітер стверджує, що зміна значення лише одного з двох перших параметрів в операційній системі NT 4 навіть за наявності сервісних пакетів аж до Sp6 приводить до появи попередження про несумісність файлу SAM з системними параметрами при завершенні завантаження і повторного включення ключа SYSKEY. У Win 2000 у разі несумісності значень трьох перерахованих параметрів відразу ж виконується перезавантаження і значення параметрів змінюється на найбільш типове.
Застосування цих прийомів може привести до пошкодження файлу SAM. Випробовуйте їх тільки на тестових комп'ютерах з системою Nt/2000 і будьте готові до можливої відмови операційної системи. Зокрема, не вибирайте опцію Disable SYSKEY програми chntpw в Win 2000. По відгуках, це може привести до непередбачуваних результатів і навіть необхідності повного переустановлення системи.
Описаний вище прийом не дозволяє змінювати паролі користувачів на контроллері домена Win 2000, а відноситься лише до зміни файлів SAM. Нагадаємо, що на контроллері домена хэш-коды паролів зберігаються в Active Directory, а не у файлі SAM.
Контрзаходи проти chntpw
Якщо хакери можуть дістати необмежений фізичний доступ до системи, то протистояти їм практично неможливо. Один із слабких контрзаходів полягає в такому налаштуванні параметрів, при якому потрібне залучення ключа SYSKEY при кожному завантаженні. Цього можна добитися, встановивши режим захисту системного ключа паролем або зберігання його на гнучкому диску (в розділі 5 описано три моделі використання ключа SYSKEY). Тоді навіть після зміни пароля адміністратора для завантаження системи хакер повинен буде ввести пароль SYSKEY. Звичайно ж, за допомогою програми chntpw хакер може повністю відключити системний ключ, але тоді він ризикує вивести з ладу операційну систему, якщо це Win 2000.
За допомогою готової програми chntpw можна лише повністю відключити SYSKEY. Спрашиваєтся, а що коли параметр Secureboot набуватиме значення 1, а не 0, для локального зберігання системного ключа? Це значення дозволить відключити захист SYSKEY паролем і режим його зберігання на гнучкому диску, зводячи нанівець ці контрзаходи. Початковий код програми chntpw можна знайти на вузлі Пітера. Можна також скористатися існуючою утилітою chntpw в режимі редагування реєстру.
В умовах відсутності надійного захисту ключа SYSKEY необхідно покладатися на традиційні методи захисту, такі як забезпечення фізичної безпеки важливих систем, установки паролів на BIOS або відключеннях режиму завантаження системи з гнучкого диска.
Видалення пароля адміністратора, разом з файлом SAM
25 липня 1999 року Джеймс Дж. Ерейс (James J. Grace) і Томас с.В. Бартлетт III (Thomas S. V. Bartlett III) опублікували приголомшливу статтю про те, як видалити пароль адміністратора, завантажившись в іншій операційній системі і видаливши файл SAM
http://www.deepquest.pf. Маючи необмежений фізичний доступ до комп'ютера і засоби для запису інформації в розділи NTFS (наприклад, утиліту NTFSDOS Pro, доступну за адресою
http://www.sysinternals.com), за допомогою цього засобу можна легко обійти всю локальну систему зашиті Nt/2000.
Хоча описана в статті процедура припускає установку другої копії операційної системи NT або 2000 разом з початковою, ця вимога не є обов'язковою, якщо зломщик переслідує лише мету видалення пароля облікового запису адміністратора. Можна просто видалити файл SAM.
Ця атака може мати серйозні наслідки при використанні шифрування файлової системи, описані в наступному розділі.
Контроллери
доменів Win 2000 не постраждають від видалення файлу SAM, оскільки на цих машинах хэш-коды паролів зберігаються в Active Directory. Проте у вказаній статті приводиться механізм досягнення аналогічного результату на контроллері домена, що припускає установку другої копії Win 2000.
Запобігання видаленню файлу SAM
Як наголошувалося вище на рівні операційної системи існує єдиний
спосіб протистояння такій атаці. він
полягає в захисті паролем системного
ключа або установці режиму його зберігання на
гнучкому диску. Ще один ефективний спосіб
протидії атакам в автономному режіме-
забезпечити фізичну захищеність
серверів, відключивши режим завантаження із
знімних носіїв або встановивши пароль BIOS. Автори радять використовувати всі ці механізми.
|