¿Cómo se ejecuta CMD.exe en la cuenta del sistema local?

Actualmente estoy ejecutando Vista y me gustaría completar manualmente las mismas operaciones que mi Servicio de Windows. Dado que el servicio de Windows se ejecuta bajo la cuenta del sistema local, me gustaría emular este mismo comportamiento. Básicamente, me gustaría ejecutar CMD.EXE en la cuenta del sistema local.

Encontré información en línea que sugiere lanzar el CMD.exe usando el comando AT del Progtwigdor de tareas de DOS, pero recibí una advertencia de Vista de que “debido a las mejoras de seguridad, esta tarea se ejecutará en el momento exceptuado, pero no interactivamente”. Aquí hay un comando de muestra:

AT 12:00 /interactive cmd.exe 

Otra solución sugirió crear un Servicio secundario de Windows a través del Control de servicio (sc.exe) que simplemente inicia CMD.exe.

 C:\sc create RunCMDAsLSA binpath= "cmd" type=own type=interact C:\sc start RunCMDAsLSA 

En este caso, el servicio no se inicia y el siguiente mensaje de error aparece:

 FAILED 1053: The service did not respond to the start or control request in a timely fashion. 

La tercera sugerencia fue lanzar CMD.exe a través de una tarea progtwigda. Aunque puede ejecutar tareas progtwigdas en varias cuentas, no creo que la Cuenta del sistema local sea una de ellas.

También intenté usar Runas, pero creo que estoy corriendo la misma restricción que encontré al ejecutar una tarea progtwigda.

Hasta el momento, cada uno de mis bashs ha terminado en fracaso. ¿Alguna sugerencia?

Aunque no he probado personalmente, tengo buenas razones para creer que la solución AT COMMAND mencionada anteriormente funcionará para XP, 2000 y Server 2003. Según mi y las pruebas de Bryant, hemos identificado que el mismo enfoque no funciona con Vista o Windows Server 2008, muy probablemente debido a la seguridad adicional y al hecho de que el modificador / interactivo esté en desuso.

Sin embargo, me encontré con este artículo que demuestra el uso de PSTools de SysInternals (que fue adquirido por Microsoft en julio de 2006.) Lancé la línea de comando a través de lo siguiente y de repente me estaba ejecutando bajo la cuenta de administrador local como magia:

 psexec -i -s cmd.exe 

PSTools funciona bien. Es un conjunto de herramientas ligero y bien documentado que proporciona una solución adecuada a mi problema.

Muchas gracias a quienes ofrecieron ayuda.

  1. Descarga psexec.exe desde Sysinternals .
  2. Colóquelo en su unidad C: \.
  3. Inicie sesión como usuario estándar o administrador y use el siguiente comando: cd \ . Esto lo coloca en el directorio raíz de su disco, donde se encuentra psexec.
  4. Utilice el siguiente comando: psexec -i -s cmd.exe donde -i es interactivo y -s es para cuenta del sistema.
  5. Cuando el comando finalice, se lanzará un shell cmd. Escriba whoami ; dirá ‘sistema’
  6. Abrir taskmanager. Kill explorer.exe.
  7. Desde un comando de shell elevado, start explorer.exe .
  8. Cuando se inicia el explorador, observe el nombre “sistema” en la barra de menú de inicio. Ahora puede eliminar algunos archivos en el directorio system32 que como administrador no puede eliminar o como administrador, deberá esforzarse por cambiar los permisos para eliminar esos archivos.

Los usuarios que intenten cambiar el nombre o eliminar archivos del sistema en cualquier directorio protegido de Windows deben saber que todos los archivos de Windows están protegidos por DACLS mientras renombran un archivo, deben cambiar el propietario y reemplazar TrustedInstaller que posee el archivo y hacer que cualquier usuario como un usuario pertenece al grupo de administradores como propietario del archivo y luego intenta cambiarle el nombre después de cambiar el permiso, funcionará y mientras está ejecutando Windows Explorer con privilegios de kernel está limitado en términos de acceso a la red por razones de seguridad y sigue siendo un tema de investigación para que pueda acceder de nuevo

Encontré una respuesta aquí que parece resolver el problema agregando / k start al parámetro binPath. Entonces eso te daría:

sc create testsvc binpath= "cmd /K start" type= own type= interact

Sin embargo, Ben dijo que eso no funcionaba para él y cuando lo probé en Windows Server 2008 creó el proceso cmd.exe en el sistema local, pero no fue interactivo (no pude ver la ventana).

No creo que haya una manera fácil de hacer lo que preguntas, pero me pregunto por qué lo estás haciendo. ¿Estás tratando de ver qué pasa cuando ejecutas tu servicio? Parece que podrías usar el registro para determinar qué está sucediendo en lugar de tener que ejecutar el sistema local como un sistema …

