summaryrefslogtreecommitdiffstats
path: root/source/rpc_parse/parse_samr.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/rpc_parse/parse_samr.c')
-rw-r--r--source/rpc_parse/parse_samr.c21
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;
}