htb Sauna复盘
FLow

继续记录学习📑

参考链接

官方wp

http://111.229.75.150/2023/10/11/htb%E9%9D%B6%E5%9C%BA%E7%B3%BB%E5%88%97-sauna%E5%86%85%E7%BD%91%E6%89%AB%E7%9B%B2%E7%AF%87/

https://m.freebuf.com/articles/network/286137.html

https://blog.csdn.net/qq_34801745/article/details/108136791

靶机信息

地址:https://app.hackthebox.com/machines/Sauna

难度:easy

ip:10.10.10.175

信息搜集

先扫端口

1
nmap  -p- --min-rate=1000 -T4 -A 10.10.10.175

扫出来有很多个端口,有kerberos+ldap等,大概率是域控,域名:EGOTISTICAL-BANK.LOCAL0.

smb
1
smbclient -L \\\\10.10.10.175 -N

尝试smb匿名登陆,没发现什么东西

ldap枚举

对于389的ladp服务,存在一个匿名绑定功能,通过这个功能可以不通过身份认证查询用户、组和计算机信息,我们尝试使用windapsearch看看能不能利用成功

没有什么收获

web端

80端口有开放,可以访问到网页,提示是说有个about.html,里面有很多人名

收集起来建一个user.txt,然后用username-anarchy生成一个字典

1
./username-anarchy --input-file user.txt --select-format first,flast,first.last,firstl > unames.txt

立足点

用字典可以查看是否有用户不需要经过Kerberos预身份验证。如果存在那么我们就可以得到其密码hash

Kerberos 预⾝份验证是⼀项安全功能,可防⽌密码猜测攻击。在某些情况下,应⽤程序需要为其服务帐⼾启⽤此设

置。当不强制执⾏预认证时,可以直接发送虚拟认证请求。域控制器的密钥分发中⼼,(KDC)将检查⾝份验证服务请求(AS-REQ),验证⽤⼾信息并返回加密的票证授予票证(TGT)。 TGT 包含使⽤相应帐⼾的 NTLM 哈希加密的材料(时间戳)。可以从中派⽣出哈希值,该哈希值可以受到离线暴⼒攻击以泄露明⽂密码。

这里用到impacket的脚本GetNPUsers.py

1
python3 /home/kali/impacket/examples/GetNPUsers.py EGOTISTICAL-BANK.LOCAL/ -usersfile unames.txt  -outputfile hashes.asreproast -dc-ip 10.10.10.175

成功拿到一串hash,用hashcat爆破一下

1
hashcat -m 18200 hash.txt -o pass.txt /usr/share/wordlists/rockyou.txt --force

拿到密码

拿账号密码用Evil-WinRM登陆,拿到第一个flag

提权

上传一个winPEASany.exe,运行看看有什么可以提取的

发现一串密码和一个新的用户svc_loanmgr,拿着这个再次登陆

用“net users svc_loanmgr”查看用户详细信息,发现是个Remote Management Users组

再看看这个组的情况,net localgroup “Remote Management Users”

“ Members of this group can access WMI resources over management protocols (such as WS-Management via the Windows Remote Management service). This applies only to WMI namespaces that grant access to the user.”

该组成员具有远程管理系统的能力,权限达到管理,所以存在DCSync 攻击

在域环境中,不同域控制器(DC)之间,每 15 分钟都会有一次域数据的同步。当一个域控制器(DC 1)想从其他域控制器(DC 2)获取数据时,DC 1 会向 DC 2 发起一个 GetNCChanges 请求,该请求的数据包括需要同步的数据。如果需要同步的数据比较多,则会重复上述过程。DCSync 就是利用的这个原理,通过 Directory Replication Service(DRS) 服务的 GetNCChanges 接口向域控发起数据同步请求。

DCSync 是域渗透中经常会用到的技术,其被整合在了 Mimikatz 中。在 DCSync 功能出现之前,要想获得域用户的哈希,需要登录域控制器,在域控制器上执行代码才能获得域用户的哈希。

使用secretsdump.py脚本复制权限为所有域⽤⼾显⽰ NTLM 哈希值。运⾏以下命令来转储主域管理员的密码哈希

1
python3 /home/kali/impacket/examples/secretsdump.py egotistical-bank/svc_loanmgr@10.10.10.175 -just-dc-user Administrator

成功拿到hash,然后再登陆,成功拿到管理员权限

总结

思路:网页发现用户名–>生成字典–>查看是否有用户不需要Kerberos 预⾝份验证–>拿到第一个账号密码–>提权工具找到自动登录的账户密码–>查看域内信息–>发现DCSync 攻击–>抓到管理员的hash–>提权成功

新的知识点:Kerberos 预⾝份验证,自动化提权检测工具,DCSync 攻击。。

本来想试一下BloodHound查看域内信息,总是失败,不过看官方题解也能懂,可惜就记录不下来了

由 Hexo 驱动 & 主题 Keep