acltoolkit:一款针对ACL的多功能安全工具
本文由
创作,已纳入「FreeBuf原创奖励计划」,未授权禁止转载
关于acltoolkit
acltoolkit是一款针对ACL(访问控制列表)的多功能安全工具,该工具实现了多种针对ACL的滥用技术,可以帮助广大研究人员更好地研究ACL安全。
工具安装
由于该工具基于Python开发,因此我们首先需要在本地设备上安装并配置好Python环境。接下来,广大研究人员可以使用下列命令将该项目源码克隆至本地,并构建项目代码:
git clone https://github.com/zblurx/acltoolkit.git cd acltoolkit make
除此之外,我们也可以直接使用pip工具安装acltoolkit:
pip install acltoolkit-ad
工具使用
usage: acltoolkit [-h] [-debug] [-hashes LMHASH:NTHASH] [-no-pass] [-k] [-dc-ip ip address] [-scheme ldap scheme] target {get-objectacl,set-objectowner,give-genericall,give-dcsync,add-groupmember,set-logonscript} ... ACL abuse swiss-army knife positional arguments: target [[domain/]username[:password]@]<target name or address> {get-objectacl,set-objectowner,give-genericall,give-dcsync,add-groupmember,set-logonscript} Action get-objectacl 获取对象ACL set-objectowner 修改对象拥有者 give-genericall 在目标对象上授权对象GENERIC_ALL give-dcsync 在域上授予对象DCSync功能 add-groupmember 向组中添加成员 set-logonscript 修改用户登录脚本 options: -h, --help 显示工具帮助信息和退出 -debug 开启调试模式输出 -no-pass 不询问密码(适用于-k选项) -k 使用Kerberos验证,从ccache文件获取凭证信息。如果没有找到有效凭证,则需要在命令行参数中直接指定 -dc-ip ip address 目标域控制器的IP地址 -scheme ldap scheme authentication: -hashes LMHASH:NTHASH NTLM哈希,格式为LMHASH:NTHASH
命令使用
get-objectacl
$ acltoolkit get-objectacl -h usage: acltoolkit target get-objectacl [-h] [-object object] [-all] options: -h, --help 显示帮助信息和退出 -object object 转储对象ACL,参数可以是一个sAMAccountName、一个名称、一个DN或一个objectSid -all 枚举对象ACE
get-objectacl将使用一个sAMAccountName、一个名称、一个DN或一个objectSid作为-object的输入,并将列出它的Sid、name、DN、Class、adminCount、配置的LogonScript、PrimaryGroup、Owner和DACL。如果没有提供参数,则将列出有关用于身份验证的帐户的信息:
$ acltoolkit waza.local/jsmith:Password#123@192.168.56.112 get-objectacl Sid : S-1-5-21-267175082-2660600898-836655089-1103 Name : waza\John Smith DN : CN=John Smith,CN=Users,DC=waza,DC=local Class : top, person, organizationalPerson, user adminCount : False Logon Script scriptPath : \\WAZZAAAAAA\OCD\test.bat msTSInitialProgram: \\WAZZAAAAAA\OCD\test.bat PrimaryGroup Sid : S-1-5-21-267175082-2660600898-836655089-513 Name : waza\Domain Users DN : CN=Domain Users,OU=Builtin Groups,DC=waza,DC=local [...] OwnerGroup Sid : S-1-5-21-267175082-2660600898-836655089-512 Name : waza\Domain Admins Dacl ObjectSid : S-1-1-0 Name : Everyone AceType : ACCESS_ALLOWED_OBJECT_ACE AccessMask : 256 ADRights : EXTENDED_RIGHTS IsInherited : False ObjectAceType : User-Change-Password [...] ObjectSid : S-1-5-32-544 Name : BUILTIN\Administrator AceType : ACCESS_ALLOWED_ACE AccessMask : 983485 ADRights : WRITE_OWNER, WRITE_DACL, GENERIC_READ, DELETE, EXTENDED_RIGHTS, WRITE_PROPERTY, SELF, CREATE_CHILD IsInherited : True
set-objectowner
$ acltoolkit set-objectowner -h usage: acltoolkit target set-objectowner [-h] -target-sid target_sid [-owner-sid owner_sid] options: -h, --help 显示帮助信息和退出 -target-sid target_sid 设置目标对象SID -owner-sid owner_sid 新拥有者的SID
set-objectowner需要提供一个目标SID和拥有者SID,并修改目标对象的拥有者。
give-genericall
$ acltoolkit give-genericall -h usage: acltoolkit target give-genericall [-h] -target-sid target_sid [-granted-sid owner_sid] options: -h, --help 显示帮助信息和退出 -target-sid target_sid 设置目标对象SID -granted-sid owner_sid 对象SID授权GENERIC_ALL
give-dcsync
$ acltoolkit give-dcsync -h usage: acltoolkit target give-dcsync [-h] [-granted-sid owner_sid] options: -h, --help 显示帮助信息和退出 -granted-sid owner_sid 对象SID授权DCSync功能
add-groupmember
$ acltoolkit add-groupmember -h usage: acltoolkit target add-groupmember [-h] [-user user] -group group options: -h, --help 显示帮助信息和退出 -user user 向一个组添加用户 -group group 要添加用户的目标组
set-logonscript
$ acltoolkit set-logonscript -h usage: acltoolkit target set-logonscript [-h] -target-sid target_sid -script-path script_path [-logonscript-type logonscript_type] options: -h, --help 显示帮助信息和退出 -target-sid target_sid 目标用户的对象SID -script-path script_path 针对目标用户设置脚本路径 -logonscript-type logonscript_type 要修改的登录脚本变量(默认为scriptPath)
许可证协议
本项目的开发与发布遵循MIT开源许可证协议。
项目地址
acltoolkit:【GitHub传送门】
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
文章目录