Páginas

15 octubre, 2012

Renombrar o borrar perfiles locales de usuarios de dominio en Windows 7

Empezamos por decir a groso modo que; cuentas de usuario y perfiles de usuario NO es lo mismo, ya que la cuenta vamos a decir y/o entender de algún modo que son las credenciales del usuario y el perfil el contenido en un equipo de este.
En este caso me centro en los perfiles locales creados por el inicio de sesión de usuarios de Active Directory con cuentas de usuario de dominio.

Perfiles dañados

En algunos casos ocurre que los perfiles locales de alguna cuenta de usuario de dominio o locales pueden estar afectando al mal funcionamiento de este; ya sea por alguna aplicación, por corromperse los ficheros de referencia en el registro de este usuario (los ficheros NTUSER, que hacen referencia a los parámetros o preferencias del usuario en el sistema) o simplemente por fallos que solo ocurren con dicho usuario en un equipo concreto.
 
Un fallo muy habitual en usuarios de dominio por lo que tengo comprobado es encontrarnos con el siguiente aviso cuando iniciamos sesión de usuario: "Error en el inicio de sesión del servicio de perfil de usuario".

Cuando estos perfiles se corrompen, pueden hacerlo sin más y quedar tal cual están o puede darse el caso en el que cada vez que iniciemos sesión con el perfil de usuario dañado este no cargue bien el perfil y se inicie de "modo temporal", esto lo que hará es que si el perfil original se llama "Pepe", no iniciará como Pepe, si no que lo hará a través de un "Temp" la cual es una carpeta creada en la que podremos verla en 'Documents and Senttings' (WinXP) o 'Usuarios' (WinVista/7).
 
Esta carpeta representa la instancia actual de sesión iniciada del perfil que se quiso iniciar pero por causa de estar dañado generó un perfil temporal. Este perfil NO almacena ninguna información ni de configuración ni de datos relacionada con el perfil original afectado. Nos sorprenderemos si pensábamos que habíamos perdido los datos de nuestro sistema!, pero no es así.

Independientemente de si se genera una carpeta temporal 'Temp' o no. Puede darse también el caso, de que se genere una carpeta del estilo: NombreUsuario.NombreEquipo. Suponiendo que mi equipo se llama "PC-Portatil" y cogiendo el ejemplo anterior, mi usuario es "Pepe", quedaría algo tal que así: Pepe.PC-Portatil, esto es muy típico verlo en entornos de equipos unidos a un dominio, equipos corporativos. Ya que al fallar la autentificación o simplemente que no carguen de manera adecuada ciertos servicios de red-dominio en el usuario de dominio a conectarse, Windows genera un perfil con el nombre de ese usuario de forma local. O si no, formamos parte de un equipo de dominio y nos ocurre esto, es por que al igual que el anterior caso del perfil temporal, este lo genera de este modo.

Renombrar o borrar perfiles dañados o corruptos

En Windows XP esto era una tarea fácil, ya que solo bastaba con renombrar el perfil del usuario. Por ejemplo, si el usuario es "PEPE" podrías renombrar con "_PEPE" y listo. Al iniciar sesión de nuevo con este usuario se generaría un nuevo perfil "PEPE" cogido de la referencia del perfil "Default User".

Pues en Windows 7 esto no funciona de igual modo, en este caso a parte de hacer lo anterior (renombrar manualmente el perfil) también necesitamos modificar el registro de Windows, eliminando ciertas subclaves que hacen referencia al perfil local de usuario en el sistema. Esto es si lo queremos hacer de forma manual.

Aunque existe una tool recomendada por Microsoft para realizar borrados de perfiles la cual se interactúa mediante consola de comandos llamada Delprof, el cual podemos consultar sus parámetros y modo de empleo en la ayuda del comando (delprof /?) o en la propia descarga se nos adjunta un fichero mht de ayuda.

Pero lo que miraremos es como hacerlo de forma manual:

Para ello nos iríamos a la path que contiene la lista de perfiles actuales en el sistema:
HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ProfileList
Esta clave contiene diferentes subclaves por cada perfil de usuario, donde su nombre apunta a un SID (Security IDentifier) de la cuenta.
El valor de ProfileImagePath es la ruta de NTUSER.DAT para ese perfil de usuario. ProfileList no contiene un valor a la sección SID_Classes, sin embargo HKLM\SYSTEM\CurentControlSet\Control\hivelist contiene un valor por cada sección en HKLM y HKU que el sistema está actualmente utilizando. La diferencia entre los valores ProfileList y HiveList son en que:
  • ProfileList: Contiene una lista de todos los perfiles de usuario de los que Windows tiene constancia de su existencia.
  • HiveList: Contiene una lista de todas las secciones actualmente cargadas.
