Acceso PsExec denegado

11

Estoy usando psexec.exepara ejecutar programas en un contexto de seguridad diferente. Sin embargo, los programas se inician pero no parece ejecutarse en el contexto de seguridad especificado.

En su forma mínima:

psexec -u wsadmin -p password cmd

Inicia una nueva ventana de cmd si escribo en esa ventana whoami

C:\Windows\system32>whoami
win-k1r7g38nlkt\wsadmin

C:\Windows\system32>net localgroup administrators
Alias name     administrators
Comment        Administrators have complete and unrestricted access to the computer/domain

Members

-------------------------------------------------------------------------------
Administrator
wsadmin
The command completed successfully.

Como puede ver, definitivamente soy el otro usuario. Y puedo confirmar que este usuario es miembro del "grupo de administradores"

C:\Windows\system32>mkdir test
Access is denied.

Si uso runas con el usuario especificado, funciona como se supone. Pero necesito proporcionar la contraseña en la línea de comandos.

Tuim
fuente

Respuestas:

10

En Windows Vista y versiones posteriores, si UAC está habilitado, un proceso iniciado por psexec, incluso cuando se ejecuta desde una cuenta de administrador, debe tener su token elevado configurado para obtener todos los privilegios. Esto se puede hacer pasando el -hatributo en la psexeclínea de comando. Entonces, cambiarías tu comando a:

psexec -h -u wsadmin -p password cmd

Para más información, ejecute psexec /?:

    -h    If the target system is Vista or higher, has the process
          run with the account's elevated token, if available.
nhinkle
fuente
99
Desafortunadamente esto me da "No se pudo instalar el acceso al servicio PSExec denegado"
Tuim
¿También está ejecutando el comando inicial desde un símbolo del sistema elevado o lo está utilizando como una ejecución local?
nhinkle
El comando original ejecuta un contexto de seguridad de 'usuario'. No puedo usar run-as por razones específicas.
Tuim
1
Use "Símbolo del sistema elevado" o "Indicador de PowerShell elevado" a través de "Inicio> Escriba" PowerShell "> Haga clic con el botón derecho en" Windows PowerShell "> Seleccione" Ejecutar como administrador "y luego ejecute el comando psexec, incluida la -hopción.
Anterior
@Underverse, ¿es posible usar psexec del usuario CMD, no del administrador PS? Quiero usar psexec exactamente para la transición de CMD al contexto de administración :)
Suncatcher
5

Me llevó horas para encontrar una manera de trabajar a PsExecentre dos equipos con Windows 7 con el usuario que no es administrador de comenzar PsExec... desactivación de UAC ( EnableLUA=0, ConsentPromptBehaviorAdmin=0, LocalAccountTokenFilterPolicy=1) no funcionaba, la desactivación de los servidores de seguridad no funcionaba ...

Aquí encontré la forma de trabajar, gracias JelmerS: (La información de PSexec no se conecta a la máquina con el nombre de usuario y la contraseña suministrados )

Esto se debe a que psexectodavía intenta acceder al recurso ADMIN$compartido con sus credenciales locales, antes de ejecutar su comando como otro usuario. De acuerdo con este hilo, puede almacenar en caché las credenciales antes de ejecutar psexec:

cmdkey.exe /add:MACHINE_NAME_HERE /user:MACHINE_NAME_HERE\Administrator /pass:PASSWORD_HERE 
psexec.exe \\MACHINE_NAME_HERE -i notepad
cmdkey.exe /delete:MACHINE_NAME_HERE
Peter Feldhammer
fuente
Nota: si no desea su contraseña en el historial de la línea de comandos, puede usar / pasar sin contraseña, y recibirá un mensaje para ingresar una.
Joe the Coder
1

He encontrado una solución:

Resulta que cuando tienes UAC habilitado, psexec no funciona como se supone.
Siempre que HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUAse establece en 0psexec funciona como se esperaba.

Tuim
fuente
44
La otra forma de evitar esto que no requiere cambiar el registro es simplemente agregar la -hbandera al psexeccomando. Esto le indica que ejecute el comando con el token elevado, lo que equivale a iniciar un proceso "como administrador" desde el menú contextual.
nhinkle
55
Establecer EnableLUAen 0deshabilita Admin Approval Mode, que es básicamente el núcleo de UAC. Como resultado, el UAC se desactivará. Fuente .
Vlastimil Ovčáčík
Para mí, la bandera -h no funcionó y deshabilitar UAC fue problemático, pero encontré una mejor alternativa
mTorres el
0

Esto es lo que funcionó para mí, no elimina UAC por completo, pero lo desactiva para los administradores

Configuración del equipo \ Configuración de Windows \ Configuración de seguridad \ Políticas locales \ Opciones de seguridad \ Control de cuentas de usuario: ejecutar todos los administradores en modo de aprobación de administrador - Desactivado

cristobalhernandez
fuente
Lo cual no es realmente una gran idea. Además, ¿cómo es esto una mejora en comparación con las otras soluciones disponibles?
Seth