Linux anchor 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64
Apache/2.4.18 (Ubuntu)
Server IP : 10.10.100.4 & Your IP : 216.73.217.150
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
lib /
python2.7 /
dist-packages /
samba /
netcmd /
Delete
Unzip
Name
Size
Permission
Date
Action
__init__.py
7.78
KB
-rw-r--r--
2015-07-21 11:47
__init__.pyc
8.27
KB
-rw-r--r--
2021-05-01 07:33
common.py
2.38
KB
-rw-r--r--
2015-07-21 11:47
common.pyc
2.28
KB
-rw-r--r--
2021-05-01 07:33
dbcheck.py
5.76
KB
-rw-r--r--
2015-07-21 11:47
dbcheck.pyc
4.56
KB
-rw-r--r--
2021-05-01 07:33
delegation.py
10.88
KB
-rw-r--r--
2015-07-21 11:47
delegation.pyc
9.22
KB
-rw-r--r--
2021-05-01 07:33
dns.py
47.6
KB
-rw-r--r--
2015-07-21 11:47
dns.pyc
42.92
KB
-rw-r--r--
2021-05-01 07:33
domain.py
168.08
KB
-rw-r--r--
2016-02-22 10:36
domain.pyc
103.79
KB
-rw-r--r--
2021-05-01 07:33
drs.py
21.21
KB
-rw-r--r--
2015-07-21 11:47
drs.pyc
19.73
KB
-rw-r--r--
2021-05-01 07:33
dsacl.py
7.37
KB
-rw-r--r--
2015-07-21 11:47
dsacl.pyc
6.67
KB
-rw-r--r--
2021-05-01 07:33
fsmo.py
19.43
KB
-rw-r--r--
2016-06-14 09:37
fsmo.pyc
14.09
KB
-rw-r--r--
2021-05-01 07:33
gpo.py
39.7
KB
-rw-r--r--
2015-07-21 11:47
gpo.pyc
33.57
KB
-rw-r--r--
2021-05-01 07:33
group.py
17.99
KB
-rw-r--r--
2015-07-21 11:47
group.pyc
16.38
KB
-rw-r--r--
2021-05-01 07:33
ldapcmp.py
40.44
KB
-rw-r--r--
2015-07-21 11:47
ldapcmp.pyc
31.27
KB
-rw-r--r--
2021-05-01 07:33
main.py
2.53
KB
-rw-r--r--
2015-07-21 11:47
main.pyc
2.46
KB
-rw-r--r--
2021-05-01 07:33
ntacl.py
9.92
KB
-rw-r--r--
2015-07-21 11:47
ntacl.pyc
8.89
KB
-rw-r--r--
2021-05-01 07:33
processes.py
2.71
KB
-rw-r--r--
2015-07-21 11:47
processes.pyc
2.03
KB
-rw-r--r--
2021-05-01 07:33
rodc.py
3.97
KB
-rw-r--r--
2015-07-21 11:47
rodc.pyc
3.6
KB
-rw-r--r--
2021-05-01 07:33
sites.py
3.35
KB
-rw-r--r--
2015-07-21 11:47
sites.pyc
3.34
KB
-rw-r--r--
2021-05-01 07:33
spn.py
7.42
KB
-rw-r--r--
2015-07-21 11:47
spn.pyc
6.08
KB
-rw-r--r--
2021-05-01 07:33
testparm.py
8.34
KB
-rw-r--r--
2015-07-21 11:47
testparm.pyc
6.2
KB
-rw-r--r--
2021-05-01 07:33
time.py
1.96
KB
-rw-r--r--
2015-07-21 11:47
time.pyc
1.8
KB
-rw-r--r--
2021-05-01 07:33
user.py
29.61
KB
-rw-r--r--
2021-04-14 17:48
user.pyc
27.37
KB
-rw-r--r--
2021-05-01 07:33
vampire.py
1.9
KB
-rw-r--r--
2015-07-21 11:47
vampire.pyc
1.78
KB
-rw-r--r--
2021-05-01 07:33
Save
Rename
# delegation management # # Copyright Matthieu Patou mat@samba.org 2010 # Copyright Stefan Metzmacher metze@samba.org 2011 # Copyright Bjoern Baumbach bb@sernet.de 2011 # # 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 3 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, see <http://www.gnu.org/licenses/>. # import samba.getopt as options import ldb from samba import provision from samba import dsdb from samba.samdb import SamDB from samba.auth import system_session from samba.netcmd.common import _get_user_realm_domain from samba.netcmd import ( Command, CommandError, SuperCommand, Option ) class cmd_delegation_show(Command): """Show the delegation setting of an account.""" synopsis = "%prog <accountname> [options]" takes_optiongroups = { "sambaopts": options.SambaOptions, "credopts": options.CredentialsOptions, "versionopts": options.VersionOptions, } takes_options = [ Option("-H", "--URL", help="LDB URL for database or target server", type=str, metavar="URL", dest="H"), ] takes_args = ["accountname"] def run(self, accountname, H=None, credopts=None, sambaopts=None, versionopts=None): lp = sambaopts.get_loadparm() creds = credopts.get_credentials(lp) paths = provision.provision_paths_from_lp(lp, lp.get("realm")) if H == None: path = paths.samdb else: path = H sam = SamDB(path, session_info=system_session(), credentials=creds, lp=lp) # TODO once I understand how, use the domain info to naildown # to the correct domain (cleanedaccount, realm, domain) = _get_user_realm_domain(accountname) res = sam.search(expression="sAMAccountName=%s" % ldb.binary_encode(cleanedaccount), scope=ldb.SCOPE_SUBTREE, attrs=["userAccountControl", "msDS-AllowedToDelegateTo"]) if len(res) == 0: raise CommandError("Unable to find account name '%s'" % accountname) assert(len(res) == 1) uac = int(res[0].get("userAccountControl")[0]) allowed = res[0].get("msDS-AllowedToDelegateTo") self.outf.write("Account-DN: %s\n" % str(res[0].dn)) self.outf.write("UF_TRUSTED_FOR_DELEGATION: %s\n" % bool(uac & dsdb.UF_TRUSTED_FOR_DELEGATION)) self.outf.write("UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION: %s\n" % bool(uac & dsdb.UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION)) if allowed is not None: for a in allowed: self.outf.write("msDS-AllowedToDelegateTo: %s\n" % a) class cmd_delegation_for_any_service(Command): """Set/unset UF_TRUSTED_FOR_DELEGATION for an account.""" synopsis = "%prog <accountname> [(on|off)] [options]" takes_optiongroups = { "sambaopts": options.SambaOptions, "credopts": options.CredentialsOptions, "versionopts": options.VersionOptions, } takes_options = [ Option("-H", "--URL", help="LDB URL for database or target server", type=str, metavar="URL", dest="H"), ] takes_args = ["accountname", "onoff"] def run(self, accountname, onoff, H=None, credopts=None, sambaopts=None, versionopts=None): on = False if onoff == "on": on = True elif onoff == "off": on = False else: raise CommandError("invalid argument: '%s' (choose from 'on', 'off')" % onoff) lp = sambaopts.get_loadparm() creds = credopts.get_credentials(lp) paths = provision.provision_paths_from_lp(lp, lp.get("realm")) if H == None: path = paths.samdb else: path = H sam = SamDB(path, session_info=system_session(), credentials=creds, lp=lp) # TODO once I understand how, use the domain info to naildown # to the correct domain (cleanedaccount, realm, domain) = _get_user_realm_domain(accountname) search_filter = "sAMAccountName=%s" % ldb.binary_encode(cleanedaccount) flag = dsdb.UF_TRUSTED_FOR_DELEGATION try: sam.toggle_userAccountFlags(search_filter, flag, flags_str="Trusted-for-Delegation", on=on, strict=True) except Exception, err: raise CommandError(err) class cmd_delegation_for_any_protocol(Command): """Set/unset UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION (S4U2Proxy) for an account.""" synopsis = "%prog <accountname> [(on|off)] [options]" takes_optiongroups = { "sambaopts": options.SambaOptions, "credopts": options.CredentialsOptions, "versionopts": options.VersionOptions, } takes_options = [ Option("-H", "--URL", help="LDB URL for database or target server", type=str, metavar="URL", dest="H"), ] takes_args = ["accountname", "onoff"] def run(self, accountname, onoff, H=None, credopts=None, sambaopts=None, versionopts=None): on = False if onoff == "on": on = True elif onoff == "off": on = False else: raise CommandError("invalid argument: '%s' (choose from 'on', 'off')" % onoff) lp = sambaopts.get_loadparm() creds = credopts.get_credentials(lp, fallback_machine=True) paths = provision.provision_paths_from_lp(lp, lp.get("realm")) if H == None: path = paths.samdb else: path = H sam = SamDB(path, session_info=system_session(), credentials=creds, lp=lp) # TODO once I understand how, use the domain info to naildown # to the correct domain (cleanedaccount, realm, domain) = _get_user_realm_domain(accountname) search_filter = "sAMAccountName=%s" % ldb.binary_encode(cleanedaccount) flag = dsdb.UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION try: sam.toggle_userAccountFlags(search_filter, flag, flags_str="Trusted-to-Authenticate-for-Delegation", on=on, strict=True) except Exception, err: raise CommandError(err) class cmd_delegation_add_service(Command): """Add a service principal as msDS-AllowedToDelegateTo.""" synopsis = "%prog <accountname> <principal> [options]" takes_optiongroups = { "sambaopts": options.SambaOptions, "credopts": options.CredentialsOptions, "versionopts": options.VersionOptions, } takes_options = [ Option("-H", "--URL", help="LDB URL for database or target server", type=str, metavar="URL", dest="H"), ] takes_args = ["accountname", "principal"] def run(self, accountname, principal, H=None, credopts=None, sambaopts=None, versionopts=None): lp = sambaopts.get_loadparm() creds = credopts.get_credentials(lp) paths = provision.provision_paths_from_lp(lp, lp.get("realm")) if H == None: path = paths.samdb else: path = H sam = SamDB(path, session_info=system_session(), credentials=creds, lp=lp) # TODO once I understand how, use the domain info to naildown # to the correct domain (cleanedaccount, realm, domain) = _get_user_realm_domain(accountname) res = sam.search(expression="sAMAccountName=%s" % ldb.binary_encode(cleanedaccount), scope=ldb.SCOPE_SUBTREE, attrs=["msDS-AllowedToDelegateTo"]) if len(res) == 0: raise CommandError("Unable to find account name '%s'" % accountname) assert(len(res) == 1) msg = ldb.Message() msg.dn = res[0].dn msg["msDS-AllowedToDelegateTo"] = ldb.MessageElement([principal], ldb.FLAG_MOD_ADD, "msDS-AllowedToDelegateTo") try: sam.modify(msg) except Exception, err: raise CommandError(err) class cmd_delegation_del_service(Command): """Delete a service principal as msDS-AllowedToDelegateTo.""" synopsis = "%prog <accountname> <principal> [options]" takes_optiongroups = { "sambaopts": options.SambaOptions, "credopts": options.CredentialsOptions, "versionopts": options.VersionOptions, } takes_options = [ Option("-H", "--URL", help="LDB URL for database or target server", type=str, metavar="URL", dest="H"), ] takes_args = ["accountname", "principal"] def run(self, accountname, principal, H=None, credopts=None, sambaopts=None, versionopts=None): lp = sambaopts.get_loadparm() creds = credopts.get_credentials(lp) paths = provision.provision_paths_from_lp(lp, lp.get("realm")) if H == None: path = paths.samdb else: path = H sam = SamDB(path, session_info=system_session(), credentials=creds, lp=lp) # TODO once I understand how, use the domain info to naildown # to the correct domain (cleanedaccount, realm, domain) = _get_user_realm_domain(accountname) res = sam.search(expression="sAMAccountName=%s" % ldb.binary_encode(cleanedaccount), scope=ldb.SCOPE_SUBTREE, attrs=["msDS-AllowedToDelegateTo"]) if len(res) == 0: raise CommandError("Unable to find account name '%s'" % accountname) assert(len(res) == 1) msg = ldb.Message() msg.dn = res[0].dn msg["msDS-AllowedToDelegateTo"] = ldb.MessageElement([principal], ldb.FLAG_MOD_DELETE, "msDS-AllowedToDelegateTo") try: sam.modify(msg) except Exception, err: raise CommandError(err) class cmd_delegation(SuperCommand): """Delegation management.""" subcommands = {} subcommands["show"] = cmd_delegation_show() subcommands["for-any-service"] = cmd_delegation_for_any_service() subcommands["for-any-protocol"] = cmd_delegation_for_any_protocol() subcommands["add-service"] = cmd_delegation_add_service() subcommands["del-service"] = cmd_delegation_del_service()