У цій статті, написаній в рамках серії статтею, присвяченій забезпеченню безпеки Windows-систем (в останній статті ми обговорювали питання безпеки паролів, збережених в GPP). ми познайомимося з досить простою методикою отримання у відкритому вигляді паролів всіх користувачів, що працюють в Windows-системі.
Дісклаймер. Інформація та технології, описані в даній статті, варто використовувати тільки в інформаційно-ознайомлювальних цілях, і ні в якому разі не застосовувати для отримання доступу до облікових записів, інформації і систем третіх осіб.
Більшість системних адміністраторів перебувають у впевненості, що Windows не зберігає паролі користувачів у відкритому вигляді, а тільки у вигляді його хеша. І хоча на сьогодні існує велика кількість утиліт, які здатні мати хеші призначених для користувача паролів з системи, можна з певною упевненістю сказати, що при використанні досить складного пароля не "зі словника», у зловмисника практично немає шансів підібрати його прямим брутфорсом або по базі вже розрахованих хеш .
В принципі, це так, але є різні нюанси, що стосуються користувачів, залогіненним в системі. Справа в тому, що деякі системні процеси в своїх службових цілях все-таки використовують паролі користувачів у відкритому (або зашифрованому) вигляді, а не їх хеші.
Інфо. Утиліта mimikatz детектується більшістю антивірусів, як потенційно небезпечне ПО (хакерська утиліта).
Утиліта mimikatz дозволяє витягти паролі користувачів безпосередньо з пам'яті (шляхом ін'єкції в lsass.exe бібліотеки sekurlsa.dll) або з дампа пам'яті комп'ютера.
Витягуємо паролі користувачів з lsass.exe онлайн
- Скачайте і запустіть Mimikatz.exe (є x86 і x64-версії утиліти для відповідних систем)
- В контексті утиліти виконуємо команди
mimikatz # privilege :: debug
mimikatz # sekurlsa :: logonPasswords full
(Остання команда відобразить всі облікові записи та паролі користувачів, що мають сесії в системі).
Як ви бачите, утиліта показала нам пароль користувача user.
Примітка. Дана методика не спрацює при наявності на системі сучасного антивіруса, блокуючого ін'єкцію. В цьому випадку доведеться спочатку створити дамп пам'яті машини і вже на іншій машині «витягнути» з нього паролі для сесій всіх користувачів.
Отримання пароля користувача з дампа пам'яті Windows
Дамп пам'яті для процесу LSASS можна отримати за допомогою PowerShell функції Out-Minidump.ps1. Імпорт функцію Out-Minidump в PoSh і створіть дамп пам'яті процесу LSASS:
Одержаний дамп пам'яті, в нашому прикладі це lsass_592.dmp (за замовчуванням він зберігається в каталозі% windir \ system32%) потрібно скопіювати на іншу систему, в якій є утиліта mimikatz і виконати команду:
І наступною командою отримаємо список користувачів, які працюють в системі і їх паролі:
Як ви бачите, нічого складного.
Отримання паролів з файлів віртуальних машини і файлів глибокого сну
Йдемо далі. За допомогою простих маніпуляцій зловмисник може запросто отримати паролі користувачів з файлів дампов пам'яті, файлу гібернації системи і .vmem файлів віртуальних машин (файли підкачки віртуальних машин і їх снапшоти).
Для цього знадобиться пакет Debugging Tool for Windows (WinDbg). сам mimikatz і утиліта перетворення .vmem в файл дампа пам'яті (для Hyper-V це може бути vm2dmp.exe або MoonSols Windows Memory toolkit для vmem файлів VMWare).
Наприклад, в разі необхідності перетворити файл підкачки vmem віртуальної машини VMWare в дамп, виконаємо команду:
Отриманий дамп завантажуємо в WinDbg (File -> Open Crash Dump), завантажуємо бібліотеку mimikatz з ім'ям mimilib.dll (версію вибрати залежно від розрядності системи):
Шукаємо в дампі процес lsass.exe:
І нарешті, набираємо
і отримуємо список користувачів Windows і їх паролі у відкритому вигляді:
Примітка. До речі кажучи, функціонал mimikatz вже впроваджений в Metasploit Framework.
Чи можливо захиститися від отримання пароля через mimikatz?
В якості тимчасового рішення можна запропонувати відключити постачальника безпеки wdigest через реєстр. Для цього в гілці HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa знайдіть ключ Security Package s і видалити зі списку пакетів рядок wdigest.
Однак потрібно розуміти, що атакуючому, при наявності відповідних прав на реєстр, не важко поміняти повернути настройки назад.
Висновки. Ще раз нагадуємо прописні істини:
- Як очистити системний диск, видаливши застарілі поновлення в Windows 7 SP1
- Помилка запуску додатків 0xc0000005 після установки оновлень Windows 7. Частина 3
- Знову не запускаються програми після установки оновлень в Windows 7. Помилка 0xc0000005
- Помилка 0хс0000005 і інші проблеми з останніми оновленнями Microsoft
- Запуск VPN з'єднання до входу в систему Windows