you know what? this sort of thing makes me laugh. hmm, what functions
authorLuke Leighton <lkcl@samba.org>
Sun, 21 Nov 1999 19:24:01 +0000 (19:24 +0000)
committerLuke Leighton <lkcl@samba.org>
Sun, 21 Nov 1999 19:24:01 +0000 (19:24 +0000)
commitab174759cd210fe1be888d0c589a5b2669f7ff1e
treed083247e7b8baf673639d687f23021c58156eb27
parentbe6a6b13939798a9c7242b38864f0ce842391a74
you know what?  this sort of thing makes me laugh.  hmm, what functions
have we got.  and what data do we have.  hmm.. i wonder what the NTLMv2
user session key can be... hmmm... weell.... there's some hidden data
here, generated from the user password that doesn't go over-the-wire,
so that's _got_ to be involved.  and... that bit of data took a lot of
computation to produce, so it's probably _also_ involved... and md4 no, md5?
no, how about hmac_md5 yes let's try that one (the other's didn't work)
oh goodie, it worked!

i love it when this sort of thing happens.  took all of fifteen minutes to
guess it.  tried concatenating client and server challenges.  tried
concatenating _random_ bits of client and server challenges.  tried
md5 of the above.  tried hmac_md5 of the above.  eventually, it boils down
to this:

kr = MD4(NT#,username,domainname)
hmacntchal=hmac_md5(kr, nt server challenge)
sess_key = hmac_md5(kr, hmacntchal);
source/include/client.h
source/include/proto.h
source/libsmb/clientgen.c
source/libsmb/pwd_cache.c
source/libsmb/smbencrypt.c
source/rpc_client/cli_pipe.c
source/rpcclient/cmd_samr.c