1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-07 17:18:11 +03:00
Commit Graph

253 Commits

Author SHA1 Message Date
Andreas Schneider
a3852bc0b9 krb5_wrap: Remove unneded smb_krb5_free_error()
krb5_free_error() is availalbe in MIT and Heimdal. Both implementations
free the contents and the pointer. krb5_free_data_contents() is Heimdal
only. Which function you need to call depends.

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2016-08-31 20:59:14 +02:00
Uri Simchoni
b2b951d14f heimdal make kvno unisgned internally
The folks at heimdal didn't like the patch in
commit 6379737b7d and insisted
that kvno should remain unsigned internally, even though it is
encoded as signed in packets. This patch reverts some of the
unsigned->signed changes in that commit, and resolves conversion
issues - in order to be aligned with upstream Heimdal.

Signed-off-by: Uri Simchoni <uri@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>

Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Tue May 24 03:00:39 CEST 2016 on sn-devel-144
2016-05-24 03:00:39 +02:00
Uri Simchoni
6379737b7d heimdal: encode/decode kvno as signed integer
This patch changes the encoding/decoding of kvno (key version number)
in blobs and packets to signed integer, for compatibility with Windows.
Reportedly, MIT Kerberos does the same.

This patch effectively reverts commit 1124c4872dfb81bec9c4b527b8927ca35e39a599
in the heimdal tree.

According to the Kerberos spec (RFC 4120 5.2.9), the kvno field
in encrypted data object is an unsigned integer that fits in
32 bits. The Heimdal Kerberos component bundled with Samba
conforms to this. However, Windows deviates from the standard
and encodes kvno as a signed integer, and this creates
interoperability issues.

ASN.1 DER has no special encoding for unsigned integer. A 32-bit
unsigned integer is encoded as a signed integer, so while a signed
32-bit integer (covering the range of -0x80000000..0x7fffffff) is
encoded using up to 4 bytes, an unsigned integer (covering
0..0xffffffff) could require 5 bytes.

Normally, kvno for a given account starts at 1 and increments on
password changes. Kerberos defined this as unsigned because there's
no meaning for negative version numbers, so the standard writers figured
4 billion versions is better than 2 billion. It was not
expected for a kvno to really go past 0x7fffffff and the disctinction
usually does not matter. However, RODCs use kvnos which
have the most-significant bit set.

In Active Directory, RODCs have a private secret for the krbtgt,
because the assumption is that the RODC is less secure, and
recovering the domain krbtgt secret from the RODC would compromise
the security of the entire domain. The kvno field is being used
to identify the private krbtgt account that owns the key - the
upper 16 bits are the RODC id, and the lower 16 bits identify
the key version number for this specific RODC. It's common to
have an RODC id greater than 0x8000, and therefore to have a
kvno larger than 0x7fffffff, which would be DER-encoded using
5 bytes.