Lo que tendremos que hacer después de renombrar o eliminar la carpeta del perfil de usuario es eliminar la subclave entera del registro que apunta a dicho perfil. De modo que al iniciar sesión de nuevo en el equipo este vuelva a cargar las configuraciones del usuario y cree valores por defecto del perfil de referencia "Default User" y genere un nuevo SID para este usuario y que así vuelva apuntar a este de forma correcta.

También podremos eliminar el perfil a través de la opción "correcta" que nos ofrece Windows en: "Ejecutar -> sysdm.cpl" (Equipo -> Propiedades -> Configuración avanzada del sistema) -> Opciones avanzadas -> Perfiles de usuario -> Configuración -> Seleccionamos el perfil afectado -> Eliminar.

En el caso de NO ver claramente el nombre del perfil afectado, nos podremos encontrar algo como "Cuenta desconocida", esto ocurre por lo hablado anteriormente donde comentaba los "Perfiles dañados".

Si solo nos aparece una de estas cuentas la eliminamos sin piedad, si vemos más cuentas de este estilo, podemos eliminarlas igualmente ya que deben ser cuentas dañadas en un pasado, o si queremos dejarlas "por si a caso" y solo borrar el perfil dañado actual, podemos fijarnos en la "fecha de modificación" o el "tamaño del perfil" como referencia.

Antes mencionaba que esta sería la opción correcta de borrar un perfil. Por qué?.
Porqué Windows lo que hace es eliminar la carpeta de perfil y el SID del registro en un mismo paso, excepto el nombre de cuenta de usuario lo podemos ver en: (Ejecutar -> lusrmgr.msc).

Personalmente si todo está bien, los borro de este último modo, pero si los perfiles están corruptos prefiero hacerlo todo de manera manual.

Si la carpeta del perfil ya está borrada y simplemente se nos crea un TEMP cuando iniciamos con el usuario afectado, entrando en el registro de Windows vemos que aparece un SID con la terminación .bak lo que haremos será renombrar ese SID, QUITANDO esa extensión .bak. Quedando solo la clave con el identificador a mostrar.

Nos fijaremos al entrar en cada clave el valor del "ProfileImagePath", este nos mostrará el usuario relacionado con ese SID.

Figura 1: Eliminando SID de usuario con problemas del registro de Windows 7.

Ahora bien, si solo vemos una carpeta con el SID de usuario y solo ese SID tiene un .bak al final y no hay ningún otro TEMP, ni ningún SID del mismo usuario duplicado, simplemente nos bastaría con poner a 0 los contadores. Estos contadores son valores del registro de esa clave en en ese SID en cuestión.

Podríamos a "0" los valores: RefCount y State.

Más info. de este último caso: http://support.microsoft.com/kb/947215/es

Con esto solucionaremos la mayoría de problemas de este tipo y estaremos renombrando perfiles locales de usuarios de cuentas de dominio de la manera que yo conozco más adecuada y fiable.

Otra forma de borrar perfiles de usuario de dominio de forma más gráfica

Esto SOLO BORRAR (no renombrar), según "lo aconseja Microsfot" y también igualmente válida y "limpia", es directamente borrar o eliminar un perfil de usuario tanto la carpeta de perfil como la clave de registro SID en ProfileList que apunta a el, esto se puede hacer directamente desde las propiedades de sistema (sysdm.cpl), en la pestaña de Opciones avanzadas > Configuración... 

Figura 2: Configuración para perfiles de usuario en: Opciones avanzadas de propiedades del sistema.

Una vez situados aquí, podremos seleccionar el perfil afectado y directamente eliminarlo. Esto hará que se borre completamente la carpeta de usuario creada en el sistema así como la clave de registro SID que apunta a el.

Lo que no será borrado es la cuenta local (en el caso de que sea local y no de dominio) de usuario creada (podemos verla en lusrmgr.msc) y digo cuenta de usuario, no perfil de usuario.

Lo cual esto dependerá de si lo queremos borrar definitivamente tendríamos que borrar también la cuenta a parte, o si solo queremos eliminar el perfil y volver iniciar sesión con dicho usuario local creado, de forma que se solucione algún problema en concreto.

Figura 3: Eliminación de la carpeta local del perfil + SID de ProfileList del registro de Windows.

Por último decir que esta última opción en ocasiones (en un pequeño porcentaje), no funciona correctamente ya que nos puede saltar algún tipo de error en la eliminación de perfil, en ese caso lo haremos de forma manual como expliqué más arriba de este artículo.

Espero que tanto la solución manual como esta última, la más gráfica, las dos propuestas por Microsoft, sea de utilidad a muchos para realizar esta tarea.

Saludos!

11 septiembre, 2012

