вторник, 20 ноября 2012 г.

Пароли учётных записей Windows

NT, LM, MSCACHE и MSCACHE2 хэши 

Пароли пользователей Windows хранятся в NTLM и LM хэшах. В LM хэше может хранится строка длинной до 14 символов, если длинна больше Windows не использует этот хэш предпочитая ему NTLN. Кроме этого, можно не хранить пароль в LM хэшах вообще, отключив его вычисление в настройках. В Vista и поздних системах LM хэш не используется. В этих случаях может(?) хранится хэш от пустой строки.
У LM хэша есть две особенности:
1. пароль для хранения разбиваться на две части по 7 символов (если, конечно, длинна у него не меньшая). Соответственно хэши считаются для этих частей отдельно.
2. Все буквы в пароле переводятся в верхний регистр. Пример LM хэшей - паролей (последний хэш - для пустой строки):
D4A0539829018EA7 AAD3B435B51404EE : vega
CCF9155E3E7DB453 AAD3B435B51404EE : 123
96FA5702D3668DE7 96FA5702D3668DE7 : vegaLYRvegaLYR
AAD3B435B51404EE AAD3B435B51404EE :
LM и NTLM хэши имеют одинаковую длину (16 байт), но различаются в способе их вычисления. NT хэш вычисляется с помощью алгоритма MD4, причём пароль представлен в кодировке UTF16, а не в ASCII как для LM хэша.
Те же самые пароли, что и выше, представленные в виде NT хэша (последний хэш -  для пустой строки):
BD36CFFAA3C4AF5C E6FBBDCC0020B6EF : vega
3DBDE697D71690A7 69204BEB12283678 : 123
AB4580D78905FC47 3FE721A043457167 : vegaLYRvegaLYR
31d6cfe0d16ae931 b73c59d7e0c089c0 :
Эти хэши хранятся в файле %SystemRoot%\System32\Config\SAM  зашифрованные системным ключом, что хранится в файле system. Оба файла расположены в одно каталоге и представляют собой части реестра Windows [wiki].
В редакторе реестра хэш можно найти по адресу HKLM\SAM\SAM\Domains\Account\users\[RID]\V, где RID - числовой идентификатор пользователя.
Подробнее - Хранение и шифрование паролей Microsoft Windows

Cached credentails 
В случае, если пароль пользователя хранится в Active Directory, то по вышеуказанному адресу будет лежать лишь хэши пустых строк, LN и NT соответственно : aad3b435b51404eeaad3b435b51404ee : 31d6cfe0d16ae931b73c59d7e0c089c0

Однако, Windows хранит последние 10 (по умолчанию) используемых для входа пользователя хэшей в реестре, по адресу
HKEY_LOCAL_MACHINE\SECURITY\Cache.
До выхода в свет Windows Vista это были хэши MSCACHE (MSCASH в терминологии JohtTheRipper) вида:
NTLMHash( NTLMHash(password) + username ),
где имя пользователя это юникод строка в нижнем регистре [Cached Credentials, openwall: MSCash]. Таким образом в качестве "соли" использовалось имя пользователя.
С выходом Windows Vista стал использоваться хэш MSCASH2 (MSCash2).

Пример MSCASH2 хэша для пароля Password123 и пользователя test2: d7f91bcdec7c0df39396b4efc81123e4

Алсо
Для питона есть пакет passlib, с помощью которого можно вычислить описанные выше виды хэши.


Получение хэшей

Из Windows. fgdump (pwdump) [download]

