1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-07 01:58:28 +03:00

damn, that took a while. nt login password was being stored incorrectly

in private .mac file (oops).  ntlogin test now works.
This commit is contained in:
Luke Leighton -
parent cef258f1c9
commit c98c666906
8 changed files with 31 additions and 29 deletions

View File

@ -2302,7 +2302,7 @@ uint32 msrpc_sam_enum_aliases( const char* srv_name,
ALIAS_INFO_FN(als_inf_fn),
ALIAS_MEM_FN(als_mem_fn));
BOOL create_samr_domain_user( POLICY_HND *pol_dom,
const char *acct_name, uint16 acb_info,
char *acct_name, uint16 acb_info,
const char* password, int plen,
uint32 *rid);
BOOL create_samr_domain_alias( POLICY_HND *pol_open_domain,
@ -2349,7 +2349,7 @@ BOOL get_samr_query_aliasinfo(
uint32 info_level,
uint32 alias_rid, ALIAS_INFO_CTR *ctr);
BOOL msrpc_sam_create_dom_user(const char* srv_name, DOM_SID *sid1,
const char *acct_name, uint16 acb_info,
char *acct_name, uint16 acb_info,
const char *password, int plen,
uint32 *rid);
BOOL msrpc_sam_query_dispinfo(const char* srv_name, const char* domain,
@ -2516,12 +2516,12 @@ BOOL smb_io_log_info(char *desc, DOM_LOG_INFO *log, prs_struct *ps, int depth);
BOOL smb_io_chal(char *desc, DOM_CHAL *chal, prs_struct *ps, int depth);
BOOL smb_io_cred(char *desc, DOM_CRED *cred, prs_struct *ps, int depth);
BOOL make_clnt_info2(DOM_CLNT_INFO2 *clnt,
char *logon_srv, char *comp_name,
const char *logon_srv, const char *comp_name,
DOM_CRED *clnt_cred);
BOOL smb_io_clnt_info2(char *desc, DOM_CLNT_INFO2 *clnt, prs_struct *ps, int depth);
BOOL make_clnt_info(DOM_CLNT_INFO *clnt,
char *logon_srv, char *acct_name,
uint16 sec_chan, char *comp_name,
const char *logon_srv, const char *acct_name,
uint16 sec_chan, const char *comp_name,
DOM_CRED *cred);
BOOL smb_io_clnt_info(char *desc, DOM_CLNT_INFO *clnt, prs_struct *ps, int depth);
BOOL make_owf_info(OWF_INFO *hash, uint8 data[16]);
@ -2587,7 +2587,7 @@ BOOL make_sam_info(DOM_SAM_INFO *sam,
const char *logon_srv, const char *comp_name,
DOM_CRED *clnt_cred,
DOM_CRED *rtn_cred, uint16 logon_level,
NET_ID_INFO_CTR *ctr, uint16 validation_level);
NET_ID_INFO_CTR *ctr);
BOOL make_net_user_info3(NET_USER_INFO_3 *usr,
NTTIME *logon_time,

View File

@ -345,14 +345,14 @@ typedef struct sam_info
DOM_CRED rtn_cred; /* return credentials */
uint16 logon_level;
NET_ID_INFO_CTR *ctr;
uint16 validation_level;
} DOM_SAM_INFO;
/* NET_Q_SAM_LOGON */
typedef struct net_q_sam_logon_info
{
DOM_SAM_INFO sam_id;
DOM_SAM_INFO sam_id;
uint16 validation_level;
} NET_Q_SAM_LOGON;

View File

@ -416,7 +416,9 @@ BOOL cli_net_sam_logon(const char* srv_name, const char* myhostname,
/* store the parameters */
make_sam_info(&(q_s.sam_id), srv_name, myhostname,
&new_clnt_cred, &dummy_rtn_creds, ctr->switch_value, ctr, validation_level);
&new_clnt_cred, &dummy_rtn_creds, ctr->switch_value, ctr);
q_s.validation_level = validation_level;
/* turn parameters into data stream */
net_io_q_sam_logon("", &q_s, &buf, 0);
@ -481,7 +483,6 @@ BOOL cli_net_sam_logoff(const char* srv_name, const char* myhostname,
prs_struct rbuf;
prs_struct buf;
NET_Q_SAM_LOGOFF q_s;
uint16 validation_level = 3;
BOOL ok = False;
struct cli_connection *con = NULL;
@ -507,7 +508,7 @@ BOOL cli_net_sam_logoff(const char* srv_name, const char* myhostname,
/* store the parameters */
make_sam_info(&(q_s.sam_id), srv_name, myhostname,
&new_clnt_cred, &dummy_rtn_creds, ctr->switch_value, ctr, validation_level);
&new_clnt_cred, &dummy_rtn_creds, ctr->switch_value, ctr);
/* turn parameters into data stream */
net_io_q_sam_logoff("", &q_s, &buf, 0);

View File

@ -996,7 +996,7 @@ uint32 msrpc_sam_enum_aliases( const char* srv_name,
do a SAMR create domain user
****************************************************************************/
BOOL create_samr_domain_user( POLICY_HND *pol_dom,
const char *acct_name, uint16 acb_info,
char *acct_name, uint16 acb_info,
const char* password, int plen,
uint32 *rid)
{
@ -1028,7 +1028,7 @@ BOOL create_samr_domain_user( POLICY_HND *pol_dom,
if (ret == (NT_STATUS_USER_EXISTS | 0xC0000000))
{
uint32 num_rids;
const char *names[1];
char *names[1];
uint32 type[1];
names[0] = acct_name;
@ -1512,7 +1512,7 @@ BOOL get_samr_query_aliasinfo(
SAM create domain user.
****************************************************************************/
BOOL msrpc_sam_create_dom_user(const char* srv_name, DOM_SID *sid1,
const char *acct_name, uint16 acb_info,
char *acct_name, uint16 acb_info,
const char *password, int plen,
uint32 *rid)
{
@ -1523,7 +1523,6 @@ BOOL msrpc_sam_create_dom_user(const char* srv_name, DOM_SID *sid1,
uint32 user_rid;
POLICY_HND sam_pol;
POLICY_HND pol_dom;
char *pwd = NULL;
/* establish a connection. */
res = res ? samr_connect(
@ -1536,8 +1535,7 @@ BOOL msrpc_sam_create_dom_user(const char* srv_name, DOM_SID *sid1,
&pol_dom) : False;
/* create a domain user */
res2 = res1 ? create_samr_domain_user(
&pol_dom,
res2 = res1 ? create_samr_domain_user( &pol_dom,
acct_name,
acb_info, password, plen, &user_rid) : False;

View File

@ -978,7 +978,9 @@ BOOL smb_io_dom_rid3(char *desc, DOM_RID3 *rid3, prs_struct *ps, int depth)
/*******************************************************************
makes a DOM_CLNT_SRV structure.
********************************************************************/
static BOOL make_clnt_srv(DOM_CLNT_SRV *log, char *logon_srv, char *comp_name)
static BOOL make_clnt_srv(DOM_CLNT_SRV *log,
const char *logon_srv,
const char *comp_name)
{
if (log == NULL) return False;
@ -1122,7 +1124,7 @@ BOOL smb_io_cred(char *desc, DOM_CRED *cred, prs_struct *ps, int depth)
makes a DOM_CLNT_INFO2 structure.
********************************************************************/
BOOL make_clnt_info2(DOM_CLNT_INFO2 *clnt,
char *logon_srv, char *comp_name,
const char *logon_srv, const char *comp_name,
DOM_CRED *clnt_cred)
{
if (clnt == NULL) return False;
@ -1170,8 +1172,8 @@ BOOL smb_io_clnt_info2(char *desc, DOM_CLNT_INFO2 *clnt, prs_struct *ps, int de
makes a DOM_CLNT_INFO structure.
********************************************************************/
BOOL make_clnt_info(DOM_CLNT_INFO *clnt,
char *logon_srv, char *acct_name,
uint16 sec_chan, char *comp_name,
const char *logon_srv, const char *acct_name,
uint16 sec_chan, const char *comp_name,
DOM_CRED *cred)
{
if (clnt == NULL || cred == NULL) return False;

View File

@ -884,7 +884,7 @@ BOOL make_sam_info(DOM_SAM_INFO *sam,
const char *logon_srv, const char *comp_name,
DOM_CRED *clnt_cred,
DOM_CRED *rtn_cred, uint16 logon_level,
NET_ID_INFO_CTR *ctr, uint16 validation_level)
NET_ID_INFO_CTR *ctr)
{
if (sam == NULL) return False;
@ -904,7 +904,6 @@ BOOL make_sam_info(DOM_SAM_INFO *sam,
sam->logon_level = logon_level;
sam->ctr = ctr;
sam->validation_level = validation_level;
return True;
}
@ -970,8 +969,6 @@ static BOOL smb_io_sam_info(char *desc, DOM_SAM_INFO *sam, prs_struct *ps, int
net_io_id_info_ctr("logon_info", sam->ctr, ps, depth);
}
prs_uint16("validation_level", ps, depth, &(sam->validation_level));
return True;
}
@ -1194,6 +1191,8 @@ BOOL net_io_q_sam_logon(char *desc, NET_Q_SAM_LOGON *q_l, prs_struct *ps, int d
prs_align(ps);
smb_io_sam_info("", &(q_l->sam_id), ps, depth); /* domain SID */
prs_uint16("validation_level", ps, depth, &(q_l->validation_level));
return True;
}

View File

@ -171,10 +171,12 @@ void cmd_netlogon_login_test(struct client_info *info, int argc, char *argv[])
/*** clear out the password ***/
memset(password, 0, sizeof(password));
#if 0
/* ok! you're logged in! do anything you like, then... */
/* do an NT logout */
res = res ? cli_nt_logoff(srv_name, info->myhostname, &info->dom.ctr) : False;
#endif
report(out_hnd,"cmd_nt_login: login (%s) test succeeded: %s\n",
nt_user_name, BOOLSTR(res));

View File

@ -770,12 +770,12 @@ void cmd_sam_create_dom_user(struct client_info *info, int argc, char *argv[])
if (acb_info == ACB_WSTRUST || acb_info == ACB_SVRTRUST)
{
upw.uni_str_len = 24;
upw.uni_max_len = 24;
upw.uni_str_len = 12;
upw.uni_max_len = 12;
generate_random_buffer((uchar*)upw.buffer,
upw.uni_str_len, True);
upw.uni_str_len*2, True);
password = (char*)upw.buffer;
plen = upw.uni_str_len;
plen = upw.uni_str_len * 2;
}
if (msrpc_sam_create_dom_user(srv_name, &sid1,