freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

acltoolkit:一款针对ACL的多功能安全工具
2023-08-10 16:25:18


关于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传送门

# ACL # 访问控制
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录