导语:适用场景 已恢复域的域用户凭据,但对任何目标都没有特权或交互的访问权限,也就是没有Domain Admin帐户或任何能够建立RDP会话的帐户。 介绍 在最近的一次渗透中,我正在对几个不可信的Windows域进行内部评估。 使用Kerberos域用户
适用场景
已恢复域的域用户凭据,但对任何目标都没有特权或交互的访问权限,也就是没有Domain Admin帐户或任何能够建立RDP会话的帐户。
介绍
在最近的一次渗透中,我正在对几个不可信的Windows域进行内部评估。 使用Kerberos域用户名枚举并随后执行SMB密码破解 ,可以访问多个域帐户。
然而,最后发现没有一个确定的凭证集是具有特权的,例如他们不是Domain Admin,另外,没有一个账户是“远程桌面用户”组的成员。 因此,不可能对任何目标主机进行交互式访问。
有许多不同的技术可以帮助我们在用于渗透且没有加入域的笔记本电脑上以低特权帐户(即域用户)来查询Active Directory的信息,我将在这篇文章中讨论一些渗透方式。
我们枚举的最终目标是:
·枚举所有域帐户
·枚举特权帐户的目标,即域管理员或远程桌面用户组的成员
·枚举域的密码策略
·列举进一步的攻击途径
一旦这个枚举完成,我们就可以对账户进行进一步的密码破解尝试。
以下示例中使用的域用户凭证是username = ops ,password = Pa55word
windapsearch
我将要讨论的第一个工具是windapsearch :
正如该工具的作者所述的那样,“windapsearch是一个Python脚本,通过LDAP查询来帮助枚举Windows域中的用户,组和计算机”
使用我们的必需的即先前破解的域用户帐户,可以使用以下语法来查询远程域中的所有用户:
windapsearch --dc-ip [IP_ADDRESS] -u [DOMAIN]\\USERNAME -p [PASSWORD] -U
下图显示了枚举域中所有用户的工具(-U开关):
注意:已经使用grep和cut清理了输出中的一点内容
windapsearch --dc-ip 192.168.5.1 -u mydomain\\ops -p Pa55word -U | grep cn: | cut -d " " -f 2
使用–da开关,我们也可以枚举Domain Admins:
windapsearch –dc-ip 192.168.5.1 -u mydomain\\ops -p Pa55word --da | grep cn: | cut -d " " -f 2
使用-m开关,我们可以枚举“远程桌面用户”组的成员:
windapsearch --dc-ip 192.168.5.1 -u mydomain\\ops -p Pa55word -m "Remote Desktop Users" | grep CN=
PowerView
harmj0y编写的这款优秀的工具——PowerView可能是我们在未加入域环境的情况下或使用普通域用户枚举AD信息的最佳选择。
PowerView在harmj0y的多篇博客文章(请参阅参考资料)中进行了深入而丰富的讨论,但我将要讨论的内容是那些在我们的场景中可能有用的选项。
最初,我们使用runas和/netonly在我们未加入域的 Windows主机上建立PowerShell会话,即仅为远程访问指定凭证:
runas /netonly /user:mydomain\op powershell (随后会提示我们输入密码):
注意:我已经在以下路径中安装了PowerSploit(它提供了PowerView):
C:\Windows\System32\WindowsPowerShell\v1.0\Modules\PowerSploit-dev
一旦我们通过以下方式导入PowerSploit:
Import-module .\PowerSploit.psd1
我们koi可以查询域中的所有域用户:
Get-DomainUser -Domain mydomain.test -DomainController 192.168.5.1 | findstr samaccountname
我们同样也可以查询域中的域管理员列表:
Get-DomainGroupMember -identity "Domain Admins" -Domain mydomain.test -DomainController 192.168.5.1 | findstr MemberName
接下来,我们查询域中的 “远程桌面用户”组的成员:
Get-DomainGroupMember -identity "Remote Desktop Users" -Domain mydomain.test -DomainController 192.168.5.1 | findstr MemberName
我们也可以在AD中查询我们当前用户上下文能够访问的所有可用的共享列表:
Find-DomainShare -CheckShareAccess -Domain mydomain.test -DomainController 192.168.5.1
Microsoft远程服务器管理工具(RSAT)
Microsoft RSAT旨在允许管理员从远程计算机管理Windows服务器。 RSAT为我们提供了另一种选择,能够让我们使用低权限和在未加入域环境的情况下枚举域信息:
最初,RSAT对于枚举远程Windows域的密码策略非常有用。 现在我们再次通过runas/netonly启动的PowerShell会话执行此操作(有关详细信息,请参阅上面的PowerView):
Get-ADDefaultDomainPasswordPolicy -Server 192.1685.5.1
我们也可以从GUI的角度来使用RSAT,这也是通过runas启动的:
runas /netonly /user:mydomain\ops mmc
接下来,我们通过新的mmc控制台添加“Active Directory用户和计算机”:
将域控制器实例更改为我们的目标:
然后,我们就获得了这个域的所有用户信息的图形视图:
本文所述的枚举域信息背后的主要目的是从破解普通域用户的密码开始到最后为我们提供更多的攻击路径和更多的特权帐户。 对域密码策略的检索显然也是对本文所述的枚举思路的补充。
参考文献: