You are on page 1of 9

SYSTEM, causa y efecto Examinaremos las sutiles diferencias entre un usuario administrador y un usuario de sistema (SYSTEM).

Estas diferencias, sern cruciales a la hora de decidir qu tipo de cuenta ser necesaria para la explotacin de un fallo en el sistema, o decidir si es o no imprescindible el uso de tcnicas para ganar una posible elevacin de privilegios. Tambin nos ayudarn a conocer el porqu de ciertos comportamientos dispares entre cuentas aparentemente similares. A nivel de sistema operativo, tanto la cuenta Administrador como la cuenta de sistema, son cuentas con los mismos privilegios. Esta equidad, slo se manifiesta a nivel de ficheros. A nivel de directorios, la cuenta SYSTEM tendr, obligatoriamente por diseo del sistema operativo, mayores privilegios que una cuenta de tipo Administrador. La cuenta SYSTEM, es usada por el sistema operativo para la carga o precarga de elementos cruciales en el inicio del sistema operativo. Servicios y procesos que necesita Windows para el buen funcionamiento del sistema, y para el inicio del mismo. La cuenta, diseada para ese propsito, es una cuenta interna, y por tal motivo, no podemos administrarla utilizando funciones bsicas de administracin, como por ejemplo las siguientes:

Administracin de usuarios Aadir o eliminar de grupos Derechos especiales de usuario Para demostrar esto, se pueden utilizar dos ejemplos bsicos. Uno es a nivel de ficheros, y otro por ejemplo, es a nivel de Registro. En Windows XP, por defecto la cuenta SYSTEM tiene control total en todos los ficheros y directorios del sistema operativo, y no como la cuenta Administrador, que tiene control total en casi todos los elementos del sistema. Un ejemplo vlido es la carpeta SYSTEM VOLUME INFORMATION, ubicada en la raz del sistema instalado, y que tiene como objetivo el almacenamiento de las copias de seguridad o puntos de restauracin. Si se intenta obtener acceso a este directorio a travs de una cuenta con privilegios nicamente de administrador, obtendremos un bonito error, ya que a nivel NTFS, no tenemos privilegios.

Imagen 1.- Acceso denegado en SYSTEM VOLUME INFORMATION Otro ejemplo vlido lo tenemos a la hora de visualizar elementos del registro de Windows. La cuenta SYSTEM tiene, por diseo del propio sistema operativo, control total sobre ciertas claves de registro, imprescindibles para el buen funcionamiento del mismo. Algunos de estos ejemplos son la clave SAM, en donde se almacenan los datos de los usuarios existentes en el sistema, y la totalidad de los permisos en la clave SECURITY, ubicada en la clave HKLM (HKEY LOCAL MACHINE). En la siguiente imagen, se puede visualizar un ejemplo de este tipo.

Imagen 2.- Elementos de registro visibles a travs de la cuenta SYSTEM A partir de Windows Vista en adelante, en el apartado referente al control de ficheros y directorios, y siempre hablando a nivel NTFS, se aade una nueva entidad con control total en el sistema. Esta entidad, llamada TrustedInstaller, es la encargada de una nueva caracterstica en Windows Server 2008 y Windows Vista/7, llamada Windows Resource Protection.

Imagen 3.- Lista de control de acceso discrecional en Windows 7 A la hora de administrar un equipo basado en Windows, siempre hay que pensar, como mnimo, en la existencia de dos usuarios iniciados como mnimo en el sistema operativo. Uno de estos usuarios podr ser una cuenta, como mximo, con un privilegio de cuenta administrativa, y como mnimo, con el mnimo privilegio posible, o lo que es lo mismo, con una cuenta de usuario o usuario de dominio. La otra cuenta, ser la cuenta SYSTEM, que ser la encargada de administrar las operaciones internas que necesite realizar el sistema. Cuentas como SYSTEM o LOCALSYSTEM, son cuentas que no tienen contraseas asociadas a ellas, y cualquier intento de asociar una credencial a ellas, como por ejemplo a la hora de utilizar estas cuentas para iniciar un servicio, sern ignoradas por el propio sistema operativo. Tambin este tipo de cuentas, al ser internas del propio sistema operativo, tampoco tienen un perfil asociado en el administrador de cuentas del sistema (SAM), tal y como se puede ver en la siguiente imagen.

