freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

操作系统权限提升 | 基于白名单DLL劫持绕过UAC提权
2023-12-14 09:54:47

Windows UAC概述

UAC概述

UAC(User Account Control),中文翻译为用户帐户控制,是微软在Windows Vista和Windows7中引用的新技术,主要功能是进行一些会影响系统安全的操作时,会自动触发UAC,用户确认后才能执行。因为大部分的恶意软件、木马病毒、广告插件在进入计算机时都会有如:将文件复制到Windows或Program Files等目录、安装驱动、安装ActiveX等操作,而这些操作都会触发UAC,用户都可以在UAC提示时来禁止这些程序的运行

许可提示当用户尝试执行需要用户管理访问令牌的任务时,会显示同意提示,下面是 UAC 同意提示的示例

图片.png

选择是执行程序,选择否则相反

凭据提示当标准用户尝试执行需要用户管理访问令牌的任务时,会显示凭据提示, 还可以要求管理员提供其凭据。

图片.png

UAC触发操作

UAC触发的条件如下

修改Windows Update配置;
增加或删除用户帐户;
改变用户的帐户类型;
改变UAC设置;
安装ActiveX;
安装或卸载程序;
安装设备驱动程序;
修改和设置家长控制;
增加或修改注册表;
将文件移动或复制到Program Files或是Windows目录;
访问其他用户目录

UAC有用四种设置要求

简单来说,UAC设置分四种,分为始终通知、仅在程序尝试对我的计算机进行更改时通知我、仅当程序尝试更改计算机时通知我(不降低桌面亮度)和从不通知。按W+R --输入msconfig 设置UAC

图片.png

图片.png

基于白名单DLL劫持绕过UAC提权

基于白名单DLL劫持绕过UAC提权原理

DLL是什么

dll为动态链接库文件,又称"应用程序拓展",是软件文件类型。在Windows中许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库文件,即dll文件,放置于系统中,个人理解类似于我们编程中引入的模块

DLL提权原理

如果在进程尝试加载一个DLL时没有指定DLL的绝对路径,那么Windows会尝试去指定的目录下查找这个DLL;如果攻击者能够控制其中的某一个目录,并且放一个恶意的DLL文件到这个目录下,这个恶意的DLL便会被进程所加载,从而造成代码执行。这就是所谓的DLL劫持

DLL的记载顺序如下

1、应用程序加载的目录
2、C:\Windows\System32
3、C:\Windows\System
4、C:\Windows
5.加载 DLL 时所在的当前目录
6.PATH环境变量中列出的目录

Know Dlls注册表项

从windows7之后,微软为了更进一步的防御系统的dll劫持,将一些容易被劫持的系统dll写进了一个注册表项中,那么凡是在此项目下的dll文件就会被禁止从exe自身所在目录下调用,而只能从系统目录即system32目录下调用

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs

图片.png

当前采用win7系统,找到一个白名单的程序 SystemPropertiesAdvanced.exe 位置在C:\Windows\SysWOW64\SystemPropertiesAdvanced.exe目录下,打开如下是windows的属性设置,通过进程监控找到加载的DLL文件进行劫持就可以提权

图片.png

先将操作在本地执行,使用procmon进行监控,过滤DLL和 NAME NOT FOUND ,寻找可以替换的DLL文件,注意文件的权限是否可以在目录写入,可以看到在C盘的tools目录的文件中有一个srrstr.dll被调用,但是没有加载,我们生成恶意的DLL文件看看是否可以被劫持

图片.png

图片.png

打开C语言编辑器生成DLL文件,进行弹出CMD窗口,或者打开计算器进行测试CPP文件内容如下

/* Replace "dll.h" with the name of your header */
#include "dll.h"
#include <windows.h>
#include <stdlib.h>

BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved)
{
	switch(fdwReason)
	{
		case DLL_PROCESS_ATTAC
# 渗透测试 # 黑客 # 网络安全 # 内网渗透
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录