Всё очень просто. Необходимо запустить (прежде отключив антивирус) fgdump от имени администратора, программа создаст файл с расширением .pwdump в который запишет все хэши:
123:1004:CCF9155E3E7DB453AAD3B435B51404EE:3DBDE697D71690A769204BEB12283678:::
HelpAssistant:1000:AA110CC154019E6EC3B0E1F17C1A6005:53BDA4C8B460DCA36AB5AF9297EF6632:::
qwerty:1003:NO PASSWORD*********************:NO PASSWORD*********************:::
SUPPORT_388945a0:1002:NO PASSWORD*********************:95936DCF173773EE3AF60E929F5B19A3:::
user1:1005:D4A0539829018EA7AAD3B435B51404EE:AEBF16E3B8F04FD2995C2E8F4F8820D5:::
user2:1006:D4A0539829018EA7AAD3B435B51404EE:BD36CFFAA3C4AF5CE6FBBDCC0020B6EF:::
user3:1007:96FA5702D3668DE796FA5702D3668DE7:AB4580D78905FC473FE721A043457167:::
user4:1008:NO PASSWORD*********************:AE72983EDE69AC85AF294B54A55E3A09:::
Получить хэши можно и по сети
fgdump.exe -h 192.168.0.10 -u AnAdministrativeUser [-p password]
Утилита позволяет получить хэши для доменной учётной записи (MSCASH).


liveCD (backtrack, kali)

Ещё один способ добыть хэши паролей пользователей Windows - загрузиться с liveCD, скопировать sam и system файлы, например на флешку и  продолжить работу с ними уже "оффлайн".
Просмотрим все диски
fdisk -l


 

 

 

 















Монтируем раздел
mount -t ntfs-3g /dev/sdb1 /mnt/windows
-t <тип монтируемого раздела> в данном случае (NTFS) это ntfs-3g, для FAT - vfat

Файлы SAM и SYSTEМ располагаются в Windows/System32/config. Первый хранит хэши паролей, второй - system boot key.
Программа samdump2 вытаскивает NTLM хэши из SAM и расшифровывает с помошью ключа из system:
samdump2 SYSTEM_FILE SAM_FILE > hashes
***
При использовании старых версий samdump2 ключ приходилось добывать отдельно.
Добыть ключ из SYSTEМ - задача программы bkhive:
bkhive <SYSTEM file> <key-file>
используя полученный ключ получить хэши - samdump2:
samdump2 <SAM file> <key-file> > <hashes>


Файл  hashes имеет формат:
username*:ID:LM hash: NT hash
и может выглядеть, например, вот так:
4<8=8AB@0B>@:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
>ABL:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
HelpAssistant:1000:aa110cc154019e6ec3b0e1f17c1a6005:53bda4c8b460dca36ab5af9297ef6632:::
SUPPORT_388945a0:1002:aad3b435b51404eeaad3b435b51404ee:95936dcf173773ee3af60e929f5b19a3:::
qwerty:1003:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
123:1004:ccf9155e3e7db453aad3b435b51404ee:3dbde697d71690a769204beb12283678:::
user1:1005:d4a0539829018ea7aad3b435b51404ee:aebf16e3b8f04fd2995c2e8f4f8820d5:::
user2:1006:d4a0539829018ea7aad3b435b51404ee:bd36cffaa3c4af5ce6fbbdcc0020b6ef:::
user3:1007:96fa5702d3668de796fa5702d3668de7:ab4580d78905fc473fe721a043457167:::
user4:1008:aad3b435b51404eeaad3b435b51404ee:ae72983ede69ac85af294b54a55e3a09:::
* два первых имени пользователя - кирилические.


Cached credentails

Для кэшированых на локальном компьютере хэшей доменной учётной записи программа cachedump выдаст хэши:
cachedump <system hive> <security hive>

***