Imagen 4.- Cuentas extradas a travs de la SAM A cada cuenta de usuario, se le asocia un perfil, una vez que se autentica correctamente en el sistema por primera vez. Este perfil, ser el que utilice para las tareas comunes del sistema, y ser en su perfil, en donde se guardar toda la informacin y modificacin que sobre esta sesin realice. Los perfiles de usuario, en sistemas basados en Windows XP/2003 se almacenan en el directorio DOCUMENTS AND SETTINGS. En sistemas basados en Windows Vista/7/2008, estos perfiles se almacenan en la raz del sistema operativo, en el directorio USERS. Cada cuenta, a su vez, puede iniciar sesin en el sistema de forma independiente, y compartir sesiones entre diferentes usuarios al mismo tiempo, con la nica diferencia de que cada cuenta cargar nica y exclusivamente su perfil. Cuando el sistema operativo arranca, ste necesita cargar en memoria aplicaciones y claves de registro en el inicio del mismo. Estas tareas, las realiza la cuenta SYSTEM por diseo. A la hora de autenticarse en el sistema, Windows carga un subsistema de autenticacin llamado MSGINA (Componentes de identificacin y autorizacin). Este subsistema, es el que utilizaremos para autenticarnos debidamente en el sistema. Por diseo, Windows tambin carga componentes de accesibilidad, necesarios para personas con carencias fsicas, tales como falta de visin, miembros amputados, etc, etc Por otra parte, la cuenta SYSTEM, tambin es utilizada a nivel de polticas de grupo en equipos que formen parte de los servicios de Directorio Activo, para asuntos relacionados con la instalacin y desinstalacin de aplicaciones, ejecucin de scripts, etc, ya que existen polticas de grupo a nivel de mquina, y a nivel de usuario. Windows tambin tiene otras cuentas de usuario asociadas a la creacin y administracin de servicios. En sistemas basados en Windows XP/2003, estas cuentas, tienen sus perfiles de usuario ubicados en el siguiente directorio:

Imagen 5.- ubicacin de perfiles de sistema en Windows XP/2003 En sistemas basados en Windows Vista/7/2008, los perfiles de estas cuentas se almacenan en:

Imagen 6.- Ubicacin de perfiles de sistema en Windows Vista/7/2008 Dicho esto, y para resumir, si en un sistema basado en Windows XP por ejemplo, existe como mnimo una cuenta SYSTEM arrancada en el sistema antes de iniciar sesin, sta cargar con su perfil nica y exclusivamente, pero

Dnde se encuentra ese perfil?? La cuenta SYSTEM, al ser una cuenta especial de usuario del propio sistema, tiene una ubicacin propia. A partir de Windows XP, la ruta en donde se encuentra este perfil de usuario, es la siguiente:

Imagen 7.- Ubicacin del perfil de usuario de la cuenta SYSTEM A nivel de sesiones, las cuentas de sistema, se comportan de diferente manera a las cuentas de usuario normales, ya que cada cuenta se ejecuta en una sesin diferente, y por ende, en diferentes espacios de memoria. Si por ejemplo un usuario normal, crea un objeto nuevo en el sistema operativo, y tiene control total sobre el mismo, puede que la cuenta de SYSTEM, no pueda tener privilegios para tener acceso a ese objeto. Un ejemplo vlido lo tenemos con el comando SUBST. Este comando, permite asociar una unidad fsica del sistema a un determinado PATH. Dependiendo de quin cree este objeto en el sistema, y en qu sesin de usuario se haya ejecutado el comando, un usuario podr tener control total sobre l, y el otro no.

Imagen 8.- Acceso a objetos. El usuario SYSTEM no accede al objeto Pero como toda ley, tiene su trampa. Si se necesita obtener acceso a ese objeto, siempre se puede recurrir a la impersonalizacin, es decir, utilizar la capacidad de poder ejecutar cdigo bajo un contexto de seguridad distinto al de nuestro usuario. Para que un usuario pueda suplantar a otro cliente tras la autenticacin, es necesario tener un determinado privilegio. Este privilegio se llama SeImpersonatePriviilege, y en Windows Vista/7/2008 se puede visualizar con el comando WHOAMI /PRIV.

Imagen 9.- Privilegios para impersonalizar a otro usuario Un SID, o identificador de seguridad, es una estructura para identificar inequvocamente a un usuario o un grupo especfico. Desde Windows NT, esta estructura se encuentra definida en la librera WINNT.H. La estructura de un SID contiene, entre otros, los siguientes elementos:

Revisin del SID Un identificador de autoridad que identifica la autoridad de ese SID Un identificador relativo (RID), el cual identifica unvocamente un usuario o grupo, en relacin a la autoridad asignada al SID La combinacin del identificador de autoridad, unido a los identificadores de las sub-autoridades, asegura que no haya dos valores SID iguales. El formato de un SID se forma usando una cadena estandarizada, la cual hace ms fcil la identificacin de sus componentes. El formato de cadena de un SID es el siguiente: S-R-I-S[VALORES] En donde:

Imagen 10.- Relacin Valores & Especificacin Aplicando los elementos anteriores, un SID vlido sera el siguiente: S-1-5-32-545 En donde la traduccin de este SID sera la siguiente:

Imagen 11.- Valores e identificacin Si se quieren obtener los SID validados en el sistema operativo, stos se pueden extraer de varias formas. Una forma gil de obtener los SID del sistema operativo, es utilizando herramientas ya creadas especficamente para este tipo de usos. Las ms conocidas con GETSID, del Kit de recursos de NT, y PSGETSID, de la archiconocida

SysInternals. La utilizacin de este tipo de herramientas no conlleva ningn tipo de problemas, y su uso es rpido e intuitivo.

Imagen 12.- Uso de PsGetSid Otra va de acceso a los SID validados en un sistema operativo es por el registro de Windows. Las claves asociadas que guardan informacin relativa a un SID de usuario son varias, pero las ms usuales y prcticas son las siguientes: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList HKEY_USERS

