BloodyAD:一款功能强大的活动目录提权框架

0收藏

0点赞

浏览量:337

2022-02-25

举报


关于BloodyAD
BloodyAD是一款功能强大的活动目录提权框架,该框架可以通过bloodyAD.py实现手动操作,或通过结合pathgen.py和autobloody.py来实现自动化提权以及活动目录安全检测任务。

该框架支持NTLM(使用密码或NTLM哈希)和Kerberos身份验证,并绑定到域控制器的LDAP/LDAPS/SAMR服务以获得活动目录权限。

除此之外,广大研究人员还可以将BloodyAD结合SOCKS代理一起使用。

该工具可以对域控制器执行特定的LDAP/SAMR调用,以获取和执行活动目录权限。

工具要求
该工具的正常运行需要使用到下列几个组件:

Python 3

DSinternals

Impacket

Ldap3

我们可以在自己的虚拟环境中使用下列命令来安装该工具所需的依赖组件:

pip3 install -r requirements.txt
工具使用
简单使用
python bloodyAD.py --host 172.16.1.15 -d MYDOM -u myuser -p :70016778cb0524c799ac25b439bd6a31 changePassword mytarget 'Password123!'
可用的功能函数列表
[bloodyAD]$ python bloodyAD.py -h

usage: bloodyAD.py [-h] [-d DOMAIN] [-u USERNAME] [-p PASSWORD] [-k] [-s {ldap,ldaps,rpc}] [--host HOST]

{getObjectAttributes,setAttribute,addUser,addComputer,delObject,changePassword,addObjectToGroup,

addForeignObjectToGroup,delObjectFromGroup,getChildObjects,setShadowCredentials,setGenericAll,setOwner,

setRbcd,setDCSync,setUserAccountControl}

...



Active Directory Privilege Escalation Framework



Main options:

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

-d DOMAIN, --domain DOMAIN

用于NTLM认证的域

-u USERNAME, --username USERNAME

用于NTLM认证的用户名

-p PASSWORD, --password PASSWORD

NTLM认证的明文密码或LMHASH:NTHASH

-k, --kerberos

-s {ldap,ldaps,rpc}, --scheme {ldap,ldaps,rpc}

通过TLS使用LDAPUse (默认为LDAP)

--host HOST DC的主机名或IP地址 (例如: my.dc.local or 172.16.1.3)



Command:

{getObjectAttributes,setAttribute,addUser,addComputer,delObject,changePassword,addObjectToGroup,

addForeignObjectToGroup,delObjectFromGroup,getChildObjects,setShadowCredentials,setGenericAll,setOwner,

setRbcd,setDCSync,setUserAccountControl} Function to call
针对特定函数的使用帮助信息
[bloodyAD]$ python bloodyAD.py --host 172.16.1.15 -d MYDOM -u myuser -p :70016778cb0524c799ac25b439bd6a31 changePassword -h

usage:

Change the target password without knowing the old one using LDAPS or RPC

Args:

identity: sAMAccountName, DN, GUID or SID of the target (You must have write permission on it)

new_pass: new password for the target



[-h] [func_args ...]



positional arguments:

func_args



optional arguments:

-h, --help show this help message and exit
工具使用样例
获取组成员:

python bloodyAD.py -u john.doe -d bloody -p Password512! --host 192.168.10.2 getObjectAttributes Users member
获取最小密码长度策略:

python bloodyAD.py -u john.doe -d bloody -p Password512! --host 192.168.10.2 getObjectAttributes 'DC=bloody,DC=local' minPwdLength
获取AD功能性等级:

python bloodyAD.py -u Administrator -d bloody -p Password512! --host 192.168.10.2 getObjectAttributes 'DC=bloody,DC=local' msDS-Behavior-Version
获取目标域的所有用户:

python bloodyAD.py -u john.doe -d bloody -p Password512! --host 192.168.10.2 getChildObjects 'DC=bloody,DC=local' user
获取目标域的所有计算机:

python bloodyAD.py -u john.doe -d bloody -p Password512! --host 192.168.10.2 getChildObjects 'DC=bloody,DC=local' computer
获取目标域的所有容器:

python bloodyAD.py -u john.doe -d bloody -p Password512! --host 192.168.10.2 getChildObjects 'DC=bloody,DC=local' container
为ASREPRoast启用DONT_REQ_PREAUTH:

python bloodyAD.py -u Administrator -d bloody -p Password512! --host 192.168.10.2 setUserAccountControl john.doe 0x400000
禁用ACCOUNTDISABLE:

python bloodyAD.py -u Administrator -d bloody -p Password512! --host 192.168.10.2 setUserAccountControl john.doe 0x0002 False
获取UserAccountControl标记:

python bloodyAD.py -u Administrator -d bloody -p Password512! --host 192.168.10.2 getObjectAttributes john.doe userAccountControl
获取GMSA账号密码:

python bloodyAD.py -u john.doe -d bloody -p Password512 --host 192.168.10.2 -s ldaps getObjectAttributes gmsaAccount$ msDS-ManagedPassword
autobloody
该工具可以实现两个AD对象之间的自动化AD权限,整个自动化过程分为两个部分:

pathgen.py:使用bloodhound数据和neo4j查询来搜索提权的最优路径;

autobloody.py:执行pathgen.py寻找到最优路径;

依赖组件
Python 3

DSinternals

Impacket

Ldap3

BloodHound

Neo4j Python驱动

Neo4j(GDS库)

简单使用
pathgen.py -dp neo4jPass -ds 'OWNED_USER@ATTACK.LOCAL' -dt 'TARGET_USER@ATTACK.LOCAL' && autobloody.py -d ATTACK -u 'owned_user' -p 'owned_user_pass' --host 172.16.1.15


BloodyAD:GitHub传送门



(来源:freebuf)

(原文链接:https://www.freebuf.com/articles/network/321647.html

发表评论

点击排行

钓鱼邮件-如何快速成为钓鱼达人

一、前言在大型企业边界安全做的越来越好的情况下,不管是 APT 攻击还是红蓝对抗演练,钓鱼邮件攻击使用的...

【渗透实战系列】| 1 -一次对跨境赌博类APP的渗透实战(getshell并获得全部数据)

本次渗透实战主要知识点:1.app抓包,寻找后台地址2.上传绕过,上传shell3.回shell地址的分析4.中国蚁剑工...

HTTPS - 如何抓包并破解 HTTPS 加密数据?

HTTPS 在握手过程中,密钥规格变更协议发送之后所有的数据都已经加密了,有些细节也就看不到了,如果常规的...

无线电安全攻防之GPS定位劫持

一、需要硬件设备HackRFHackRF 连接数据线外部时钟模块(TCXO 时钟模块)天线(淘宝套餐中的 700MHz-2700MH...

记一次Fastadmin后台getshell的渗透记录

1.信息搜集先来看看目标站点的各种信息后端PHP,前端使用layui,路由URL规则看起来像ThinkPHP,那自然想到...

华为防火墙实战配置教程,太全了

防火墙是位于内部网和外部网之间的屏障,它按照系统管理员预先定义好的规则来控制数据包的进出。防火墙是系...

ADCS系列之ESC1、ESC8复现

对原理感兴趣的可以去https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf看原文,这里只...

【干货分享】利用MSF上线断网主机的思路分享

潇湘信安 Author 3had0w潇湘信安一个不会编程、挖SRC、代码审计的安全爱好者,主要分享一些安全经验、...

扫描二维码下载APP