Le recomendaría que elabore el conjunto mínimo de permisos que realmente necesita su servicio y que lo use, en lugar del demasiado privilegiado contexto del Sistema local. Por ejemplo, servicio local .

Los servicios interactivos ya no funcionan, o al menos ya no muestran UI, en Windows Vista y Windows Server 2008 debido al aislamiento de la sesión 0 .

una alternativa a esto es el pirata informático si entra en ejecución como … (Interactivo no funciona para las personas con mejoras de seguridad pero eso no importará) y cuando se abre el cuadro, coloque el Servicio en el cuadro escriba y coloque SISTEMA en la casilla usuario y coloque C : \ Users \ Windows \ system32 \ cmd.exe deja el rest haz clic en Aceptar y boch tienes una ventana con cmd y ejecuta como sistema ahora haz los otros pasos para ti porque sugiero que los conozcas

Usar Secure Desktop para ejecutar cmd.exe como sistema

Podemos obtener acceso al kernel a través de CMD en Windows XP / Vista / 7 / 8.1 fácilmente mediante la conexión de un depurador REG ADD “HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Image Execution Options \ osk.exe” / v Debugger / t REG_SZ / d “C: \ windows \ system32 \ cmd.exe”

1. Ejecutar CMD como administrador

2. Luego, use este comando en REG de CMD Elavated “HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Opciones de ejecución del archivo de imagen \ osk.exe” / v Debugger / t REG_SZ / d “C: \ windows \ system32 \ cmd. exe”

3. Luego ejecute osk en pantallakeyboard, aún no se ejecuta con el nivel de integridad del sistema si comprueba a través del proceso explora pero si puede usar OSK en la sesión de servicio sí, se ejecutará como NT authroitry SYSTEM

así que tengo una idea de que debes ejecutarlo en Secure Desktop

inicie cualquier archivo como Administrador cuando aparezcan las solicitudes UAC Simplemente presione la tecla de Windows + U e inicie OSK y comenzará CMD en lugar de comandos de tipo de petición elevada Whoami y obtendrá el sistema NT Authority de salida y podrá iniciar explorer desde el shell de comandos del sistema y ingrese el perfil del sistema, pero está algo limitado a lo que puede hacer en la red a través de privilegios del sistema por razones de seguridad. Agregaré más explicaciones más adelante, tal como lo descubrí hace un año. Una breve explicación de cómo sucede esto

Ejecutando Cmd.exe bajo la cuenta del sistema local sin usar PsExec. Este método ejecuta la técnica de trampa de depurador que se descubrió anteriormente, esta técnica tiene sus propios beneficios, se puede utilizar para atrapar algún gusano astuto / malicioso en el depurador y ejecutar otro exe en su lugar para detener la propagación o daño temporal. aquí esta clave de registro atrapa el teclado en pantalla en el depurador nativo de Windows y ejecuta cmd.exe en su lugar, pero cmd seguirá ejecutándose con privilegios de usuarios iniciados, sin embargo, si ejecutamos cmd en session0, podemos obtener el shell del sistema. así que agregamos aquí otra idea que abarque el cmd en escritorio seguro recuerde las ejecuciones de escritorio seguras en session0 en la cuenta del sistema y obtenemos system shell.so cada vez que ejecute algo tan elevado debe responder el indicador UAC y las indicaciones UAC en el escritorio oscuro no interactivo y una vez que lo veas, debes presionar la tecla de Windows + U y luego seleccionar OSK para ejecutar CMD.exe bajo privilegios de sistema local; hay aún más formas de obtener acceso al sistema local con CMD

Hay otra manera. Hay un progtwig llamado PowerRun que permite que se ejecute un cmd elevado. Incluso con los derechos de TrustedInstaller. Permite comandos de consola y GUI.

Si puede escribir un archivo por lotes que no necesita ser interactivo, intente ejecutar ese archivo por lotes como un servicio, para hacer lo que debe hacerse.

Uso la herramienta RunAsTi para ejecutar como TrustedInstaller (privilegio alto). La utilidad se puede usar incluso en el modo de recuperación de Windows (el modo que ingresa al hacer Shift + Restart ), la utilidad psexec no funciona allí. Pero debe agregar sus rutas C:\Windows y C:\Windows\System32 (no X:\Windows y X:\Windows\System32 ) a la PATH entorno PATH ; de lo contrario, RunAsTi no funcionará en modo recuperación, lo hará simplemente imprima: AdjustTokenPrivileges for SeImpersonateName: no todos los privilegios o grupos a los que se hace referencia se asignan a la persona que llama .