acltoolkit:一款针对ACL的多功能安全工具

2023-09-18 19:55:45 浏览数 (2)

关于acltoolkit

acltoolkit是一款针对ACL(访问控制列表)的多功能安全工具,该工具实现了多种针对ACL的滥用技术,可以帮助广大研究人员更好地研究ACL安全。

工具安装

由于该工具基于Python开发,因此我们首先需要在本地设备上安装并配置好Python环境。接下来,广大研究人员可以使用下列命令将该项目源码克隆至本地,并构建项目代码:

代码语言:javascript复制
git clone https://github.com/zblurx/acltoolkit.git

cd acltoolkit

make

除此之外,我们也可以直接使用pip工具安装acltoolkit:

代码语言:javascript复制
pip install acltoolkit-ad

工具使用

代码语言:javascript复制
代码语言:javascript复制
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

代码语言:javascript复制


$ 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。如果没有提供参数,则将列出有关用于身份验证的帐户的信息:

代码语言:javascript复制


$ acltoolkit waza.local/jsmith:Password#123@192.168.56.112 get-objectacl

Sid                 : S-1-5-21-267175082-2660600898-836655089-1103

Name                : wazaJohn Smith

DN                  : CN=John Smith,CN=Users,DC=waza,DC=local

Class               : top, person, organizationalPerson, user

adminCount          : False

 

Logon Script

  scriptPath        : \WAZZAAAAAAOCDtest.bat

  msTSInitialProgram: \WAZZAAAAAAOCDtest.bat

 

PrimaryGroup

  Sid               : S-1-5-21-267175082-2660600898-836655089-513

  Name              : wazaDomain Users

  DN                : CN=Domain Users,OU=Builtin Groups,DC=waza,DC=local

 

[...]

 

OwnerGroup

  Sid               : S-1-5-21-267175082-2660600898-836655089-512

  Name              : wazaDomain 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              : BUILTINAdministrator

  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

代码语言:javascript复制


$ 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

代码语言:javascript复制


$ 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

代码语言:javascript复制


$ 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

代码语言:javascript复制


$ acltoolkit add-groupmember -h

usage: acltoolkit target add-groupmember [-h] [-user user] -group group

 

options:

  -h, --help    显示帮助信息和退出

  -user user    向一个组添加用户

  -group group  要添加用户的目标组

set-logonscript

代码语言:javascript复制
代码语言:javascript复制
$ 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:https://github.com/zblurx/acltoolkit

0 人点赞