Active Directory枚举和攻击

现在只完成了其中一部分内容,每周更新,感兴趣的可以持续关注一下~

域枚举

AD 中存储的数据非常丰富,如果只是在没有计划的情况下进行,枚举 AD 环境可能会漏掉一些东西。我们需要为自己制定一个游戏计划并逐个解决它。每个人的工作方式都略有不同,因此随着我们获得更多经验,我们将开发最适合我们自己的方法。不管我们如何进行,我们通常从同一个地方开始并寻找相同的数据点。我们将在本节和后续部分中试验许多工具。重要的是尝试使用不同的工具创建示例,以了解它们的工作方式有何不同,学习它们的语法,并找到最适合我们的方法。

我们将从被动识别网络中的主机开始,然后验证结果以了解有关每个主机的更多信息(正在运行的服务、名称、潜在漏洞等)。一旦我们知道存在哪些主机,我们就可以继续探测这些主机,寻找我们可以从中收集到的数据。完成这些任务后,我们应该停下来重新组合并查看我们拥有的信息。此时,我们希望拥有一组凭据或用户帐户,以在加入域的主机上建立立足点,或者能够从我们的 Linux 攻击主机开始凭据枚举。

让我们看看一些工具和技术来帮助我们进行此枚举。

用户识别

如果在开始测试时没有任何用户权限,我们将需要找到一种方法通过获取用户的明文凭据或 NTLM 密码哈希来在域中建立立足点,加入域的主机上的 SYSTEM shell,或域用户帐户的 shell。在内部渗透测试的早期阶段,获得具有凭据的有效用户至关重要。这种访问(即使是最低级别)为执行枚举甚至攻击提供了许多机会。

Kerbrute - 内部域用户名枚举

Kerbrute可以用来做域帐户枚举。它利用了 Kerberos 预身份验证失败不会触发日志或警报这一漏洞。我们将使用 Kerbrute 结合Insidetrust中的用户列表。该工具速度很快,并且会向我们提供结果,让我们知道找到的帐户是否有效,这是发起密码喷射等攻击的一个很好的起点。

克隆 Kerbrute GitHub Repo
kali@kali:~$ sudo git clone https://github.com/ropnop/kerbrute.git

Cloning into 'kerbrute'...
remote: Enumerating objects: 845, done.
remote: Counting objects: 100% (47/47), done.
remote: Compressing objects: 100% (36/36), done.
remote: Total 845 (delta 18), reused 28 (delta 10), pack-reused 798
Receiving objects: 100% (845/845), 419.70 KiB | 2.72 MiB/s, done.
Resolving deltas: 100% (371/371), done.
为多个平台编译
kali@kali:~$ sudo make all

go: downloading github.com/spf13/cobra v1.1.1
go: downloading github.com/op/go-logging v0.0.0-20160315200505-970db520ece7
go: downloading github.com/ropnop/gokrb5/v8 v8.0.0-20201111231119-729746023c02
go: downloading github.com/spf13/pflag v1.0.5
go: downloading github.com/jcmturner/gofork v1.0.0
go: downloading github.com/hashicorp/go-uuid v1.0.2
go: downloading golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897
go: downloading github.com/jcmturner/rpc/v2 v2.0.2
go: downloading github.com/jcmturner/dnsutils/v2 v2.0.0
go: downloading github.com/jcmturner/aescts/v2 v2.0.0
go: downloading golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa
cd /tmp/kerbrute
rm -f kerbrute kerbrute.exe kerbrute kerbrute.exe kerbrute.test kerbrute.test.exe kerbrute.test kerbrute.test.exe main main.exe
rm -f /root/go/bin/kerbrute
Done.
Building for windows amd64..

<SNIP>
使用 Kerbrute 枚举用户
kali@kali:~$ kerbrute userenum -d INLANEFREIGHT.LOCAL --dc 172.16.5.5 jsmith.txt -o valid_ad_users

2022/12/27 23:01:46 >  Using KDC(s):
2022/12/27 23:01:46 >   172.16.5.5:88
2022/12/27 23:01:46 >  [+] VALID USERNAME:       jjones@INLANEFREIGHT.LOCAL
2022/12/27 23:01:46 >  [+] VALID USERNAME:       sbrown@INLANEFREIGHT.LOCAL
2022/12/27 23:01:46 >  [+] VALID USERNAME:       tjohnson@INLANEFREIGHT.LOCAL
2022/12/27 23:01:50 >  [+] VALID USERNAME:       evalentin@INLANEFREIGHT.LOCAL

 <SNIP>
 
2022/12/27 23:01:51 >  [+] VALID USERNAME:       sgage@INLANEFREIGHT.LOCAL
2022/12/27 23:01:51 >  [+] VALID USERNAME:       jshay@INLANEFREIGHT.LOCAL
2022/12/27 23:01:51 >  [+] VALID USERNAME:       jhermann@INLANEFREIGHT.LOCAL
2022/12/27 23:01:51 >  [+] VALID USERNAME:       whouse@INLANEFREIGHT.LOCAL
2022/12/27 23:01:51 >  [+] VALID USERNAME:       emercer@INLANEFREIGHT.LOCAL
2022/12/27 23:01:52 >  [+] VALID USERNAME:       wshepherd@INLANEFREIGHT.LOCAL
2022/12/27 23:01:56 >  Done! Tested 48705 usernames (56 valid) in 9.940 seconds

我们可以从我们的输出中看到,我们验证了 INLANEFREIGHT.LOCAL 域中的 56 个用户,并且只用了几秒钟就完成了。现在我们可以利用这些结果构建一个列表,用于有针对性的密码喷射攻击。

识别潜在漏洞

本地系统中的NT AUTHORITY\SYSTEM帐户具有系统的最高级别访问权限,用于运行大多数 Windows 服务。主机上的SYSTEM帐户能够通过模拟计算机帐户来枚举 Active Directory,这实际上只是另一种用户帐户。在域环境中拥有系统级访问权限几乎等同于拥有域帐户。

有几种方法可以获得主机上的系统级访问权限,包括但不限于:

  • 远程 Windows 漏洞,例如 MS08-067、EternalBlue 或 BlueKeep
  • Windows 操作系统中的本地提权漏洞
  • 使用本地帐户在加入域的主机上获得管理员访问权限,并使用 Psexec 启动 SYSTEM cmd 窗口
    通过在加入域的主机上获得系统级访问权限,您将能够执行以下操作,包括但不限于:
  • 使用内置工具或攻击性工具(如 BloodHound 和 PowerView)枚举域
  • 在同一域内执行 Kerberoasting / ASREPRoasting 攻击
  • 运行 Inveigh 等工具来收集 Net-NTLMv2 哈希值或执行 SMB 中继攻击
  • 执行令牌模拟以劫持特权域用户帐户
  • 进行 ACL 攻击
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zyu0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值