Nuevas características de Win 7: Console Host (ConHost.exe)

  

Hoy, le presentaremos la nueva característica de Windows 7 /Windows Server 2008 R2 - Console Host (ConHost.exe).

De hecho, ya sea como usuario normal o como administrador corporativo, usamos la aplicación de la consola más o menos en la aplicación diaria de Windows y en el proceso de operación y mantenimiento. La aplicación de la consola no tiene interfaz de usuario. Necesitamos ingresar y generar el símbolo del sistema (CMD, que no es DOS, mucha gente está confundida).

Así que todos piensan una y otra vez, ¿qué aplicaciones de consola trae Windows?

De hecho, los más típicos son cmd.exe, nslookup.exe y telnet.exe.

En versiones anteriores de Windows, todas las aplicaciones que representaban actividades que no representaban GUI (es decir, aplicaciones de consola) fueron coordinadas por el proceso del sistema Csrss.exe cuando se ejecutaba en el escritorio. Cuando la aplicación de consola necesita recibir caracteres, se llama a una pequeña "API de consola" en Kernel32.dll para permitir que Kernel32 genere LPC para llamar a CSRSS. En este punto, CSRSS verifica y verifica la cola de entrada de la ventana de la consola y devuelve el resultado del modo de caracteres a la aplicación de la consola a través de Kernel32 para su asociación. El mecanismo de manejo de la aplicación de consola en la versión anterior de Windows es como se muestra en la siguiente figura:

Este mecanismo de procesamiento ya ha producido un problema: incluso una aplicación de consola está en el contexto de un usuario normal. Se ejecuta en, pero Csrss.exe siempre se ejecuta bajo los permisos de la cuenta del sistema local. Por lo tanto, en algunos casos, el malware desarrollado por "tipos malos" tiene el potencial de obtener más privilegios a través de Csrss.exe, que se ejecuta mediante los privilegios de la cuenta del sistema local. Este modo de ataque se llama Shatter Attack.

En la era de Win7 y Windows Server 2008 R2, todas las aplicaciones de la consola se pusieron en un nuevo proceso de contexto ConHost.exe para ejecutar, mientras que ConHost (host de la consola) y los programas de la consola se ejecutan en En el contexto del mismo nivel de seguridad, en lugar de emitir una solicitud de mensaje LPC al CSRSS para su procesamiento, la solicitud es solicitar a ConHost. Por lo tanto, cualquier aplicación que intente explotar una solicitud de mensaje para causar una elevación automática de privilegios no tendrá éxito. La siguiente figura muestra el nuevo mecanismo utilizado en Windows 7 y Windows Server 2008 R2:

ConHost reemplaza el cambio permanente del procesamiento de E /S en la aplicación de consola, el usuario no puede pasar el registro. O la Política de grupo impone el comportamiento (mecanismo) de restaurar Windows a la consola del Modo heredado. Por lo tanto, los usuarios deben probar la aplicación por completo antes de actualizar a Windows 7 o Windows Server 2008 R2. No se olvide, aunque algunas de las funciones de la aplicación se implementan a través de la GUI, los datos todavía se procesan en lotes a través de la consola u otras interfaces funcionales en segundo plano. Por lo tanto, es necesario realizar una prueba funcional completa de la aplicación antes de la migración o el nivel.

Cuando una aplicación no se puede usar normalmente en Windows 7, primero debemos probarla nuevamente con privilegios de administrador para ver si ocurre el problema. De hecho, use PRocess Monitor para monitorear el acceso de la aplicación al archivo o registro. Si los permisos son normales. Si el problema anterior aún no funciona correctamente, debe considerar ponerse en contacto con ISV o sus desarrolladores.

Si la aplicación falla, el archivo de volcado de caída correspondiente es más beneficioso para los desarrolladores e ISV para encontrar el quid del problema. Si la aplicación deja de responder, puede intentar usar ADPlus para rastrearla y su proceso de volcado ConHost.exe asociado. La aplicación de la consola puede compartir muchos de los procesos secundarios de la consola de Windows. Por ejemplo, cuando un usuario inicia Telnet desde la ventana de CMD, Telnet.exe se convierte en un elemento secundario de Cmd.exe. En este caso, el host ConHost.exe procesa las instancias de mensajes primarias y secundarias. Al usar Process Explorer, podemos confirmar qué procesos está procesando ConHost.exe:

También puede ver el proceso de ConHost.exe usando la función "Analizar cadena de espera" que viene con la función Monitor de recursos de Windows 7. El proceso de solicitud:

Finalmente, no se olvide, la aplicación antes de la migración está completamente probada.


Copyright © Conocimiento de Windows All Rights Reserved