Utilizando sólo el símbolo del sistema y/o PowerShell, pero sin programas o comandos externos, ¿cómo se puede ejecutar una aplicación como TrustedInstaller o SYSTEM?
Respuesta1
AFAIK, no existe una forma sencilla de iniciar sesión comoSISTEMAo comoInstalador de confianzasin utilizar herramientas de terceros como las propias de Microsoft (bueno, en realidad Sysinternals de Russinovich)PsExec, NirsoftNirCmdo de SordumEjecución de energía.
Sin embargo, es fácil utilizar estas herramientas.aparecerser nativo de la GUI de Windows, es decir, como un elemento del menú contextual para ejecutables, con unAjuste de registro que agrega la herramienta particular al menú contextual.
[Incluso con esos privilegios, a veces puede ser imposible realizar tareas simples, como usarRegeditpara modificar una clave propiedad deInstalador de confianza, sin tomar posesión.]
Respuesta2
Dehttps://www.tiraniddo.dev/2017/08/the-art-of-becoming-trustedinstaller.html, estos son los pasos que intento en mi máquina
- Abra su powershell (como administrador)
- PS> Instalar-Módulo -Nombre NtObjectManager
- PS> Inicio-Servicio -Nombre TrustedInstaller
- PD> $parent = Get-NtProcess -ServiceName TrustedInstaller
- PS> $proc = New-Win32Process cmd.exe -CreationFlags NewConsole -ParentProcess $padre
Notas:
Install-Module
solo es necesario ejecutarlo una vez para importar el módulo.https://www.powershellgallery.com/packages/NtObjectManager/
Después del paso 5, se abrirá un nuevo símbolo del sistema, allí podemos verificar ejecutando whoami
y mostraránt authority\system
Respuesta3
Por cierto, aquí hay un script .ps1 hecho deComandos de @hasto:
$ConfirmPreference = "None"
$isAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
if (-not $isAdmin) {
Start-Process powershell -ArgumentList "-NoProfile -File `"$PSCommandPath`"" -Verb RunAs
exit
}
Set-ExecutionPolicy -ExecutionPolicy bypass
Install-Module -Name NtObjectManager
Start-Service -Name TrustedInstaller
$parent = Get-NtProcess -ServiceName TrustedInstaller
$proc = New-Win32Process cmd.exe -CreationFlags NewConsole -ParentProcess $parent
$ConfirmPreference = "High"