NTLMv2: различия между версиями

[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
м не смотря на -> несмотря на
м Исправлена опечатка
Строка 59:
# Из пароля пользователя в виде Unicode строки, при помощи алгоритма [[MD4]] вычисляем '''NTLM-hash''', состоящий из 16 байт. Например, пароль "<code>SecREt01</code>" или Unicode строка <code>0x53006500630052004500740030003100</code> после преобразования посредством алгоритма [[MD4]], будет иметь вид:  <code>0xcd06ca7c7e10c99b1d33b7485a2ed808</code>
# Имя пользователя и имя домена в виде Unicode строк, объединяются и приводятся к верхнему регистру. Далее из этой последовательности и ранее полученного '''NTLM-hash''' при помощи алгоритма [[HMAC]]-[[MD5]] вычисляется '''NTLMv2-hash''', состоящий из 16 байт. Например, имя пользователя "<code>User</code>" и имя домена "<code>Domain</code>" дадут  строку "<code>USERDOMAIN</code>" или Unicode строку <code>0x550053004500520044004f004d00410049004e00</code> после алгоритма [[HMAC]]-[[MD5]] где применяется '''NTLM-hash'''  вычисляется '''NTLMv2-hash''' : <code>0x04b8e0ba74289cc540826bab1dee63ae</code>
# Формируется последовательность ClinetClient Challenge из 8 байт, выбранных случайным образом (random), например: <code>0xffffff0011223344</code>
# Формируется blob, например: <code>0x01010000</code> - the blob signature, <code>0x00000000</code> - reserved value, <code>0x0090d336b734c301</code> - timestamp, <code>0xffffff0011223344</code> - a random Client challange, <code>0x00000000</code> - unknown, <code>0x02000c0044004f004d00410049004e0001000c005300450052005600450052000400140064006f006d00610069006e002e0063006f006d00030022007300650072007600650072002e0064006f006d00610069006e002e0063006f006d0000000000</code> - target information block, <code>0x00000000</code> - unknown
# Server Challenge и blob объединяются в последовательность из которой при помощи алгоритма [[HMAC]]-[[MD5]] и ранее вычисленного '''NTLMv2-hash''' вычисляется hash-значение, состоящие из 16 байт. Например, если Server Challenge был <code>0x0123456789abcdef</code>, тогда получается следующая последовательность: <code>0x0123456789abcdef01010000000000000090d336b734c301ffffff00112233440000000002000c0044004f004d00410049004e0001000c005300450052005600450052000400140064006f006d00610069006e002e0063006f006d00030022007300650072007600650072002e0064006f006d00610069006e002e0063006f006d00000000000000000</code>, а после использования алгоритма [[HMAC]]-[[MD5]] получаем следующее hash-значение: <code>0xcbabbca713eb795d04c97abc01ee4983</code>