現代において、NTLM ハッシュや LM ハッシュを使うこともそうそうないのだが、無線 LAN の PEAP 認証で mschap を利用する場合は必要となるので、手動生成する方法を調べてみた。
ハッシュの作り方説明は、Wikipedia の該当ページにある。
NTLM ハッシュについては、シェルスクリプトのワンライナーでも生成できる。$ printf "pass_string" | iconv -f utf-8 -t utf-16le | openssl md4 | awk '{print $2}' | tr '[a-z]' '[A-Z]'
LM ハッシュの方はもう少し手順が面倒くさいので、ワンライナーでは無理な感じだ。車輪の再発明は避けて、既存のコードをもらってくることにする。
php によるコード
C によるコード (mkntpwdコマンド)
あたりをもらってくると良い。
また FreeRADIUS がインストールしてあれば、付属の smbencrypt コマンドが使えるはず。