关于Auto-Elevate

Auto-Elevate是一款功能强大的Windows系统安全测试工具,该工具可以在不需要离邕任何LPE漏洞的 情况下,通过结合COM UAC绕过技术和令牌伪造技术,帮助广大研究人员将低完整性的管理员账号提升至NT AUTHORITY\SYSTEM。

该工具能够实现UAC以及其他一些Windows内置功能的绕过,该工具能够自动定位winlogon.exe,并能够窃取和模拟该程序的进程令牌,然后使用窃取来的令牌生成一个新的系统级进程。

值得一提的是,该工具结合了UACME实用工具的UAC绕过技术,感兴趣的同学可以搜索了解该工具所实现的ICMLuaUtil UAC绕过方法(#41)。

技术介绍

该工具是一款功能强大的提权和系统安全测试工具,下图显示的是Auto-Elevate将一个低等级权限的管理员账号提升为SYSTEM的步骤流程:

工具运行流程

1、工具通过使用CreateToolhelp32Snapshot、Process32First和Process32Next来枚举目标系统中正在运行的进程以查找定位winlogon.exe;

2、通过调用AdjustTokenPrivileges来为当前进程启动SeDebugPrivilege,因为我们需要为winlogon.exe开启一个句柄;

3、通过调用OpenProcess来打开一个winlogon.exe进程句柄,此时将会调用到PROCESS_ALL_ACCESS;

4、工具将通过调用OpenProcessToken并结合之前获得的进程句柄来检索winlogon的进程令牌句柄;

5、通过调用ImpersonateLoggedOnUser来伪造winlogon用户;

6、通过使用SecurityImpersonation来调用DuplicateTokenEx并复制伪造的令牌句柄,这将创建一个我们可以使用的令牌副本;

7、在令牌副本的帮助下,我们就可以通过调用CreateProcessWithTokenW来生成一个新的CMD实例了;

工具下载

广大研究人员可以使用下列命令将该项目源码克隆至本地:

git clone https://github.com/FULLSHADE/Auto-Elevate.git

接下来,将.cpp文件导入到Visual Studio中编译后即可直接使用。

工具使用

下图中演示了如何在Windows 10 21H1操作系统平台上,使用UACME结合Auto-Elevate来将一个低等级权限的管理员账号提升为NT AUTHORITY\SYSTEM:

下图演示了如何在不使用UAC绕过技术的情况下,将一个高低等级权限的管理员账号提权为SYSTEM:

项目地址

Auto-Elevate:GitHub传送门

参考资料

https://attack.mitre.org/techniques/T1134/

https://attack.mitre.org/techniques/T1134/001/

https://attack.mitre.org/techniques/T1134/002/

https://attack.mitre.org/techniques/T1134/003/

本文作者:Alpha_h4ck, 转自FreeBuf