Habilitar o deshabilitar los recursos compartidos administrativos por defecto de Windows sin eliminarlos completamente (C$ ADMIN$)

Windows crea una serie de recursos compartidos por defecto que están "ocultos", pero que en realidad pueden ser accesibles de una forma muy sencilla mediante una ruta UNC tipo \\nombreDeEquipo o dirección IP\nombreRecursoCompartido$. Por ejemplo para acceder al disco local del equipo remoto \\192.168.1.12\c$. Si en el equipo hay definido un usuario con password nos solicitará estas credenciales para poder acceder.

En entornos corporativos bajo un dominio Active Directory es habitual que el personal de TI use estos recursos compartidos administrativos para una gestión y administración de las máquinas. En equipos personales (que no estén unidos a un dominio) recomiendo deshabilitar los recursos compartidos administrativos si no son necesarios.

El símbolo $ en Windows establece que ese recurso compartido se mantiene oculto al resto de la red y que solamente conociendo el nombre del recurso compartido podríamos acceder a el.

Recursos compartidos administrativos

  • LetraUnidad$: El volumen compartido de forma completa, normalmente C:\ pero a cualquier unidad de medio extraíble conectada al equipo se le crearía un recurso compartido por defecto.
  • ADMIN$: Se utiliza durante la administración remota de un equipo.
  • IPC$: Comparte las canalizaciones con nombre que debe tener para la comunicación entre programas. Este recurso no puede eliminarse.

En Windows Server también encontramos

  • PRINT$: Permite la administración remota de impresoras.
  • FAX$: Utilizado por los clientes de fax, durante la transmisión de fax.

Recursos compartidos administrativos especiales en Windows Domain Controllers

  • NETLOGON: Procesa las solicitudes de inicio de sesión de dominio.
  • SYSVOL: Controla la replicación de Active Directory, GPOs, etc.
Estos recursos compartidos los encontramos en la consola de administración de carpetas o recursos compartidos fsmgmt.msc (File System ManaGeMenT). También podremos acceder a través de la consola de componentes de administrador de equipos compmgmt.msc (Component Management).

Figura 1: Consola de Microsoft de Recursos compartidos fsmgmt.msc.

Deshabilitar los recursos compartidos administrativos por seguridad

Un posible atacante que de algún modo conozca unas credenciales de acceso válidas o pueda realizar un bypass de esta autenticación a través de alguna vulnerabilidad existente en la máquina podría lograr acceso a estos recursos.

Hay que tener en cuenta que ciertas aplicaciones de bases de datos y/o servidores de correo pueden trabajar con estos recursos compartidos para su correcto funcionamiento. Si utilizamos alguna aplicación que puede estar utilizando estos recursos lo mejor es que ya no toquemos nada, igualmente en la mayoría de este tipo de situaciones suelen ocurrir dentro de organizaciones corporativas.

Habilitar o deshabilitar recursos compartidos administrativos: C$ y ADMIN$

Abrimos la consola de recursos compartidos locales fsmgmt.msc, manualmente podemos dejar de compartir estos recursos, pero en el caso de que los necesitemos en un futuro no los podríamos volver a restaurar de forma automática. Dejarlos sin compartir o eliminarlos manualmente no sería una buena práctica, lo aconsejable sería deshabilitarlos y tener la posibilidad de recuperarlos en un futuro si fuese necesario.

Lo podemos hacer mediante el registro de Windows regedit. Nos situamos en la siguiente ruta.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  1. Creamos un valor tipo DWORD 32 bits
  2. Llamado AutoShareWks.
  3. Asignamos el valor 0.
0 = Deshabilita los recursos compartidos administrativos.
1 = Habilita los recursos compartidos administrativos.

Para aplicar los cambios podemos reiniciar la máquina o simplemente reiniciar el servicio "Servidor" LanmanServer.

Podemos reiniciarlo también a través de una consola cmd.
net stop lanmanserver
net start lanmanserver
Figura 2: Servicio "Servidor" LanmanServer.

Restaurar recursos compartidos administrativos NETLOGON y SYSVOL en un controlador de dominio Windows Server

Microsoft recomienda que no se elimine ni modifique estos recursos compartidos especiales en el caso de NETLOGON y SYSVOL en un controlador de dominio Windows Server. Si se eliminaron los recursos compartidos administrativos predeterminados o si la creación automática de estos recursos compartidos está desactivada, para restaurar los recursos compartidos de modo que se creen automáticamente en un controlador de dominio Windows Server.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  1. Creamos un valor tipo DWORD 32 bits
  2. Llamado AutoShareServer.
  3. Asignamos el valor 1.
Con valor 1 creará los recursos automáticamente. Con valor 0 se deshabilitaría la creación automática de recursos compartidos especiales.


Saludos!

Entradas Populares