前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >域权限维持 | 改密码我也能获取你的密码 | Hook PasswordChangeNotify 攻击

域权限维持 | 改密码我也能获取你的密码 | Hook PasswordChangeNotify 攻击

作者头像
渗透攻击红队
发布2020-12-14 11:41:01
1.7K0
发布2020-12-14 11:41:01
举报
文章被收录于专栏:漏洞知识库

大家好,这里是 渗透攻击红队 的第 40 篇文章,本公众号会记录一些我学习红队攻击的复现笔记(由浅到深),不出意外每天一更

Hook PasswordChangeNotify

Hook PasswordChangeNotify 的作用是当用户修改密码后在系统中进行同步。

攻击者可以利用该功能获取用户修改密码时输入的密码明文。

在修改密码时,用户输入新密码后,LSA 会调用 PasswordFileter 来检查该密码是否符合复杂性要求,如果密码符合要求,LSA 会调用 PasswordChangeNotify,在系统中同步密码。

Hook PasswordChangeNotify

实验操作

Hook dll

下载连接:https://github.com/clymb3r/Misc-Windows-Hacking

使用 VS 2019的开发环境,MFC设置为在静态库中使用MFC编译工程,生成 HookPasswordChange.dll。

代码语言:javascript
复制
下载脚本:
https://github.com/clymb3r/PowerShell/blob/master/Invoke-ReflectivePEInjection/Invoke-ReflectivePEInjection.ps1

首先需要 Invoke-ReflectivePEInjection.ps1 脚本将 HookPasswordChange.dll 注入内存,在目标系统中启动管理员权限的 Powershell:

代码语言:javascript
复制
Set-ExecutionPolicy bypass
Import-Module .\Invoke-ReflectivePEInjection.ps1
Invoke-ReflectivePEInjection -PEPath HookPasswordChange.dll -procname lsass

这个时候没有报错就说明成功了,最后我们手动改一次域控的密码:Admin123456

更改成功后,我们在 C:\Windows\Temp 可以找到文件:passwords.txt

此时可以看到域控的密码为:Admin123456

如果想要更改 passwords.txt 存放路径的话,那么更改 HookPasswordChange.cpp 代码的 132 行 为你想要生成的路径即可:

我修改为 windows.log 误以为让管理员知道是 log 文件,随后再次执行:

之后更改密码为:Admin1234567

这样就能在 windows.log 文件中查看到域控更改的密码!


防御措施

使用 Hook PasswordChangeNotify 方法不需要重启系统、不会在系统磁盘中留下 DLL 文件、不需要修改注册表。

如果 PasswordChangeNotify 被攻击者利用,网络管理员是很难检测到的。

防御措施就是:对 Powershell 进行严格的监视。


参考文章:

https://www.cnblogs.com/xiaoxiaosen/p/13537305.html

https://github.com/clymb3r/PowerShell

https://github.com/clymb3r/Misc-Windows-Hacking

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 渗透攻击红队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Hook dll
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档