Imagen 13.- SID en Registro de Windows Otra forma rpida, fcil, y para toda la familia, es a travs de Scripting. WMI y PowerShell, tienen capacidad para obtener todas las clases asociadas a un SID, y extraer la informacin de manera gil. Gracias a que PowerShell tiene acceso rpido a toda la sintaxis de WMI, se puede scriptar todos los comandos de manera sencilla.

Imagen 14.- Extraccin de SID a travs de PowerShell nos centraremos en cmo la cuenta SYSTEM se comporta a la hora de ser utilizada de forma interactiva. Para ello, y en el banco de pruebas que hemos montado, realizaremos una elevacin de privilegios, tal y como se ha comentado ampliamente por la Red. Tenis artculos con formas de realizar este tipo de elevacin en los siguientes links: http://vtroger.blogspot.com/2005/09/mas-vale-quedarse-corto.html http://www.securitybydefault.com/2010/12/bienaventurados-los-que-no-ven-porque.html Al realizar el truco, (que no vulnerabilidad) y cambiar alguno de los componentes de accesibilidad por una Shell de Windows, sta se iniciar de forma interactiva y podremos interactuar con la misma. Entre las curiosidades iniciales que nos encontraremos, podremos enumerar las siguientes:

El panel de control, no funciona El explorador de Windows, junto con el escritorio, funciona de forma parcial La Shell finaliza al cabo de un tiempo El acceso total al sistema, lo tenemos nica y exclusivamente a travs de la lnea de comandos. Esta irregularidad viene dada por culpa de las claves de registro que se asocian a cada perfil de usuario. Cuando un usuario se crea en el sistema, ste recibe un perfil de usuario. La cuenta de sistema, es decir, la cuenta SYSTEM, precarga en memoria la clave HKEY_LOCAL_MACHINE, y el usuario que trabaja de forma interactiva en el sistema cargar a su vez la clave HKEY_CURRENT_USER, la cual se carga a travs de un fichero en el perfil de usuario, que se llama NTUSER.DAT. Si realizamos una comparacin de las claves de registro que crea en el perfil la cuenta SYSTEM, con las que se crean cuando iniciamos sesin con una cuenta de usuario normal, podremos ver ciertas caractersticas que no se encuentran en el perfil de SYSTEM. Si analizamos esas claves con alguna herramienta que permita abrir este tipo de ficheros (NTUSER.DAT), podremos ver ese tipo de diferencias, y contemplar qu claves carga la cuenta SYSTEM cuando inicia sesin en el sistema. Para el desarrollo de este artculo, se utilizar la herramienta Windows Registry Recovery, la cual nos permite visualizar este tipo de ficheros de forma amistosa y rpida.

Imagen 15.- Claves cargadas por el usuario SYSTEM en Windows 7

Como se puede ver en la anterior imagen, la cuenta SYSTEM carga lo justo y necesario para realizar su trabajo, sin cargar ms de lo necesario.

Imagen 16.- Claves cargadas por un usuario tpico en Windows 7 En cuando a la imagen anterior, se puede visualizar que un usuario tpico, carga lo que necesita para poder interactuar con el sistema. Algo lgico por parte del sistema operativo, ya que estos usuarios son los que estn diseados para trabajar de manera interactiva con el sistema. Por otra parte, el usuario SYSTEM, opera desde la instancia HKEY_USERS\.DEFAULT. Esta instancia, es en realidad un alias de HKEY_USERS\S-1-5-18, instancia que identifica al SID de la cuenta SYSTEM. Al inicializar la elevacin de privilegios, y siempre que no se inicie otro usuario en el sistema, la cuenta SYSTEM, utilizar una instancia que se cargar en 3 sitios diferentes. La ruta de carga es la que se muestra a continuacin:

HKEY_CURRENT_USER HKEY_USERS\.DEFAULT HKEY_USERS\S-1-5-18 Para verificar lo anterior, desde la Shell de comandos arrancada cuando se realiza la elevacin de privilegios, se puede crear una clave en HKEY_CURRENT_USER. Esta clave, se mostrar a su vez en las claves HKEY_USERS\.DEFAULT y HKEY_USERS\S-1-5-18.

Imagen 17.- Instancias cargadas por el usuario SYSTEM

Imagen 18.- Instancias cargadas por el usuario SYSTEM Estas instancias, a su vez, contienen la informacin para interactuar con el sistema, es decir, contienen las claves de registro necesarias para lanzar un escritorio interactivo, pero tienen pequeas diferencias. Estas diferencias, analizadas con cualquier herramienta de monitoreo, muestran como a la hora de lanzar el escritorio interactivo, ste falla al intentar encontrar ciertas claves de registro, necesarias para mostrar iconos, accesos directos, y rutas de lanzamiento a las aplicaciones. El efecto final es que el sistema operativo es capaz de pintar el escritorio, pero al no encontrar rutas a las aplicaciones, ni accesos directos que llamen a un programa, ste se queda a medias.

Imagen 19.- Rutas no encontradas

You might also like