前言:在红队防线-《如何基于 "点" 位快速搜集》中,klion师傅提到“快速维权 注,此处并不一定非要去硬刚UAC,可以尝试在对方点的时候就把UAC框弹出来基于此开始进行测试“,萌生了复现的想法,在此记录学习过程。
UAC:简单来说,UAC是Windows操作系统的控制机制,用来提升系统的安全性。
交互式管理员(interactive administrators)以较低的权限运行,当运行开始管理员任务的时候通过UAC来提高用户的权限。
以CMD程序为例说明UAC作用:
普通cmd程序
通过UAC提权后的CMD程序
通过UAC可以让CMD程序获取更高的权限,从而进行更多操作,如对注册表操作。
当我们自编译payload的时候,如果shell能够直接以高权限运行而不用考虑其他提权的途径与困难程度,比如在更新后的win10机器上提权做权限维持等。
这里我找到两种让程序运行时自启UAC的方式,分享给大家:
1、visual studio
2、mt.exe
具体细节:
visual studio :
创建项目
在project下找到
xxxx properties
linker下会有启用UAC的级别:
修改UAC级别后,重启visual studio,编译之后,程序右下角会有盾牌标识运行时会自带UAC提权提示。
2、mt.exe
mt.exe文件是一个生成签名文件和目录的工具。
用法参考:
https://docs.microsoft.com/en-us/windows/win32/sbscs/mt-exe
生成可执行程序后通过
.\mt.exe -manifest kezhixing.exe.manifest -outputresource:kezhixing.exe;1
命令为可执行程序添加UAC运行。
cobaltstrike上线后效果展示:
发布者签名
UAC自运行搞好后,弹出的UAC窗口会有发布者信息,自己添加的UAC为未知发布者,为增加钓鱼成功的可能性,需要修改发布者,这里向Secde0师傅请教,通过复现三好学生师傅的文章,在Secde0师傅的帮助下,成功添加发布者
需要的工具: makecert.exe cert2spc.exe pvk2pfx.exe signtool.exe certmgr.exe
过程简介:
生成一个自签名的根证书
makecert.exe -n "CN=Microsoft Windows" -r -sv RootIssuer.pvk RootIssuer.cer
使用这个证书签发一个子证书
makecert.exe -n "CN=Child" -iv RootIssuer.pvk -ic RootIssuer.cer -sv ChildSubject.pvk ChildSubject.cer -sky signature
公钥证书格式转换成SPC
cert2spc.exe ChildSubject.cer ChildSubject.spc
将公钥证书和私钥合并成一个PFX格式的证书文件
pvk2pfx.exe -pvk ChildSubject.pvk -pi 123456 -spc ChildSubject.spc -pfx ChildSubject.pfx -f
签名
signtool sign /f ChildSubject.pfx /p 123456 test.exe
这里的signtool用系统自带的signtool.exe
将证书导入本地
普通用户权限:
certmgr.exe -add -c Root.cer -s -r currentUser root
certmgr.exe -add -c Root.cer -s -r localmachine root
效果如下
emm,补充下:要先加UAC后签名。
换设备后发布者将不再显示,需要重新签名。
将签名好的自启UAC文件放入虚拟机运行,可以看到发布者仍未未知
将证书导入本地
普通用户权限:certmgr.exe -add -c Root.cer -s -r currentUser root
管理员权限:
certmgr.exe -add -c Root.cer -s -r localmachine root
运行可执行程序效果如下:
参考链接:
https://docs.microsoft.com/en-us/windows/win32/sbscs/mt-exe
https://docs.microsoft.com/zh-cn/windows/win32/uxguide/winenv-uac
https://www.cnblogs.com/Secde0/articles/14012412.html
https://www.freebuf.com/articles/system/216337.html
http://www.vuln.cn/6022