Cain&Abel среди своего обширного функционала имеет функцию "добычи" (функционал cracker'a) хэшей\кэшей NTLM\MSCASH из отдельных файлов реестра SAM и SYSTEM и с локальной машины.

***

Кроме вышеописанных инструментов можно использовать богатые возможности Metasploit Framework для получения хэшей.
Using the Metasploit SMB Sniffer Module

***

Ещё один путь получения хэшей - дамп оперативной памяти (возможно файл подкачки?), в котором можно обнаружить вышеупомянутый раздле реестра.

Подбор пароля

John the Ripper

john <file-with-hashes>
Эта команда запустит John в т.н. single crack режиме, программа будет перебирать пароли в соответствии с правилами описными в конфигурационном файле. Для NTLM хэшей необходимо использовать версию программы - jumbo.
В данном случае john начнёт подбирает пароли для LM хэшей, опция --format=NT предсказуемо сменит тип хэша.
Атака по словарю (-w <путь к словарю>)
john hashes -w common-passwords.lst
Прамаетр --user=<имя пользователя> указывает конкретного пользователя (если в файле с хэшами их несколько) для которого будет осуществлён перебор.
По ходу работы программа будет выводить найденные пароли  в виде: пароль (имя пользователя), статус работы можно посмотреть нажав любую клавишу.
После завершения атаки просмотреть (--show) пароли можно так
 john <file-with-hashes> --show
Так будет выглядеть вывод (--show)  если john подберёт пароль для LM хэша

user2:VEGA:d4a0539829018ea7aad3b435b51404ee:bd36cffaa3c4af5ce6fbbdcc0020b6ef:::

и для NT хэша
user2:Vega:d4a0539829018ea7aad3b435b51404ee:bd36cffaa3c4af5ce6fbbdcc0020b6ef::: 
Пароли расположены после имени пользователя (отмечены курсивом). Найденный пароль также можно увидеть в файле john.pot, что, как правило, лежит в каталоге с исполняемый файлом john.

Пример

bkhive <SYSTEM file> <key-file>
samdump2 <SAM file> <key-file> > <text-file> 
#for NT hashes
john  <hash-file> --format=NT
# or
john <hash-file>

john --format=NT <hash-file> --show > <pash-hash-file>
Для солёных именем пользователя хэшей доменных учётных записей -format:mscash:
john --wordlist:password.lst -format:mscash mydump.txt

 

SAMInside

В программе реализована брутфорс атака, атака по словарю\по маске, атака с использованием радужных таблиц.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Другой софт:
Уже упомянутый Cain&Abel  умеет брутфорсить описанные типы хэшей.


Hashcat - поддерживает множество хэш-функций, может использовать GPU;
Ophcrack - взламывает NTLM хэши используя радужные таблицы;
etc.


Удаление или смена пароля

Для  сброса паролей можно воспользоваться консольной утилитой chntpw. Программа позволяет сменить пароль пользователя и наделить одного из пользователей правами администратора а также редактировать другие ключи реестра в ручном режиме. В ОС BackTrack, программа располагается вот здесь /pentest/passwords/chntpw/
Просмотреть (-l) пользователей
chntpw -l <SAM>
Интерактивный (-i) режим позволяет за несколько простых шагов проделать вышеописанные действия:
/pentest/passwords/chntpw/chntpw -i <SAM>




























После после завершения операций, перед выходом, остаётся утвердительно ответить на вопрос о сохранении изменений.

***

Возможность залогиниться без ввода пароля предоставляет платная программа Kon-Boot. Для этого следует предварительно загрузится с liveCD\USB Kon-Boot и после автоматического запуска Windows можно будет игнорируя поля ввода пароля войти в систему под любым пользователем. [демонстрация]

 

Ссылки

Learn samdump on backtrack 5
How to crack Windows Passwords using *dump
Memory Forensics: How to Pull Passwords from a Memory Dump
OnlineHashCrack.com
crack MD5, SHA1 and/or NTLM hashes

Восстанавливаем локальные и доменные пароли из hiberfil.sys
Volatility. Retrieve password from memory dump

Программы
cachedump

Калькуляторы хэшей
http://www.nitrxgen.net/hashgen/
***
Алсо

2 комментария:

  1. Просто великолепно, ценнейшая и уникальная информация, спасибо Вам за труд!

    ОтветитьУдалить
  2. .: Пароли Учётных Записей Windows >>>>> Download Now

    >>>>> Download Full

    .: Пароли Учётных Записей Windows >>>>> Download LINK

    >>>>> Download Now

    .: Пароли Учётных Записей Windows >>>>> Download Full

    >>>>> Download LINK zl

    ОтветитьУдалить