domingo, 26 de julio de 2009

Mitos y leyendas: El Directorio Activo (IV) (La consola de recuperación)

La consola de recuperación es el siguiente paso que hay que dar en caso de que ninguna opción de inicio pueda solventar un problema. Mediante la consola (a la que casi siempre se tendrá acceso independientemente de la gravedad del problema) es posible activar o desactivar servicios, borrar archivos (en NTFS) y otras muchas acciones administrativas a través de unos pocos comandos muy útiles. Como de costumbre, hay que conocerla antes de que realmente haga falta, e incluso preparar el sistema para poder hacer uso de ella con comodidad cuando sea necesario.

Dos formas de llegar a ella

Existen dos opciones para acceder a esta consola. Una es la que conoce casi todo el mundo: si se dispone del CD de instalación (o desde los antiguos seis disquetes de inicio de Windows 2000), se debe pulsar la tecla R cuando se requiera. La otra fórmula es desde el mismo menú de arranque, pero para esto, antes es necesario que haya sido instalada previamente la consola de recuperación en el disco. Es muy útil en casos de emergencia cuando el CD de arranque o el lector no están operativos o no se tienen a mano.

Para integrar la consola en el sistema, es necesario acceder a la carpeta i386 del CD de instalación y ejecutar

winnt32.exe /cmdcons

Una vez reiniciado el equipo, la consola de recuperación aparecerá como una opción más del menú de arranque (F8) y los CD originales del sistema ya no serán necesarios para acceder a ella. Internamente, lo que se ha hecho es instalar la consola y modificar el archivo boot.ini de Windows.

Comandos

Cuando exista algún problema y sea necesario recurrir a la consola de recuperación, nos pedirá definir el sistema "a recuperar" (aunque haya sólo uno) y se deberá introducir la contraseña de administrador local. Esto puede suponer un problema de seguridad del que hablaremos más abajo.

Un resumen de los comandos más interesantes de la consola de recuperación son:

* BATCH: Permite crear ficheros por lotes, de forma que una secuencia de comandos muy habitual pueda ser ejecutada a través de un simple comando.

* BOOTCFG: Configura boot.ini para añadir instalaciones de Windows. Permite los parámetros: /SCAN (para descubrir las instalaciones de Windows disponibles), /ADD (para agregar una de las instalaciones al menú de inicio), /REBUILD (para reconstruir el menú de inicio a partir de las instalaciones disponibles), /DEFAULT (para definir el arranque predeterminado) y /REDIRECT (permite redirigir la consola a un puerto serie para administrar un servidor sin pantalla ni teclado).

* CHDIR ó CD: funciona como el CD habitual de consola de comandos, pero recordando que para usar directorios con espacios hay que encerrar el nombre entre comillas.

* CHKDSK: comprueba y repara la unidad de disco. Se puede forzar la comprobación con la opción /P.

* ENABLE Y DISABLE: Desactiva un servicio. Es de los comandos más útiles junto con LISTSVC, que muestra el nombre. DISABLE muestra el estado del servicio antes de deshabilitarlo.

* DISKPART: Permite manejar particiones y volúmenes. (Muy útil y desconocido).

* FIXBOOT: reescribe el sector de arranque de la partición indicada.

* FIXMBR: Repara el MBR de un disco físico. Para indicarle cuál, se puede usar MAP, que muestra los discos disponibles, los sistemas de archivo, tamaños y correspondencias con los discos físicos.

* LOGON: Permite presentarse en otras instalaciones de Windows.

* TYPE: Muestra un fichero.

* SET: Muestra o modifica los cuatro valores de entorno: AllowWildCards, AllowAllPaths, AllowRemovableMedia y NoCopyPrompt.

Existen más comandos, que se pueden ver a través de la ayuda HELP. El comando SET Es necesario tener muy en cuenta algunos aspectos antes de lidiar con la consola de recuperación, o su uso nos parecerá muy limitado. En especial con el comando SET, cuyas opciones están a FALSE por defecto.

* AllowWildCards: Si no está activo, la consola no permitirá el uso de comodines tipo *.*.

* AllowAllPaths: Si no está activo, no permitirá que nadie (ni siquiera el administrador) pueda acceder a las carpetas de usuario y otros puntos del sistema. Prácticamente no se podrá acceder a nada que esté fuera del directorio de sistema Windows.

* AllowRemovableMedia: Permite que los ficheros sean copiados a
disquetes, por ejemplo.

* NoCopyPrompt: No pregunta para sobreescribir archivos.

Todas están a FALSE por defecto (desactivadas). Hay que recordar que las opciones AllowRemovableMedia y AllowAllPaths no pueden ser establecidas a TRUE (activadas) si previamente no han sido "autorizadas". Pero no pueden ser autorizadas desde la consola, sino que debe hacerse cuando el sistema todavía es usable. En resumen, el comando SET permite añadir potencia a la consola de recuperación, pero algunas de sus opciones vienen desactivadas por defecto, y es el administrador el que debe decidir si quiere autorizar su uso o no antes de verse obligado a utilizar la consola en sí. Se trata de una medida preventiva de seguridad, para evitar que la consola de recuperación se convierta en un vector de ataque. Es algo que hay que prever antes de hacer uso de la consola o una vez que ocurra un desastre será demasiado tarde.

Autorizando comandos SET

Para poder usar el comando SET, es necesario modificar la directiva de seguridad "Consola de recuperación: permitir la copia de disquetes y el acceso a todas las unidades y carpetas", en las opciones de seguridad de Windows.

La otra directiva "Consola de recuperación: permitir el inicio de sesión administrativo automático" es un problema de seguridad y no debería ser activada. Permite acceder a la consola de recuperación sin necesidad de introducir la contraseña local de administración.

Automatizando el proceso, un ejemplo práctico

Por ejemplo, un sistema no arranca y se determina que puede ser por fallos en los ficheros críticos ntdetect.com y ntldr. Un procedimiento sencillo sería restaurarlos desde el CD a través de la consola de recuperación. Se podría preparar además un disquete o USB con este archivo de texto en él:

Set allowRemovableMedia = True
Set NocopyPrompt = True
Fixboot c:
FixMbr
Chkdsk c:
Attrib -r c:\ntldr
Attrib -r c:\ntdetect.com
Copy d:\i386\ntldr c:\ntldr
Copy d:\i386\ntdetect.com c:\ntdetect.com
Attrib +r c:\ntldr
Attrib +r c:\ntdetect.com

Hay que usar un espacio en cada lado del signo "=". Si no se hace, el comando genera un mensaje de error de "error de sintaxis" y no funciona. Como se observa fácilmente, este lote de comandos intentaría arreglar el sector de arranque, el boot.ini, comprobaría el disco, y modificaría los archivos (siempre quitando antes el permiso de "solo lectura").

Sólo habría que lanzar la consola (bien introduciendo el CD, bien desde el menú de arranque si se ha instalado) y ejecutar una vez en ella:

batch a:\recover.txt

o la unidad donde se encuentre el archivo.


Sergio de los Santos
ssantos@hispasec.com


Más información:

una-al-dia (11/07/2009) Mitos y leyendas: El Directorio Activo (III) (Última configuración buena conocida)
http://www.hispasec.com/unaaldia/3914

una-al-dia (06/07/2009) Mitos y leyendas: El Directorio Activo (II) (Instalación segura)
http://www.hispasec.com/unaaldia/3908

una-al-dia (25/06/2009) Mitos y leyendas: El Directorio Activo (I) (Conceptos)
http://www.hispasec.com/unaaldia/3897

No hay comentarios:

Publicar un comentario en la entrada