继续记录学习📑
参考链接
官方wp
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查看域内信息,总是失败,不过看官方题解也能懂,可惜就记录不下来了