Luke Leighton [Sat, 27 Nov 1999 22:14:37 +0000 (22:14 +0000)]
modified cli_connect_serverlist to take server list of format
\\server_name \\other_server etc.
(This used to be commit 4fd4aeb57455792bd8eaf81f8fa45bca6bd3e2e2)
Luke Leighton [Sat, 27 Nov 1999 21:50:11 +0000 (21:50 +0000)]
further abstraction involving client states. main client-side code
is pretty much independent of SMB client states, which will make it
easier to add other transports.
(This used to be commit a1ff7e8fc3129ba4a04722f977bc2d3725d13624)
Luke Leighton [Sat, 27 Nov 1999 20:29:16 +0000 (20:29 +0000)]
enhanced samuser command to do same thing as enumusers command (-g -u -a)
except with only one user. done by sharing same code.
(This used to be commit 4e029d50fcb9148f2d65c6be2703b1003e68cec7)
Luke Leighton [Sat, 27 Nov 1999 00:02:03 +0000 (00:02 +0000)]
bug-fixing registry commands and the rpcclient "rpcclient" command.
the rpcclient "rpcclient" command allows user options to be reset
(e.g the username / password) _without_ terminating rpcclient.
try this:
Luke Leighton [Thu, 25 Nov 1999 05:34:12 +0000 (05:34 +0000)]
previous commit added an abstraction function that didn't even have
struct cli_state, uint16 fnum into the code: rpc_hnd_api_req().
modified cli_lsarpc.c to use this. the rest is const issues.
(This used to be commit c1ea396de21309c4cf19fd92f2573f5257c24588)
Luke Leighton [Thu, 25 Nov 1999 05:26:48 +0000 (05:26 +0000)]
cool! completed a samr* API that _would_ look like an msdn samr* api...
if microsoft bothered to publish it. actually, there are good reasons
for not publishing it: people might write programs for it, and then
those programs wouldn't work on nt5, for example...
(This used to be commit 8ce93b80d3b4e1c1e28aa1dde38cdef184eff3c1)
Luke Leighton [Wed, 24 Nov 1999 23:11:03 +0000 (23:11 +0000)]
service control manager API completed. svcenum -i works, but does not
do so twice. possible memory corruption, revolving around getopt().
(This used to be commit 7cacf8bd026f1ee274f1d352c68cf79cf4f3b499)
Luke Leighton [Wed, 24 Nov 1999 22:45:09 +0000 (22:45 +0000)]
ok. *whew*. this is the first completed part of the restructure.
verified that lsaquery, lsalookupsids work, and found some bugs in the
parameters of these commands :-)
soo... we now have an lsa_* api that has the same arguments as the nt
Lsa* api! cool!
the only significant coding difference is the introduction of a
user_credentials structure, containing user, domain, pass and ntlmssp
flags.
(This used to be commit 57bff6fe82d777e599d535f076efb2328ba1188b)
Luke Leighton [Wed, 24 Nov 1999 20:24:33 +0000 (20:24 +0000)]
first stages of removing struct cli_state* and uint16 fnum from all
msrpc client code. the intent is to hide / abstract / associate
connection info behind policy handles.
this makes the msrpc functions look more and more like their nt equivalents.
Luke Leighton [Wed, 24 Nov 1999 18:15:50 +0000 (18:15 +0000)]
WARNING! MOVED rpc_server/srv_lsa_hnd.c TO lib/util_hnd.c
CVS UPDATE MAY ISSUE WARNING ABOUT lib/util_hnd.c MODIFICATION
DATE BEING IN THE FUTURE. CVS CHECKOUT A NEW REPOSITORY MAY BE
SAFER.
(This used to be commit c26e8a6ac59934ae580077df937439c2c538dbdb)
Luke Leighton [Mon, 22 Nov 1999 19:02:39 +0000 (19:02 +0000)]
okay :) all cmd_() functions now take int argc, char **argv :) that
means that some commands need more work, as they still use next_token(),
the use of which i wish to avoid.
plus, i was getting fed up of the poor command-line processing in some
of these commands. i'm starting to need getopt() in them, especially
in samsetuser.
Luke Leighton [Sun, 21 Nov 1999 19:24:01 +0000 (19:24 +0000)]
you know what? this sort of thing makes me laugh. hmm, what functions
have we got. and what data do we have. hmm.. i wonder what the NTLMv2
user session key can be... hmmm... weell.... there's some hidden data
here, generated from the user password that doesn't go over-the-wire,
so that's _got_ to be involved. and... that bit of data took a lot of
computation to produce, so it's probably _also_ involved... and md4 no, md5?
no, how about hmac_md5 yes let's try that one (the other's didn't work)
oh goodie, it worked!
i love it when this sort of thing happens. took all of fifteen minutes to
guess it. tried concatenating client and server challenges. tried
concatenating _random_ bits of client and server challenges. tried
md5 of the above. tried hmac_md5 of the above. eventually, it boils down
to this:
kr = MD4(NT#,username,domainname)
hmacntchal=hmac_md5(kr, nt server challenge)
sess_key = hmac_md5(kr, hmacntchal);
(This used to be commit ab174759cd210fe1be888d0c589a5b2669f7ff1e)
Luke Leighton [Sun, 21 Nov 1999 17:27:20 +0000 (17:27 +0000)]
hmmm... have to add client-side support in domain_client_validate() to
_use_ user session key.
(This used to be commit be6a6b13939798a9c7242b38864f0ce842391a74)
Luke Leighton [Sat, 20 Nov 1999 22:05:31 +0000 (22:05 +0000)]
oops, #ifdef'd cli_shutdown out, as the fun has _already_ started:
NT refuses to play nice, and establish a trust relationship.
(This used to be commit 98c42764fba365d612a8ae4b3172b03367066112)
Luke Leighton [Sat, 20 Nov 1999 21:59:16 +0000 (21:59 +0000)]
attempting to establish inter-domain trust relationships. modified
smbpasswd so it can be used to set up inter-domain trust account.
(This used to be commit 99ec0620c3bf4af96440c684f880d414659de2e9)
Luke Leighton [Sat, 20 Nov 1999 20:54:29 +0000 (20:54 +0000)]
modified domain_client_validate to take trust account name / type. this
is to pass DOMAIN_NAME$ and SEC_CHAN_DOMAIN instead of WKSTA_NAME$ and
SEC_CHAN_WKSTA.
modified check_domain_security to determine if domain name is own domain,
and to use wksta trust account if so, otherwise check "trusting domains"
parameter and use inter-domain trust account if so, otherwise return
False.
(This used to be commit 97ec74e1fa99d773812d2df402251fafb76b181c)
Luke Leighton [Sat, 20 Nov 1999 18:17:29 +0000 (18:17 +0000)]
dynamic memory allocation i added a month ago: forgot to ZERO_STRUCT()
some of the server-side stuff. Realloc() was being used, so it
Realloc()d some random area of memory. oops.dynamic memory allocation i added a month ago: forgot to ZERO_STRUCT()
some of the server-side stuff. Realloc() was being used, so it
Realloc()d some random area of memory. oops.dynamic memory allocation i added a month ago: forgot to ZERO_STRUCT()
some of the server-side stuff. Realloc() was being used, so it
Realloc()d some random area of memory. oops.
(This used to be commit a51f62f4cf610c23e45251cedb543144747a3e54)
Luke Leighton [Sat, 20 Nov 1999 17:41:35 +0000 (17:41 +0000)]
explicit reference to tell people that rpcclient doesn't work with
Windows 95. i can just imagine some people saying "it dunna wurk on
my box at home", and me having to reply, "i dunna care".
(This used to be commit b31de1640728ebcdc87cdb887cd74a288e180ed7)
Luke Leighton [Fri, 19 Nov 1999 01:37:16 +0000 (01:37 +0000)]
The First Necessary UNICODE String Support.
the random workstation trust account password is TOTAL garbage. i mean,
complete garbage. it's nowhere CLOSE to being a UNICODE string. therefore
we can't just take every second character.
created nt_owf_genW() which creates NT#(password) instead of NT#(Unicode(pw)).
followed through to the password setting in srv_samr.c
(This used to be commit 172601b84ae94044b27ded917d4e0e21e47a5a66)
Luke Leighton [Fri, 19 Nov 1999 01:24:41 +0000 (01:24 +0000)]
- surprise! the number of UNICODE strings that didn't have alignment
after them is incredible. how did we get away with this for so long?
(This used to be commit 3152bde7d855d189f6f8ab9e6291828579cde2d0)
Luke Leighton [Fri, 19 Nov 1999 01:01:07 +0000 (01:01 +0000)]
- bug in nmbd registering DOMAIN_NAME<1c> to WINS server; recursion
desired flag MUST be set in any NBT UDP packets sent to a WINS
server, else they will go to the WINS client side of the NT NetBIOS
kernel instead, and will get trashed.
Luke Leighton [Fri, 19 Nov 1999 00:12:16 +0000 (00:12 +0000)]
added \PIPE\browser plus experimental brsinfo command. you wouldn't
believe the XXXX that MIGHT be involved in getting nt5rc2 to join
a samba domain...
(This used to be commit 569babb3935950c1b64396955541abf276cc1d92)
Luke Leighton [Thu, 18 Nov 1999 23:15:45 +0000 (23:15 +0000)]
responses to UDP samquery go back to SERVER<00> not DOMAIN<1c>, the
request name.
modified createuser rpcclient command to examine name being added. if it
ends in a $, assume that a workstation trust account is being added.
(This used to be commit 4aea261cb0e5f34255ff83271eb5cadb0eb78bc9)
Luke Leighton [Thu, 18 Nov 1999 22:03:47 +0000 (22:03 +0000)]
set "key does not exist" response to reg_query_val() (win32 status code
of 0x2). [p.s. getting REALLY bored of this nt5rc2->samba domain stuff].
(This used to be commit a8801942f72b2394a54e4a46546029fac70efeed)
Luke Leighton [Thu, 18 Nov 1999 19:29:08 +0000 (19:29 +0000)]
added samuserset2 rpcclient command to test ACB_XXX bit-setting on
samr opcode 0x25. _yet_ another failed attempt to get nt5rc2 to join
a samba domain. what _is_ it with this stuff, dammit?
(This used to be commit c3913f8ae272c496fc4519141accf01ee9f1e49e)
Luke Leighton [Thu, 18 Nov 1999 17:57:21 +0000 (17:57 +0000)]
updating reg_value_info() parsing code to take BUFFER2 instead of just
a char*. now copes with multiple types.
(This used to be commit 3df7c903c5b70f336294a95ad864aedbacf544b0)
Luke Leighton [Thu, 18 Nov 1999 00:26:11 +0000 (00:26 +0000)]
added regqueryval command (experimental) to get reg_io_q_info() and
reg_io_r_info() working properly. previously they weren't well
understood (well, they were the first of the registry functions i did,
back in december 97, ok??? :-)
Luke Leighton [Tue, 16 Nov 1999 17:27:41 +0000 (17:27 +0000)]
added two new params: "trusted domains" and "trusting domains".
these _may_ not actually ever get used, as trust relationships
really need to be established with shared secrets, and you need
to get the SID of the trusted and trusting domains, so this
may have to go in a private/xxx.mac file.
(This used to be commit 71f12138679251a9ebcada35969d9baea286a3e9)
Luke Leighton [Tue, 16 Nov 1999 17:25:45 +0000 (17:25 +0000)]
added another dummy key so that NT5 can check in the registry whether
password changes are allowed or not. *dur*!!!!
(This used to be commit b51fa05c820c4629b278dc294ad0a405ee470a6e)
Luke Leighton [Tue, 16 Nov 1999 17:15:45 +0000 (17:15 +0000)]
oops, mistake in parsing command-arguments. repeated calls to
next_token() should not have line to parse as first arg. oops.
(This used to be commit 3273bc068d0e0a8eefc92f9b21db47f239b76d21)
Luke Leighton [Tue, 16 Nov 1999 15:39:09 +0000 (15:39 +0000)]
Shirish Kalele <kalele@veritas.com> noticed that NT workstations are
sending anonymous NTLMSSP user credentials to set up \PIPE\samr.
added anonymous NTLMSSP sessions.
(This used to be commit df5ee2bd427ccd5fcf27fd3c366e06e037bc4f1e)
Richard Sharpe [Tue, 16 Nov 1999 14:10:23 +0000 (14:10 +0000)]
Changes to implement NET_AUTH based on NET_AUTH2, to get Win2000
happier in joining a Samba domain.
(This used to be commit 70274b5253182f3541584ecd844f07376a3d3df9)
Luke Leighton [Mon, 15 Nov 1999 22:43:08 +0000 (22:43 +0000)]
added rpcclient "enumdomains" command. enumerates names of domains
for which a PDC is responsible. typical answers are:
<Name of Domain> plus <Builtin>.
against a hierarchical, down-level-compatible NT5 PDC, there's likely to
be more than these two entries!!!!!
(This used to be commit 3146aa6b6049a0d996e9abbe7dbee8526550e7e0)
Luke Leighton [Mon, 15 Nov 1999 22:11:10 +0000 (22:11 +0000)]
- added DCE/RPC "fault" PDU support.
- disabled (AGAIN) the GETDC "if (MAILSLOT\NTLOGON)" code that will get
NT5rc2 to work but WILL break win95 (AGAIN). this needs _not_ to be
re-enabled but to be replaced with a better mechanism.
- added SMBwrite support (note: SMBwriteX already existed) as NT5rc2 is
sending DCE/RPC over SMBwrite not SMBwriteX.
(This used to be commit 25c70e3c984c4fed19763ed405741e83fe14f87e)
Luke Leighton [Tue, 9 Nov 1999 19:35:30 +0000 (19:35 +0000)]
debugging rpcclient spoolenum and spooljobs commands. oh, did i forget
to mention, there's a spooljobs <printer name> command, and it uses
command-line completion? prints out NT print jobs really nicely, too.
(This used to be commit e6e5caf16c8d120f0c11fa63061f2786098e3357)
Luke Leighton [Mon, 8 Nov 1999 22:00:41 +0000 (22:00 +0000)]
preparation for doing a spoolss enum jobs command. had to rewrite
spoolss_enumjobs parsing code to do read / writes not just writes.
(This used to be commit bc659a09f9103eee9616279e27fafacf89dcd9b9)
Luke Leighton [Sat, 6 Nov 1999 19:52:04 +0000 (19:52 +0000)]
added rpcclient spoolenum command. enumerates printers.
spoolss_r_io_enumprinters doesn't decode strings correctly
as printer_info_1/2 code has only been written to write
structures, not read them.
(This used to be commit 135eaa977385cdd5f572a51f654f14d893347d7b)
jean-francois, f.y.i. i changed the #define for SPOOLSS_OPENPRINTEREX from
op code 0x44 to 0x45.
(This used to be commit ef7fa58fd3c259c765c3bc82424d4c0f192ec90e)
Luke Leighton [Thu, 4 Nov 1999 21:41:36 +0000 (21:41 +0000)]
samuserset <username> -p password. YESSSSS :)
you have to use "ntlmv1" at the moment (i.e set client ntlmv2 = no).
(This used to be commit f52504c553becc64b89d546a57b1bd9cf1bc5b5c)
Luke Leighton [Thu, 4 Nov 1999 00:09:15 +0000 (00:09 +0000)]
adding experimental set user password command to rpcclient, it returns
error wrong password against nt. ????
(This used to be commit b3f16e6b5aa5ba1b6afa38ad698646c8e765ec90)
Luke Leighton [Wed, 3 Nov 1999 20:01:07 +0000 (20:01 +0000)]
had to move unistr2_dup(), unistr2_free() and unistr2_copy() into
util_unistr.c in order to get bin/testparm to compile.
(This used to be commit e718ce9c4a3598483e38b8c32bdf2924593edc1e)
Luke Leighton [Wed, 3 Nov 1999 19:58:47 +0000 (19:58 +0000)]
three types of array-creation / array-deletion functions:
char*
UNISTR2*
SID*
decided to create a higher-order function set, add_item_to_array()
free_item_array().
higher-order support routines needed to add a new type:
type* item_dup(const type*)
void item_free(type*)
of course, strdup() and free() are perfect, pre-existing examples
of such functions, used in the implementation of add_chars_to_array()
and free_char_array().
sid_dup() and free() work for the add_sids_to_array() and free_sid_array()
implementations.
use unistr2_dup() and created unistr2_free() because the functionality
behind these may change into something horrible, like [horror] dynamic
memory allocation of the UNISTR2 character array. argh!!!!
Luke Leighton [Mon, 1 Nov 1999 22:25:38 +0000 (22:25 +0000)]
added lsaenumdomains command.
attempting to get blood out of a stone^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H
querysecret to work, it keeps returning access denied.
(This used to be commit 953fe6ba9454fa4b8e69426527eca37b011f76ac)
Matthew Chapman [Mon, 1 Nov 1999 12:11:05 +0000 (12:11 +0000)]
Fixed typo which was preventing the omission of seconds in the 'at' command.
I *love* this scheduler stuff, it's so useful!
(This used to be commit 5cb124806dbaa08b659fd8bdf67a9b06436d3d20)
works with command-line completion on the service name (ohh yesss, this
is becoming my favourite bit of functionality-on-the-side hee hee :)
had to fix the svc_io_q_start_service() code which was missing the
ptr_argv[] array in between the array-size and the UNISTR2-array.
i.e it's actually an array of _pointers_ to unicode strings...
(This used to be commit 2903f22e7ed9306229035accfa757fd810645820)