diff options
author | Tim Potter <tpot@samba.org> | 2001-09-14 04:37:49 +0000 |
---|---|---|
committer | Tim Potter <tpot@samba.org> | 2001-09-14 04:37:49 +0000 |
commit | 5da98620021cda92d4752e7388f0e0cdfcd0e8cd (patch) | |
tree | cad098310ea447aafd2da335b9a94981c04111eb | |
parent | 3245714243d15160b9e0e27c413fef65ea91f455 (diff) | |
download | samba-5da98620021cda92d4752e7388f0e0cdfcd0e8cd.tar.gz samba-5da98620021cda92d4752e7388f0e0cdfcd0e8cd.tar.xz samba-5da98620021cda92d4752e7388f0e0cdfcd0e8cd.zip |
Produce correct lanman and nt hashes in samsync smbpasswd output. The
output from samsync -p produces the same output as running PWDUMP.EXE on
the domain controller except it happens via the sam synchronisation protocol.
-rw-r--r-- | source/rpcclient/samsync.c | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/source/rpcclient/samsync.c b/source/rpcclient/samsync.c index d85fb7a308d..50177ce552e 100644 --- a/source/rpcclient/samsync.c +++ b/source/rpcclient/samsync.c @@ -69,19 +69,38 @@ static NTSTATUS sam_sync(struct cli_state *cli, unsigned char trust_passwd[16], int i; for (i = 0; i < num_deltas; i++) { - fstring acct_name; + SAM_ACCOUNT_INFO *acct; + fstring acct_name, hex_nt_passwd, hex_lm_passwd; + uchar lm_passwd[16], nt_passwd[16]; /* Skip non-user accounts */ if (hdr_deltas[i].type != SAM_DELTA_ACCOUNT_INFO) continue; - unistr2_to_ascii(acct_name, - &deltas[i].account_info.uni_acct_name, + acct = &deltas[i].account_info; + + unistr2_to_ascii(acct_name, &acct->uni_acct_name, sizeof(acct_name) - 1); - printf("%s:-1:%s:%s:%s:LCT-0\n", acct_name, - "nt", "lm", + /* Decode hashes from password hash */ + + sam_pwd_hash(acct->user_rid, acct->pass.buf_lm_pwd, + lm_passwd, 0); + sam_pwd_hash(acct->user_rid, acct->pass.buf_nt_pwd, + nt_passwd, 0); + + /* Encode as strings */ + + smbpasswd_sethexpwd(hex_lm_passwd, lm_passwd, + acct->acb_info); + smbpasswd_sethexpwd(hex_nt_passwd, nt_passwd, + acct->acb_info); + + /* Display user info */ + + printf("%s:%d:%s:%s:%s:LCT-0\n", acct_name, + acct->user_rid, hex_lm_passwd, hex_nt_passwd, smbpasswd_encode_acb_info( deltas[i].account_info.acb_info)); } |