diff options
Diffstat (limited to 'source/rpc_parse/parse_samr.c')
-rw-r--r-- | source/rpc_parse/parse_samr.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/source/rpc_parse/parse_samr.c b/source/rpc_parse/parse_samr.c index 27a30cd1343..2cf46859268 100644 --- a/source/rpc_parse/parse_samr.c +++ b/source/rpc_parse/parse_samr.c @@ -5894,6 +5894,8 @@ BOOL make_samr_q_set_userinfo2(SAMR_Q_SET_USERINFO2 *q_u, uint16 switch_value, SAM_USERINFO_CTR *ctr) { + uint8 usr_sess_key[16]; + if (q_u == NULL || hnd == NULL) return False; DEBUG(5,("make_samr_q_set_userinfo2\n")); @@ -5907,6 +5909,25 @@ BOOL make_samr_q_set_userinfo2(SAMR_Q_SET_USERINFO2 *q_u, q_u->ctr->switch_value = switch_value; } + if (!cli_get_usr_sesskey(hnd, usr_sess_key)) + { + DEBUG(0,("make_samr_set_userinfo: could not obtain session key\n")); + return False; + } + + switch (switch_value) + { + case 0x12: + { + SamOEMhash(ctr->info.id12->lm_pwd, usr_sess_key, 0); + SamOEMhash(ctr->info.id12->nt_pwd, usr_sess_key, 0); + dump_data_pw("sess_key", usr_sess_key, 16); + dump_data_pw("passwd", ctr->info.id12->lm_pwd, 16); + dump_data_pw("passwd", ctr->info.id12->nt_pwd, 16); + break; + } + } + return True; } |