
Создание NTLM-хеша
Недавно мне потребовальсь перевесть любое строковое значение (например пароль) в NTLMv1-хеш. Я искал различные готовые способы, но мне нужен был максимально простой и удобный функционал и я решил не убивать время на уже готовые аналоги и написал сам, то что мне было нужно.
Описание:
Хеш - блок данных фиксированного размера, полученный в результате хэширования массива данных. Криптографические алгоритмы.
NTLM - протокол сетевой аутентификации Microsoft для Windows NT.
NT ключ вычисляется с помощью алгоритма MD4 c UTF-16 с последовательностью байт low endian (utf16le)
Приступает к программированию :)
#!/usr/bin/env python import sys import hashlib #Program generate NTLM hash if len(sys.argv)==1: print "Example: $hash <password>" else: myhash=hashlib.new('md4', sys.argv[1].encode('utf-16le')).hexdigest().upper() print myhash
Вот с помощью этого не мудрёного скрипта, можно с лёгкость сгенерить NTLMv1 хеш, без лишней функциональности, ну что попробуем?
- Сохраняем скрипт например как myhash.py
- Делаем исполняемым
chmod +x myhash
- Запускаем
./myhash.py mypassword
На выхлопе долны получить вот это:
A991AE45AA987A1A48C8BDC1209FF0E7