summaryrefslogtreecommitdiff
path: root/source3/libnet
AgeCommit message (Collapse)AuthorFilesLines
2008-10-22Fix net rpc vampire, based on an *amazing* piece of debugging work by ↵Jeremy Allison5-45/+50
"Cooper S. Blake" <the_analogkid@yahoo.com>. "I believe I have found two bugs in the 3.2 code and one bug that carried on to the 3.3 branch. In the 3.2 code, everything is located in the utils/net_rpc_samsync.c file. What I believe is the first problem is that fetch_database() is calling samsync_fix_delta_array() with rid_crypt set to true, which means the password hashes are unencrypted from the RID encryption. However, I believe this call is redundant, and the corresponding call for samdump has rid_crypt set to false. So I think the rid_crypt param should be false in fetch_database(). If you follow the code, it makes its way to sam_account_from_delta() where the password hashes are decrypted a second time by calling sam_pwd_hash(). I believe this is what is scrambling my passwords. These methods were refactored somewhere in the 3.3 branch. Now the net_rpc_samsync.c class calls rpc_vampire_internals, which calls libnet/libnet_samsync.c, which calls samsync_fix_delta_array() with rid_crypt always set to false. I think that's correct. But the second bug has carried through in the sam_account_from_delta() function: 208 if (memcmp(r->ntpassword.hash, zero_buf, 16) != 0) { 209 sam_pwd_hash(r->rid, r->ntpassword.hash, lm_passwd, 0); 210 pdb_set_lanman_passwd(account, lm_passwd, PDB_CHANGED); 211 } 212 213 if (memcmp(r->lmpassword.hash, zero_buf, 16) != 0) { 214 sam_pwd_hash(r->rid, r->lmpassword.hash, nt_passwd, 0); 215 pdb_set_nt_passwd(account, nt_passwd, PDB_CHANGED); If you look closely you'll see that the nt hash is going into the lm_passwd variable and the decrypted value is being set in the lanman hash, and the lanman hash is being decrypted and put into the nt hash field. So the LanMan and NT hashes look like they're being put in the opposite fields." Fix this by removing the rid_crypt parameter. Jeremy.
2008-10-19Add TALLOC_CTX pointer to generate_random_str(), for consistency withJelmer Vernooij1-1/+1
Samba 4.
2008-10-17s3: fix s3 drsuapi callers.Günther Deschner1-1/+1
Guenther
2008-10-16s4-build: fix drsuapi callers.Günther Deschner1-4/+11
Guenther
2008-10-06If name_to_fqdn fails, retry with the dns domain the DC gave usVolker Lendecke1-3/+8
This is a workaround for the cases where you want to join under a netbios name that is different from your hostname, i.e. a name that can not be found in /etc/hosts or dns. In these cases, name_to_fqdn fails or gives invalid results.
2008-10-04"gwen/cc" does not like the double const :-)Volker Lendecke1-1/+1
2008-09-23s3-ndr: add stub smb_iconv_convenience to some ndr_ functions.Günther Deschner1-1/+1
Guenther
2008-09-23s3-nbt: fix remaining callers of ndr_push/pull_struct_blob.Günther Deschner2-5/+5
Guenther
2008-09-15Fixed "uninitialized variable" build warningSteven Danneman1-0/+1
With gcc 4.1.3 on Ubuntu 7.10 the following build warning occurs: Compiling libnet/libnet_samsync_keytab.c cc1: warnings being treated as errors libnet/libnet_samsync_keytab.c: In function ‘fetch_sam_entries_keytab’: libnet/libnet_samsync_keytab.c:102: warning: ‘entry.enctype’ is used uninitialized in this function Fixed by initializing to ENCTYPE_NULL
2008-08-29libnet_join: streamline logic of libnet_join_post_processing()Michael Adam1-9/+11
Michael (This used to be commit 81cc1af1e699e454fbb1d12636d002f845231006)
2008-08-29libnet: fix join by creating keytab after changing the config.Michael Adam1-10/+11
Michael (This used to be commit 96d1c780bf9524b929e6026776602a5288aea73d)
2008-08-29kerberos: use KRB5_KT_KEY macro where appropriate.Günther Deschner1-27/+3
Guenther (This used to be commit a042dffd7121bda3dbc9509f69fcfae06ed4cc22)
2008-08-29kerberos: move the KRB5_KEY* macros to header file.Günther Deschner1-10/+0
Guenther (This used to be commit c28fa17ffffee3e6fd4897c9c6b4937388a19600)
2008-08-11libnetjoin: support kerberized joining/unjoing (fix #5416).Günther Deschner1-19/+41
Guenther (This used to be commit da6e0f4f375aa533c4c765891c960070478972eb)
2008-08-08libnet samsync ldif: fix the build without LDAP.Michael Adam1-0/+15
Michael (This used to be commit 32df05bd1f49f2290ad69f84d5a47207b1469629)
2008-08-07Fix "might be used uninitialized" warnings.Jeremy Allison2-3/+4
Jeremy. (This used to be commit 5abd12eec1c9b6d30af5ec1ba16c0922e78d5bea)
2008-08-04libnet_keytab: fix the build with heimdalStefan Metzmacher1-6/+38
metze (This used to be commit ba18af00cc79a4e92372d3c1151061f200bc0655)
2008-08-01libnet dssync: start memory allocation cleanup: use tmp ctx in libnet_dssync().Michael Adam1-2/+9
Don't leak temporary data to callers but use a temporary context that is freed at the end. Michael (This used to be commit 2d98ad57f56ddd4318bc721929a3ca9ede189a25)
2008-08-01libnet dssync: fix memory allocation for error/result messages.Michael Adam2-11/+11
Use the libnet_dssync_context as a talloc context for the result_message and error_message string members. Using the passed in mem_ctx makes the implicit assumption that mem_ctx is at least as long-lived as the libnet_dssync_context, which is wrong. Michael (This used to be commit 635baf6b7d2a1822ceb48aa4bc47569ef19d51cc)
2008-08-01dssync keytab: add comment header explaining add_to_keytab_entries().Michael Adam1-0/+4
Michael (This used to be commit 1072bd9f96ff3853e5ff58239123fc8c76a99063)
2008-08-01libnet dssync: add my C after dssync keytab changes.Michael Adam4-0/+4
Michael (This used to be commit 9391aec8d4600c685b14d3cd1624f8758f2cc80d)
2008-08-01dssync: add clean_old_entries flag to dssync_ctx.Michael Adam3-0/+3
Initialize it to false. And pass it down to the libnet_keytab context in libnet_dssync_keytab.c:keytab_startup(). Unused yet. Michael Note: This might not be not 100% clean design to put this into the toplevel dssync context while it is keytab specific. But then, on the other hand, other imaginable backends might want to use this flag, too... (This used to be commit 12e884f227e240860e49f9e41d8c1f45e10ad3be)
2008-08-01libnet keytab: implement cleaning of old entries in libnet_keytab_add().Michael Adam1-0/+22
Triggered by the flag clean_old_entries from the libnet_keytab_contex (unused yet...). Michael (This used to be commit a5f4e3ad95c26064881918f3866efa7556055a8f)
2008-08-01libnet keytab: add parameter ingnore_kvno to libnet_keytab_remove_entries()Michael Adam1-3/+4
to allow for removing all entries with given principal and enctype without repecting the kvno (i.e. cleaning "old" entries...) This is called with ignore_kvno == false from libnet_keytab_add_entry() to keep the original behaviour. Michael (This used to be commit 6047f7b68548b33a2c132fc4333355a2c6abb19a)
2008-08-01libnet keytab: add flag clean_old_entries to libnet_keytab_context.Michael Adam2-0/+2
Michael (This used to be commit f40eb8cc20a297c57f6db22e0c2457ce7425d00c)
2008-08-01libnet keytab: use proper counter type (uint32_t) in libnet_keytab_add().Michael Adam1-1/+1
Michael (This used to be commit d0bd9195f04ae0f45c2e571d31625b31347f13e9)
2008-08-01dssync keytab: when not in single object replication mode, use object dn ↵Michael Adam1-0/+28
list as write filter. I.e. only the passwords and keys of those objects whose dns are provided are written to the keytab file. Others are skippded. Michael (This used to be commit a013f926ae5aadf64e02ef9254306e32aea79e80)
2008-08-01dssync keytab: support storing kerberos keys from supplemental credentials.Michael Adam1-0/+186
Michael (This used to be commit 50b1673289f5c147bdb4953f3511a7afe783758c)
2008-08-01libnet dssync: rename flag single to single_object_replicationMichael Adam2-7/+13
So that it is more obvious what this controls. Michael (This used to be commit 2360f0a19f0fb89798b814a02cfca335a4a35b6d)
2008-08-01libnet dssync: rename repl_nodiff flag to force_full_replication.Michael Adam2-2/+2
Michael (This used to be commit ec959b4609c3f4927a9f2811c46d738f9c78a914)
2008-08-01libnet dssync: support lists of dns (instead of one dn) for single object ↵Michael Adam2-17/+26
replication. Just specify several DNs separated by spaces on the command line of "net rpc vampire keytab" to get the passwords for each of these accouns via single object replication. Michael (This used to be commit 6e53dc2db882d88470be5dfa1155b420fac8e6c5)
2008-08-01libnet dssync: move determination of request level into build_request()Michael Adam1-10/+15
...where it belongs. Michael (This used to be commit 012b33f1c52df086e4f20e7494248d98fbced76a)
2008-08-01libnet dssync: refactor dsgetncchanges loop out into ↵Michael Adam1-59/+80
libnet_dssync_getncchanges(). Michael (This used to be commit 93cda1aa0a627e81eff46547b247801aec2880a3)
2008-08-01libnet dssync: fix single object replication by adding one check.Michael Adam1-1/+1
Before, this used the old uptodate vector in the request... Michael (This used to be commit 04fb9322d5f52d5cb3d9fe2a95dbfb2481ab7f9d)
2008-08-01libnet dssync: simplify logic of libnet_dssync_process() main loop.Michael Adam1-83/+64
Untangle parsing of results and processing. Make loop logic more obvious. Call finishing operation after the loop, not inside. Michael (This used to be commit 47c8b3391cb1bb9656f93b55f9ea39c78b74ed36)
2008-08-01libnet dssync: refactor creation of request out into new functionMichael Adam1-64/+122
libnet_dssync_build_request(). Michael (This used to be commit d745c1af405058ec23d7d0c139505576a99f9057)
2008-08-01vampire keytab: add switch --repl-nodiff to trigger full replication.Michael Adam2-1/+2
I.e. replication without keeping track of the up to date vector. Michael (This used to be commit d4b36e447bce8692416e132ab9f53a6282f54cac)
2008-08-01dssync keytab: store the samaccountname in the keytab for diff replication.Michael Adam1-5/+55
When retreiving a diff replication, the sAMAccountName attribute is usually not replicated. So in order to build the principle, we need to store the sAMAccounName in the keytab, referenced by the DN of the object, so that it can be retrieved if necessary. It is stored in the form of SAMACCOUNTNAME/object_dn@dns_domain_name with kvno=0 and ENCTYPE_NONE. Michael (This used to be commit 54e2dc1f4e0e2c7a6dcb171e51a608d831c8946e)
2008-08-01dssync keytab: move handling of removal of duplicates to ↵Michael Adam3-114/+99
libnet_keytab_add_entry(). This makes libnet_keytab_remove_entries static and moves it up. libnet_keytab_add_entry() now removes the duplicates in advance. No special handling neede for the UTDV - this is also needed for other entries... Michael (This used to be commit 3c463745445f6b64017918f442bf1021be219e83)
2008-08-01libnet_keytab: add some debug statements to libnet_keytab_search().Michael Adam1-0/+8
Michael (This used to be commit d3354c3516b56f254583f3dd065302b27d02af2b)
2008-08-01dssync keytab: store the UpToDate vector with ENCTYPE_NULL.Michael Adam1-3/+3
Michael (This used to be commit 9fbc3d49035123ec11cc2248f0b14661dd1e9b2d)
2008-08-01libnet keytab: use libnet_keytab_add_entry() in libnet_keytab_add().Michael Adam1-13/+6
This will in particular allow us to store ENCTYPE_NULL. Michael (This used to be commit 85c7e3ae29a6f25ed0b6917ff73baea9c6c905c6)
2008-08-01libnet keytab: add function libnet_keytab_add_entry()Michael Adam1-0/+54
This is a stripped down version of smb_krb5_kt_add_entry() that takes one explicit enctype instead of an array. And it does not neither salting of keys nor cleanup of old entries. Michael (This used to be commit c83e54f1eb3021d13fb0a3c3f6b556a338d2a8c3)
2008-08-01dssync keytab: log the DN of the object to be parsed.Michael Adam1-0/+2
For debugging purposes. Michael (This used to be commit 6913919e3a36ebff87a882ba589d36bcd0781ee6)
2008-08-01dssync keytab: remove old UpToDateNess vectors from keytab before storing ↵Michael Adam1-0/+19
new one. Michael (This used to be commit 717bd6f6c3ec94e3b8b5845c43717a5fbd41c38f)
2008-08-01libnet keytab: add function libnet_keytab_remove_entries().Michael Adam2-0/+95
This can be used to remove entries of given principal, kvno and enctype. Michael (This used to be commit a6f61c05b270c82f4bfce8a6850f81a09ad29087)
2008-08-01libnet_keytab: cleanup libnet_keytab_search().Michael Adam1-28/+27
Michael (This used to be commit 344428d96c9be87eae1d715a8b8fcd6ad02142f8)
2008-08-01libnet keytab: test for matching enctype in libnet_keytab_search().Michael Adam1-0/+5
Michael (This used to be commit 484b35f319178f360e406a1bc725dca2e9d95ee3)
2008-08-01dssync keytab: add parsing and logging of servicePrincipalName-sMichael Adam1-0/+22
As with the userPrincipalName, this is for debugging purposes only (for now..). Michael (This used to be commit 7a1d526cba4c93bb858a60d04b6486507fc25398)
2008-08-01dssync keytab: fix comma placement in debug outputMichael Adam1-2/+2
Michael (This used to be commit d21ea83f9392c8fa002d5b924dddca4190e82d09)