Windows encodes kvno as signed integer - basically taking the
32 bits and treating them as a signed integer rather than an
unsigned integer. This means that in Windows a kvno can
always be encoded using 4 bytes, and Windows DCs reject a kvno
encoded using more than 4 bytes without even generating an error
response (the DC assumes it's an attack).

Heimdal re-encodes the TGT when it creates a TGS request. Obviously
it cannot decode and encode the encrypted parts but it does re-encode
the plain parts, which include the kvno. That leads to a 5-byte
kvno in the TGS request, which is rejected without an error
response.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=11900

Signed-off-by: Uri Simchoni <uri@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>

Autobuild-User(master): Ralph Böhme <slow@samba.org>
Autobuild-Date(master): Sat May  7 21:14:21 CEST 2016 on sn-devel-144
2016-05-07 21:14:21 +02:00
Stefan Metzmacher
1a7d8b8602 s4:torture/netlogon: add/use test_SetupCredentialsPipe() helper function
This create a schannel connection to netlogon, this makes the tests
more realistic.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Günther Deschner <gd@samba.org>
2016-03-17 17:17:16 +01:00
Stefan Metzmacher
4335371323 s4:torture/lsa: improve debug message
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Günther Deschner <gd@samba.org>
2016-03-13 20:10:33 +01:00
Michael Adam
fcb1ca8654 torture: fix check_pw_with_krb5 in the rpc:lsa test
Don't use AI_NUMERICHOST for getaddrinfo.
This is so that a host*NAME* handed in will get properly resolved.
Bug uncovered by the new nss_wrapper code (1.1.2)  which fixed
the handling of the AI_NUMERICHOST flag in getaddrinfo.

Signed-off-by: Michael Adam <obnox@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
2016-01-11 12:25:26 +01:00
Michael Adam
688590f07f torture: fix check_dom_trust_pw in the rpc:lsa test
This makes sure a host*NAME* handed in will get properly resolved.
Bug uncovered by the new nss_wrapper code (1.1.2) which fixed
the handling of the AI_NUMERICHOST flag in getaddrinfo.

Signed-off-by: Michael Adam <obnox@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
2016-01-11 12:25:26 +01:00
Andrew Bartlett
56dd83b9f6 torture: Add better debug message when tsocket_address_inet_from_strings fails
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
2015-10-20 20:22:22 +02:00
Günther Deschner
2443c34c91 s4-torture: don't build the lsa forest trust krb5 tests when building with MIT Kerberos.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=11411

Guenther

Signed-off-by: Günther Deschner <gd@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
2015-07-24 13:39:31 +02:00
Günther Deschner
ff3b446175 s4-torture: use smb_krb5_principal_set_type() in lsa forest krb5 tests.
Guenther

Signed-off-by: Günther Deschner <gd@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>

Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date(master): Tue Jul 14 19:15:59 CEST 2015 on sn-devel-104
2015-07-14 19:15:58 +02:00
Günther Deschner
a1c9415769 s4-torture: use krb5_error in lsa forest trust tests.
Guenther

Signed-off-by: Günther Deschner <gd@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
2015-07-14 16:11:18 +02:00
Günther Deschner
da3f41219d s4-torture: use smb_krb5_free_error() in lsa forest krb5 tests.
Guenther

Signed-off-by: Günther Deschner <gd@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
2015-07-14 16:11:18 +02:00
Günther Deschner
54ec74b3b2 s4-torture: use smb_krb5_principal_get_type in lsa forest krb5 tests.
Guenther

Signed-off-by: Günther Deschner <gd@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
2015-07-14 16:11:18 +02:00
Günther Deschner
4e69ff6bdd s4-torture: use smb_krb5_make_principal() in lsa forest krb5 tests.
Guenther

Signed-off-by: Günther Deschner <gd@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
2015-07-14 16:11:18 +02:00
Stefan Metzmacher
7447abc44c s4:torture/rpc: extend and improve rpc.lsa.trusted.domains
This adds a lot more validation arround trust credentials and
krb5 interaction.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>

Autobuild-User(master): Stefan Metzmacher <metze@samba.org>
Autobuild-Date(master): Wed Jul  8 21:41:17 CEST 2015 on sn-devel-104
2015-07-08 21:41:17 +02:00
Stefan Metzmacher
d9d670713b s4:torture/rpc: add missing \n in comments
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2015-07-08 18:38:22 +02:00
Stefan Metzmacher
84b0d1f967 s4:torture/rpc: handle NT_STATUS_NO_SUCH_DOMAIN in test_query_each_TrustDom()
lsa_EnumTrusts() may also return non direct trusted domains in the forest.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2015-07-08 18:38:22 +02:00
Andrew Bartlett
2ec4a626b7 torture: Run lsa.trusted.domains auth tests against samba4
We only need to skip th CreateTrustedDomainEx, which the docs strongly suggested not to use
in any case.

Andrew Bartlett

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
2015-03-27 01:26:15 +01:00
Andrew Bartlett
f13f75f7f0 torture-lsa: Allow rpc.lsa.trusted.domains to run successfully
We need to create a new binding, as the old binding has the wrong pipe in it (lsa, not netlogon).

Otherwise, we try to bind using the LSA UUID on the netlogon pipe, and Samba rejects that

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
2015-03-27 01:26:15 +01:00
Stefan Metzmacher
281969ddb2 s4:torture/rpc: fix test_EnumTrustDomEx() with existing domains
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
2015-03-27 01:26:15 +01:00
Stefan Metzmacher
08f91a1f29 s4:torture/rpc: use unique sids and names for trusted domains
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
2015-03-27 01:26:15 +01:00
Stefan Metzmacher
698b69e702 s4:torture/rpc: avoid compiler warnings
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
2015-03-20 20:43:13 +01:00
Stefan Metzmacher
cdf6373c3b lsa.idl: fix idl for lsa_ForestTrustRecordType
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
2015-03-12 17:13:44 +01:00
Volker Lendecke
a99a5a34a5 Fix the developer O3 build
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Alexander Bokovoy <ab@samba.org>

Autobuild-User(master): Alexander Bokovoy <ab@samba.org>
Autobuild-Date(master): Wed Feb 25 16:32:29 CET 2015 on sn-devel-104
2015-02-25 16:32:29 +01:00
Andrew Bartlett
a3ecad4237 idl: Merge NETR_TRUST and LSA_TRUST definitions into one set only in lsa.idl
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
2014-09-27 01:35:36 +02:00
Stefan Metzmacher
1d819eda5c s4:torture/rpc: make use of dcerpc_binding_handle_auth_info() in lsa.c
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2014-03-25 00:45:29 +01:00
Stefan Metzmacher
451d7039fe s4:torture/rpc: make use of dcerpc_binding_[g|s]et_transport()
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
2014-02-13 11:54:17 +01:00
Günther Deschner
a9d5b2fdf0 libcli/auth: also set secure channel type in netlogon_creds_client_init().
Signed-off-by: Günther Deschner <gd@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
2013-08-05 10:30:00 +02:00
Stefan Metzmacher
9837fd8cc6 s4:tortore/rpc/lsa: make more use of torture_assert*
Currently samba3.rpc.lsa.privileges.lsa.Privileges(s3dc)
seems to be flakey.

We may be able to find the bug with this,
or at least mark it as flapping.

metze
2012-10-03 16:26:52 +02:00
Andrew Bartlett
0991aed60c torture: More torture_assert() calls in rpc.lsa
Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Mon Sep 24 05:27:46 CEST 2012 on sn-devel-104
2012-09-24 05:27:46 +02:00
Andrew Bartlett
a807a63f3d torture: use torture_assert rather than return false in rpc.lsa
This will help ensure we always generate correct subunit failures.

Andrew Bartlett
2012-09-24 03:51:07 +02:00
Andrew Bartlett
f0908c1dc6 torture: tidy up rpc.lsa OpenPolicy2 test to more clearly use torture_fail() 2012-09-24 03:51:07 +02:00
Andreas Schneider
a070ce3555 s4-torture: Don't consider NONE_MAPPED an error in LookupSids3. 2012-07-06 10:00:57 +02:00
Andreas Schneider
2a46c7fff2 s4-torture: Don't consider NONE_MAPPED an error in LookupNames4. 2012-07-06 10:00:57 +02:00
Andreas Schneider
eeba5ad9fa s4-torture: Add a lsarpc test_GetUserName_fail function. 2012-07-06 10:00:57 +02:00
Andreas Schneider
5dc5cdaa6c s4-torture: Add a lsarpc test_OpenPolicy2_fail function. 2012-07-06 10:00:57 +02:00
Andreas Schneider
39a13d1981 s4-torture: Add a lsarpc test_OpenPolicy_fail function. 2012-07-06 10:00:57 +02:00
Andreas Schneider
4ece074f25 s4-torture: Add a lsarpc test_LookupNames4_fail function. 2012-07-06 10:00:57 +02:00
Andreas Schneider
ed7be198c4 s4-torture: Add a lsarpc test_LookupSids3_fail function. 2012-07-06 10:00:57 +02:00
Andreas Schneider
47e5a8c2b3 s4-torture: Test LookupSids3/LookupNames4 over np and tcpip. 2012-07-06 10:00:56 +02:00
Andreas Schneider
1c46bffb11 s4-torture: Make sure lsa_OpenPolicy2 fails over TCP/IP. 2012-07-06 10:00:56 +02:00
Andreas Schneider
8bc4d7a3e6 s4-torture: Make sure lsa_OpenPolicy fails over TCP/IP. 2012-07-06 10:00:56 +02:00
Andreas Schneider
22da7106b3 s4-torture: Make sure ncacn_np tests are only called over the a pipe. 2012-07-06 10:00:56 +02:00
Andreas Schneider
00171a549a s4-torture: Test LookupSids3 and LookupNames4 only over tcpip.
LookupSids3 and LookupNames4 are only available over tcpip and MUST
fail over named pipes.
2012-07-06 10:00:56 +02:00
Andreas Schneider
682277b44c s4-torture: Use test_LookupSids3 function. 2012-07-06 10:00:56 +02:00
Andreas Schneider
1000884bb3 s4-torture: Fix build warnings in lsa test. 2012-07-06 10:00:56 +02:00
Andreas Schneider
be288b0c82 s4-torture: LookupSids3 is only available over NCACN_IP_TCP.
Autobuild-User: Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date: Wed Dec 14 15:39:58 CET 2011 on sn-devel-104
2011-12-14 15:39:58 +01:00
Günther Deschner
d292bc0710 s4-smbtorture: For now, skip trusted domain auth validation tests against the sambas.
Guenther
2011-08-31 12:55:42 +02:00
Sumit Bose
247851d6be s4-smbtorture: Add trust password to CreateTrust test
Instead of using empty authinfo and authinfo_internal structures a trust
password is added to these structures. After creating the trust the trust
account is used to validate that the trust password is set correctly.

Signed-off-by: Günther Deschner <gd@samba.org>
2011-08-31 12:55:23 +02:00
Simo Sorce
b120c5f288 torture: use tevent_ functions names instead of the legacy event_ ones 2011-08-13 09:54:15 -04:00