diff options
author | Luke Leighton <lkcl@samba.org> | 1998-09-25 21:01:52 +0000 |
---|---|---|
committer | Luke Leighton <lkcl@samba.org> | 1998-09-25 21:01:52 +0000 |
commit | 66d5d73a5d75e88a77970f7b27687b8354ab2e80 (patch) | |
tree | da1b7278847138fc219398238f7a895a1c7f7a82 /source3/rpcclient/cmd_lsarpc.c | |
parent | 1631d3fba7b887a5de23241b39430ffb5e036803 (diff) | |
download | samba-66d5d73a5d75e88a77970f7b27687b8354ab2e80.tar.gz samba-66d5d73a5d75e88a77970f7b27687b8354ab2e80.tar.bz2 samba-66d5d73a5d75e88a77970f7b27687b8354ab2e80.zip |
added rpcclient program
(This used to be commit aa38f39d67fade4dfd7badb7a9b39c833a1dd1ca)
Diffstat (limited to 'source3/rpcclient/cmd_lsarpc.c')
-rw-r--r-- | source3/rpcclient/cmd_lsarpc.c | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/source3/rpcclient/cmd_lsarpc.c b/source3/rpcclient/cmd_lsarpc.c new file mode 100644 index 0000000000..24edb20450 --- /dev/null +++ b/source3/rpcclient/cmd_lsarpc.c @@ -0,0 +1,119 @@ +/* + Unix SMB/Netbios implementation. + Version 1.9. + NT Domain Authentication SMB / MSRPC client + Copyright (C) Andrew Tridgell 1994-1997 + Copyright (C) Luke Kenneth Casson Leighton 1996-1997 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + + + +#ifdef SYSLOG +#undef SYSLOG +#endif + +#include "includes.h" +#include "nterr.h" + +extern int DEBUGLEVEL; + +#define DEBUG_TESTING + +extern struct cli_state *smb_cli; +extern int smb_tidx; + +extern FILE* out_hnd; + + +/**************************************************************************** +nt lsa query +****************************************************************************/ +void cmd_lsa_query_info(struct client_info *info) +{ + fstring srv_name; + + BOOL res = True; + + fstrcpy(info->dom.level3_dom, ""); + fstrcpy(info->dom.level3_sid, ""); + fstrcpy(info->dom.level5_dom, ""); + fstrcpy(info->dom.level5_sid, ""); + + fstrcpy(srv_name, "\\\\"); + fstrcat(srv_name, info->myhostname); + strupper(srv_name); + + DEBUG(4,("cmd_lsa_query_info: server:%s\n", srv_name)); + + DEBUG(5, ("cmd_lsa_query_info: smb_cli->fd:%d\n", smb_cli->fd)); + + /* open LSARPC session. */ + res = res ? cli_nt_session_open(smb_cli, PIPE_LSARPC, False) : False; + + /* lookup domain controller; receive a policy handle */ + res = res ? do_lsa_open_policy(smb_cli, + srv_name, + &info->dom.lsa_info_pol) : False; + + /* send client info query, level 3. receive domain name and sid */ + res = res ? do_lsa_query_info_pol(smb_cli, + &info->dom.lsa_info_pol, 0x03, + info->dom.level3_dom, + info->dom.level3_sid) : False; + + /* send client info query, level 5. receive domain name and sid */ + res = res ? do_lsa_query_info_pol(smb_cli, + &info->dom.lsa_info_pol, 0x05, + info->dom.level5_dom, + info->dom.level5_sid) : False; + + res = res ? do_lsa_close(smb_cli, &info->dom.lsa_info_pol) : False; + + /* close the session */ + cli_nt_session_close(smb_cli); + + if (res) + { + BOOL domain_something = False; + DEBUG(5,("cmd_lsa_query_info: query succeeded\n")); + + fprintf(out_hnd, "LSA Query Info Policy\n"); + + if (info->dom.level3_sid[0] != 0) + { + fprintf(out_hnd, "Domain Member - Domain: %s SID: %s\n", + info->dom.level3_dom, info->dom.level3_sid); + domain_something = True; + } + if (info->dom.level5_sid[0] != 0) + { + fprintf(out_hnd, "Domain Controller - Domain: %s SID: %s\n", + info->dom.level5_dom, info->dom.level5_sid); + domain_something = True; + } + if (!domain_something) + { + fprintf(out_hnd, "%s is not a Domain Member or Controller\n", + info->dest_host); + } + } + else + { + DEBUG(5,("cmd_lsa_query_info: query succeeded\n")); + } +} + |