我是如何获取全域用户明文密码的?
在组策略之外,Windows 允许你自定义密码策略,滥用这个机制可以实现一些恶意行为。今天为大家科普下
当我们按下 CTRL + ALT + DEL,修改用户密码时,在 Windows 服务器端,会发生什么呢?
首先,Windows 服务器(域控)会检查注册表,找到 Password Filter,也就是 LSA Notification Package。然后挨个调用DLL,检查密码是否符合策略,
如果不符合策略,就提示密码不够健壮,
在默认情况下,域上的服务器包含两个DLL,其中 seccli 负责实现密码安全策略,也就我们常用的GPO了
我们今天的主题,就是如何滥用这个机制,实现一个密码策略插件,以记录所有域用户的密码
一家上市公司,为了符合SOX 404审计要求,密码每三个月就要强制修改一次,刚好可以触发这个机制
查了下官方文档,一个密码插件需要导出三个函数,
其中 PasswordFilter 负责检查密码是否合规;PasswordChangeNotify 是在工作站上执行,负责告知工作站用户密码变更。
最终的源代码和64位的DLL可以在这里下载(使用 build.cmd 编译)
我们登陆域控,将编译好的 SecureFilter.dll 复制到 %system32% 目录,
然后打开注册表,找到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Lsa/Notification Package
添加SecureFilter 字样
重启 DC 服务器后生效
我们登陆一台工作站,修改密码,
回到域控,发现日志已经写入了
经过测试,无论你用何种方式修改密码,OWA 还是命令行,效果都是一样的;在未加域的服务器上效果也是一样
如果想要立即获取某个用户的密码,在域控上轻轻一勾即可 “User must change password at next logon”,如图所示:
参考资料
https://www.slideshare.net/nFrontSecurity/how-do-password-filters-work https://technet.microsoft.com/en-us/library/cc963221.aspx https://msdn.microsoft.com/en-us/library/windows/desktop/ms721766(v=vs.85).aspx.aspx)
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/55136.html
windows相关文章
- 企业版V2.0功能升级 | 新增“强制卸载”、“临时密码”、“终端部署限制”……
- Linux快捷键 | 破解密码 | 正则 | 永久行号显示
- 重置MSSQL的SA密码:一步一步指南(修改mssql的sa密码)
- Linux探寻用户密钥之旅(linux查看用户和密码)
- Linux用户登录的安全性:登录密码保护(linux用户登录密码)
- 猝不及防:忘记Oracle密码危机(忘记了oracle密码)
- 轻松搞定 Linux 免密码登录!(linux免密码登陆)
- WiFi密码攻防战 手机无线上网知多少
- 安全性更高?(如何oracle用户密码)
- 登录MySQL跳过密码,一路畅行无阻(mysql跳过密码)
- 重新认识Redis 默认无需密码(redis默认没密码)
- Oracle危险的不设置密码(oracle不设置密码)
- 史上最大 DDoS 攻击曝光,没想到还有这么多人拿“12345”当密码
- 冒充su,perl写的su.pl盗取root密码
- 解读ASP.NET密码强度验证代码实例分享