Mimikatz Извличане на потребителски пароли за Windows от паметта в ясен текст

В тази статия, която беше написана като част от поредица от статии, посветени на сигурността на системите на Windows (в последната статия обсъдихме сигурността на паролите, съхранявани в GPP), ще се запознаем с доста проста техника за получаване на ясни пароли на всички потребители, работещи в Windows система Използване на отворения код Mimikatz Utility.

опровержение.  Информацията и технологиите, описани в тази статия, трябва да се използват само за целите на информацията и запознаването и в никакъв случай не трябва да се използват за достъп до акаунти, информация и системи на трети страни..

Съдържание:

  • Съхранявайте паролите и хешовете в паметта на Windows
  • Използваме Mimikatz за извличане на потребителски пароли от lsass.exe онлайн
  • Получаване на потребителска парола от сметището на Windows
  • Извличане на потребителски пароли от файлове на виртуална машина и файлове за хибернация
  • Използване на Mimikatz при атаки срещу хеш
  • Как да защитим Windows от извличане на пароли от паметта чрез mimikatz?

Съхранявайте паролите и хешовете в паметта на Windows

Повечето системни администратори са уверени, че Windows не съхранява потребителските пароли в ясен текст, а само под формата на своя хеш. И въпреки че днес има голям брой помощни програми, които могат да извличат хеши на потребителски пароли от системата, е възможно да се каже със сигурност, че когато използва доста сложна парола, а не „от речника“, нападателят на практика няма шанс да я вземе с директна груба сила или въз основа на вече изчислените хеши.

По принцип това е вярно, но има различни нюанси по отношение на потребителите, влезли в конкретна Windows система. Факт е, че някои системни процеси за техните официални цели все още използват потребителски пароли в отворена (или криптирана) форма, а не техните хеши.

Така например механизмът удостоверяване на дайджест (HTTP резюме заверка), използва се за поддръжка на SSO (Single Sign On), за своята работа изисква познаване на въведената парола на потребителя, а не само неговия хеш (можете само да гадаете защо разработчиците са внедрили това по този начин). Паролите (а именно паролите, а не техните хеши) на потребители в криптиран вид се съхраняват в оперативната памет и за да бъдат по-прецизни в паметта на процеса LSASS.EXE. Проблемът е, че криптирането на паролата се реализира с помощта на стандартните функции на Win32 LsaProtectMemory и LsaUnprotectMemory, които са предназначени за криптиране / дешифриране на определено парче памет. Utility френски програмисти mimikatz ви позволява да получавате криптирани данни от паметта и да ги декриптирате с помощта на функцията LsaUnprotectMemory, което ви позволява да показвате всички потребителски акаунти, оторизирани в системата и техните пароли (в отворен, вече декриптиран вид!). За да използва уязвимостта, нападателят трябва да може да прикачи специална библиотека към процеса lsass.exe.

Изтеглете полезност mimikatz може да бъде тук: http://blog.gentilkiwi.com/mimikatz

инфо. Помощната програма mimikatz се открива от повечето антивируси и браузъри като потенциално опасен софтуер (хакерска програма).

Помощната програма mimikatz ви позволява да извличате потребителски пароли директно от паметта (чрез инжектиране на библиотеката sekurlsa.dll в lsass.exe), от запаметено сметище за компютърна памет или дори от файл за хибернация..

Използваме Mimikatz за извличане на потребителски пароли от lsass.exe онлайн

  • Изтеглете и стартирайте Mimikatz.exe с права на администратор (има x86 и x64 версии на помощната програма за съответните системи)
  • В контекста на помощната програма, изпълнете командите

mimikatz # privilege :: отстраняване на грешки
mimikatz # sekurlsa :: logonPasswords full

(последната команда за всички активни потребители в системата ще покаже имената на акаунти и техните пароли).

Както можете да видите, помощната програма ни показа супер сложната парола на потребителски потребител в ясен текст! Всичко това се дължи на факта, че е разрешено да се използва режим на отстраняване на грешки на този компютър чрез задаване на знамето SeDebugPrivilege за желания процес. В този режим програмите могат да получат достъп на ниско ниво до паметта на процесите, работещи от името на системата.

Представете си, че това е терминален сървър, на който работят много потребители едновременно и на който има, наред с други неща, сесия на администратор на предприятие. Т.е. ако имате права на администратор на един сървър, можете дори да прихванете паролата на администратора на домейна.

забележка. През юни 2017 г. много големи компании в Русия, Украйна и други страни бяха заразени с вируса на не-petya ransomware, който беше използван от интегрирания модул mimikatz за събиране на пароли за администратори на потребители и домейни.забележка. Тази техника няма да работи, ако в системата има модерен антивирус, който блокира инжектирането. В този случай ще трябва първо да създадете сметище на паметта на машината и вече на другата машина да "издърпате" паролите от нея за сесии на всички потребители.

Получаване на потребителска парола от сметището на Windows

Изхвърляне на памет за LSASS процеса може да се получи с помощта на функцията PowerShell Out-Minidump.ps1. Импортирайте функцията Out-Minidump в PoSh и изхвърлете LSASS процесната памет:

Get-Process lsass | Out-Minidump

Полученият буфер на паметта в нашия пример е LSASS_592.dmp (по подразбиране е записано в директорията% windir \ system32%), трябва да го копирате на друг компютър, който има помощната програма mimikatz и да изпълните командата:

Mimikatz “sekurlsa :: minidump lsass_592.dmp”

И със следната команда получаваме от запаметения буфер на паметта списък на потребителите, работещи в системата и техните пароли:

mimikatz # sekurlsa :: logonPasswords

Както можете да видите, нищо сложно.

По този начин можете да получите изхвърляне на памет от отдалечен компютър с помощта на psexec или чрез WinRM (ако имате права на администратор) и да извлечете паролата на потребителя от него.

Извличане на потребителски пароли от файлове на виртуална машина и файлове за хибернация

Давай напред. Използвайки прости манипулации, нападателят може лесно да извлече паролите на потребителите от файлове за зареждане на паметта, файла за хибернация на системата (hiberfil.sys) и. vmem файлове на виртуални машини (суап файлове на виртуални машини и техните моментни снимки).

За целта се нуждаете от пакет Отстраняване на грешки инструмент за Windows (WinDbg), себе си mimikatz и програма за преобразуване .vmem до Dump файл на паметта (за Hyper-V това може да бъде vm2dmp.exe или MoonSols Windows Memory Toolkit инструментариум за vmem VMWare файлове).

Например, ако е необходимо, преобразувайте swap файла vmem на виртуалната машина VMWare в сметище, изпълнете командата:

bin2dmp.exe "winrv2008r2.vmem" vmware.dmp

Ние зареждаме получения бутон в WinDbg (Файл -> Open Crash Dump), зареждаме библиотеката на mimikatz с името mimilib.dll (изберете версията в зависимост от битовата дълбочина на системата):

.зареждане mimilib.dll

Търсим процеса на lsass.exe на сметището:

!процес 0 0 lsass.exe

И накрая, ние въвеждаме:

.процес / r / p fffffa800e0b3b30
!mimikatz

и да получите списък на потребителите на Windows и техните пароли в чист текст.

Получаването на пароли на потребители на Windows в отворен вид с помощта на помощната програма Mimikatz работи на следните системи, включително тези, работещи в различни версии на Hyper-V 2008/2012 и VMWare:

  • Windows Server 2008/2008 R2
  • Windows Server 2012 / R2
  • Windows 7
  • Windows 8
забележка. Между другото, функционалността на mimikatz вече е внедрена в рамката на Metasploit.

Използване на Mimikatz при атаки срещу хеш

В случай, че не е възможно да се получи паролата на потребителя, а само неговият хеш, Mimikatz може да се използва за така наречената атака pass-the-hash (повторно използване на хеша). В този случай хешът може да се използва за стартиране на процеси от името на потребителя. Например, след като получи NTLM хеш на потребител, следната команда ще стартира командния ред от името на привилегирован акаунт:
sekurlsa :: pth / потребител: Администратор / домейн: CORP / ntlm: NTLM хеш / run: cmd

Как да защитим Windows от извличане на пароли от паметта чрез mimikatz?

В Windows 8.1 и Server 2012 R2 (и по-нова версия) възможността за извличане на пароли чрез LSASS е малко ограничена. Така че по подразбиране тези системи не съхраняват LM хеш и пароли в ясен текст в паметта. Същата функционалност се поддържа с по-ранни версии на Windows (7/8 / 2008R2 / 2012), в които трябва да инсталирате специална актуализация KB2871997 (актуализацията предоставя други възможности за засилване на сигурността на системата) и в клона HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ WDigest задайте параметъра DWORD на регистъра UseLogonCredential равен 0 (WDigest е деактивиран).

Ако след инсталиране на актуализацията и ключа UseLogonCredential се опитате да извлечете пароли от паметта, ще видите, че mimikats не може да извлича пароли и хеши с помощта на командата creds_wdigest.

Ако обаче имате права на администратор, можете лесно да промените този ключ:

reg добави HKLM \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ WDigest / v UseLogonCredential / t REG_DWORD / d 1

След това отново можете да получите достъп до паролите в LSA паметта.

Инструментариумът mimikatz има и други инструменти за извличане на пароли и техните хеши от паметта (WDigest, LM-хеш, NTLM-хеш, модул за заснемане на билети Kerberos), затова се препоръчва да се прилагат следните мерки като препоръки:

  • Отказ да съхранявате пароли с помощта на обратимо криптиране
  • Деактивирайте NTLM
  • Откажете използването на запазени пароли в Credential Manager
  • Отказ от кеширане на потребителски идентификационни данни на домейна (CachedLogonsCount ключ и интерактивно влизане: Брой предишни влизания в кеширащата политика)
  • Ако функционалното ниво на домейна не е по-ниско от Windows Server 2012 R2, можете да добавите администраторски акаунти към специалната група Защитени потребители
съвет. Подробна статия за начините за защита на паметта на Windows системи от извличане на пароли и хеши - Методи за защита срещу mimikatz в Windows домейн

При тестване на mimkatz на Windows 10 Pro x64 с настройки, mimkatz 2.0 успя да получи хешовете за пароли на активния потребител (но не и паролата в ясен текст).

В по-старите системи, като решение, трябва да ограничите получаването на привилегията за отстраняване на грешки и да деактивирате wdigest доставчика на сигурност чрез системния регистър. За това в бранша HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa намерете ключа Пакет за сигурностs и премахнете реда от списъка с пакети wdigest. Трябва обаче да разберете, че нападателят със съответните права на регистъра не е трудно да върне настройките обратно.

данни. Още веднъж си припомняме общи истини:

  • Не използвайте едни и същи пароли за различни услуги (особено терминални, собственост на трети страни).
  • Помислете за сигурността на вашите пароли и данни, пребиваващи на виртуални машини в облаците, защото не можете да сте сигурни кой друг има достъп до хипервизорите и съхранението, в което се намират файловете на виртуалната машина.
  • Сведете до минимум във вашите системи броя акаунти, които имат права на локален администратор (вижте ръководството за осигуряване на администраторски акаунти в Windows)
  • Никога не влизайте с акаунт на администратор на домейн на сървъри и компютри, достъпни за други потребители.