Lectura recomendada: Windows Sysinternals Administrator’s Reference

Pegando un vistazo a las presentaciones de la última Black Hat me sorprendió bastante la última de Mark Russinovich sobre “Zero Day Malware Cleaning with the Sysinternals Tools”. Mark ha incorporado mejoras notables en esta suite de herramientas gratuitas, para contribuir a la causa y profundizar un poco más en ellas, me animé a comprar el libro. En tan solo 23 páginas ya había amortizado los 31$ con cositas tan interesantes sobre estas tools y el sistema operativo de Microsoft, como las que paso a comentar.

En primer lugar Mark pasa a comentar aspectos generales del funcionamiento interno de Windows Vista, 7 y 2008 en cuanto al control de la autorización de seguridad. Cuando por ejemplo un usuario administrador se loguea en estos sistemas mencionados, se crean 2 tokens de sesión (creados por el LSA, Local Security Authority), uno con todos los privilegios y otro con los privilegios acotados. Este último se utiliza para crear los procesos iniciales userinit.exe y explorer.exe, así como los hijos de los mismos. Para ejecutar un proceso con el full token se requiere de una elevación UAC (User Account control), realizada por el servicio Aplication Information (Appinfo). Por lo tanto si queremos ejecutar por ejemplo un runas.exe con las credenciales de un administrador, deberemos tener en cuenta que se ejecutará con los privilegios de usuario estándar de esa cuenta. Solo hay una excepción y es el usuario administrador por defecto (que viene deshabilitado inicialmente). Por lo tanto se ha de especificar que se quiere ejecutar con permisos elevados, si queremos hacer algo que requiera privilegios más allá de un usuario normal. El modo de trabajo en UAC se puede deshabilitar y por lo tanto se vuelve al modelo de Windows XP (peligroso ya que incluso el Internet Explorer corre con máximos privilegios).

Otra curiosidad que comenta en cuanto a los procesos en Windows es que un proceso siempre registra el PID del padre, si este último muere el hijo no actualiza este registro, por lo tanto puede darse que otro proceso nuevo adquiera el PID de ese padre, pudiendo generar confusión. Este registro del proceso padre solo se hace por propósitos informativos.

Otra cosa interesante es que los hilos de un proceso pueden pasar de modo de ejecución user-mode a kernel-mode cuando necesitan realizar una operación en este nivel. Por ejemplo al leer un archivo del disco, la llamada al API de lectura de un archivo produce una transición a kernel-mode ejecutada por una instrucción de tratamiento especial que sitúa el modo de ejecución del entorno de procesamiento en kernel-mode. Entonces se produce, tras validar el acceso, la ejecución de la rutina de lectura de archivo, en este caso NtReadFile. Por último tan solo falta volver al modo de ejecución usuario. Es normal que un proceso de usuario se pase tiempo en kernel-mode y otro tiempo en user-mode. De hecho la mayoría de las aplicaciones gráficas pasan más tiempo en kernel-mode que en user-mode. Esto se puede ver con el process explorer en la gráfica de consumo de CPU (en color rojo kernel mode):

Otra cosa que me sorprendió de esta suite es la facilidad para ver los Strings de un proceso en memoria o en disco, muy útil si se quiere identificar malware. Un posible indicio de malware no solo es que presente cadenas sospechosas sino que esté comprimido el ejecutable con por ejemplo UPX. Para ello el processExplorer es capaz de marcar en color morado todos aquellos procesos que están comprimidos, lo que nos permite con tan solo abrir la aplicación obtener posibles candidatos a “bicho”.

En futuras entradas seguiremos comentando este fantástico libro 100% recomendable para los amantes de la seguridad.

Extra ball: ¿Sabían Vds que es posible montar una unidad de red con el conjunto de la suite con tan solo llamar a:

\\live.sysinternals.com\tools\ ?

Comments

  1. ¿Esto no es como un refrito de Windows Internals clásico? Lo digo para «buscar» una versión pdf.
    Process explorer y Procmon son básicos para la administración windows, aunque se hecha de menos un strace o un ltrace.

  2. Mark ha incorporado mejoras en algunas de estas herramientas, que la verdad tienen un potencial enorme, el libro está muy bien y no es muy caro para lo que nos aporta.

    PD: Ojo con lo de «buscar» pdf que me consta que el autor sigue este hilo ;)

  3. Era para leer en el ipad ;P, por cierto, he vuelto a entrar por que se me ha olvidado Dtrace el verdadero santo grial de los sysadmins :), lastima que solo este en solaris y algunos otros como BSDs y OSX.
    Xperf esta bien ( http://bit.ly/de8hs4 )pero es más complejo de manejar.
    Por cierto, Mark tiene una novela «Zero Day» si no recuerdo mal el titulo que no esta mal para una semana de vacaciones en la playa.

  4. grandes verdades! :)