Hoy en día es muy normal que tengamos instalado varios sistemas operativo en

un mismo ordenador, y que utilicemos un gestor de arranque como Lilo o Grub
para seleccionar que sistema operativo queremos arrancar.
El gestor de arranque es un pequeño programa que se instala en el registro de
arranque maestro (MBR:Master Boot Record), por lo que el sistema de arranque
es el primer programa que se ejecuta una vez completado el inicio normal de la
BIOS, es entonces cuando nos indicará el sistema operativo que queremos elegir.
Como ya se ha comentado lo dos gestores de arranque más conocidos son Lilo y
Grub, los cuales veremos en detalle su funcionamiento y como protegernos ante
los posibles peligros.
Lilo:
Lilo ("Linux Loader") es un gestor de arranque de Linux que te permite iniciar este
sistema operativo junto con otras plataformas en el mismo ordenador. Fue
desarrollado inicialmente por Werner Almesberger, y actualmente está a cargo de
John Coffman. Lilo funciona en una variedad de sistemas de archivos y puede
arrancar un sistema operativo desde el disco duro o desde un disco flexible
externo. En las primeras distribuciones de Linux Lilo era el gestor de facto utilizado
para arrancar el sistema, pero en la actualidad es una segunda opción en favor del
gestor de arranque GRUB, aunque a mucha gente le sigue gustando usarlo.
La configuración de Lilo se realiza mediante su fichero de configuración que se
encuentra en /etc/lilo.conf, este fichero contiene todas las posibles opciones de
Lilo y para aplicar su configuración es necesario ejecutar el comando lilo.
Un posible fallo de seguridad que tiene cualquier gestor de arranque de Linux, es
el arranque en el nivel de ejecución 1, este nivel más conocido como monousuario
permite ejecutar unos pocos comandos, las conexiones de red están desactivadas
y los controladores de hardaware no se activan, lo único que se activa es la
consola del sistema. Este modo es útil para realizar reparaciones del sistema y
mantenimientos, y ningún otro usuario puede acceder al sistema, de ahí su
nombre monousuario, con lo que el atacante tendrá una consola a su disposición.

el cual define el comportamiento del sistema en cada uno de los niveles de ejecución. es el de los sistemas operativos o nucleos alternativos. es posible que la línea citada ya se encuentra en el fichero con lo que sólo habría que descomentarla. Pero estos viejos nucleos pueden contener errores que . y luego añadiendo: su:s:wait:/sbin/sulogin De esta forma. Otro de los problemas de seguridad relacionados con los gestores de arranque. ubicado normalmente en el directorio /sbin. esto es una buena idea para garantizar la estabilidad del sistema y su posible recuperación.Para acceder en modo monousuario en Lilo. sulogin le obligará a introducir la constraseña de root antes de ofrecerle una shell. cuando un usuario arranque la consola en modo monousuario. y tiene que existir una línea como esta: SULOGIN=yes De esta forma se ejecuta sulogin en todos los arranques del sistema. cada vez que se actualiza el kernel lo normal es dejar una copia del núcleo anterior por si acaso el nuevo núcleo falla. por ejemplo en Debian el fichero a modificar es /etc/defaults/rcS. por lo que podemos configurar el sistema para que ejecute este comando cuando se acceda en modo monousuario. es una buena idea que el arranque se realice mediante sulogin. esto se hace editando el fichero /etc/inttab. Esta forma de forzar la ejecución de sulogin puede cambiar según la distribución. hay que borrar el nombre del sistema seleccionado y escribir: linux 1 o esto otro: linux s Para evitar este problema de seguridad. la mayoría de distribuciones de Linux contienen dicho comando.

nada más fácil que añadir a nuestro fichero de configuración de lilo una nueva línea(password) con una contraseña. entonces el núcleo de linux ejecutaría esta shell y nos daría acceso de root. tal y como puede observarse a continuación: # Partición linux image=/vmlinuz password=contraseña root=/dev/hdc1 label=linux read-only # Partición linuxOld image=/vmlinuzOld password=contraseña root=/dev/hdc1 label=linux read-only De esta forma sólo se podrá iniciar ese núcleo si se proporciona la contraseña correcta. pero que se solicite contraseña si se le envían argumentos al núcleo. para eso tendríamos que añadir al fichero de lilo la palabra restricted junto con la de password: . La mejor forma de contrarestar este hecho. por ejemplo podríamos hacer: linux init=(comando) Con lo que el núcleo de Linux ejecutará el comando que se encuentre en el init.pueden ser explotados. Para protegernos de este tipo de ataques. es modificar ligeramente el comportamiento de lilo para que se permita arrancar un núcleo sin solicitar contraseña si no se introducen argumentos en la línea de comandos. Además también se puede especificar el nivel de arranque mediante la utilización del comando init. por ejemplo si pusiésemos /bin/bash/.

hay que asegurarse que las contraseñas que hemos intriducido en el fichero de configuracion /etc/lilo.N4QQ7nEt.conf para nuestras imagenes no quedan a la vista de los atacantes. simplemente no poniendo las palabras password o restricted dentro de la imagen del núcleo. para evitar esto la solución más sencilla es hacer que el único usuario que pueda leer el fichero lilo. pero es aconsejable aplicar las restricciones a las imagenes para personalizar nuestro arranque según cada necesidad.dpuf . ya que en lilo las contraseñas se almacenan en texto plano.conf .es/gestores-arranque-partei#sthash.websecurity.conf sea el root.# Partición linux image=/vmlinuz password=contraseña restricted root=/dev/hdc1 label=linux read-only # Partición linuxOld image=/vmlinuzOld password=contraseña root=/dev/hdc1 label=linux read-only Aunque también es posible aplicar de forma global estas restricciones.conf chmod 600 /etc/lilo.See more at: http://www. y eso es tan sencillo como hacer: chown root:root /etc/lilo. Por último.

Entre todas las características de Grub. ya que permite que el administrado ejecute cualquier comando desde la línea de comando de Grub. hay que destacar la posibilidad de incluir múltiples formatos de ejecutables. y que fue desarrollado principalmente por Erich Boleyn. el arranque de sistemas operativos no-multiarranque. hoy en día es muy normal que tengamos instalado varios sistemas operativo en un mismo ordenador. es que al tener un línea de comando tan potente se puede conseguir información sobre el sistema. Grub: Grub es un gestor de arranque más moderno que Lilo. y en la siguiente pantalla hay que localizar la línea que comienza con el texto kernel y volver a presionar la tecla E para editarla. presionar la tecla B para arrancar el núcleo con acceso de root. es muy sencillo indicar a Grub que arranque el núcleo en modo monousuario.Como ya comente la semana pasada en Gestores de arranque: Parte I. Otro de los problemas. tenemos que esperar a que aparezca la pantalla de Grub y luego hay que seleccionar el sistema operativo que queremos arrancar. ya que un atacante podría ejecutar por ejemplo: cat /etc/passwd ó cat /etc/shadow . ahora sólo quedaría añadir al final de la línea de texto lo siguiente: single Y por último. una vez editada la línea. Es más flexible que Lilo. y que utilicemos un gestor de arranque como Lilo o Grub para seleccionar que sistema operativo queremos arrancar. Al igual que ocurría con Lilo. Para evitar este tipo de riesgos de seguridad. además también vimos como protegernos cuando utilizamos Lilo. Luego tenemos que presionar la tecla E(Editar). y que ahora está soportado por el proyecto GNU. una agradable interfaz de usuario y una interfaz de línea de comando muy flexible. Pero existen una serie de problemas de seguridad relacionados con Grub que veremos a continuación. por lo que en el artículo de esta semana veremos como protegernos cuando utilizamos Grub. hay que descomentar del fichero /etc/inittab las siguiente líneas: su:s:wait:/sbin/sulogin su:s:wait:/sbin/single Para que de esta forma se exija sulogin y se solicite la contraseña de root cuando se desea acceder en modo monosuario. para entrar en modo monousuario.

y arrancar la máquina con la configuración que desee.El peligro de este comando debería resultar obvio. con lo que esta opción no es muy aconsejable. con lo que tendríamos un grave problema. Para evitar este problema tenemos que poner permisos más restrictivos al fichero de configuración de Grub: chown root:root /etc/grub. es posible hacer algo aún mejor. para evitar que un atacante acceda en modo monousuario es no permitiéndole que pueda seleccionar un núcleo. Por lo que un atacante incluso podría modificar la configuración de Grub con los propios comandos de Grub.conf Sin embargo. localizar ficheros(find). y nos ofrece una forma sencilla de creerlas mediante la línea de comandos de Grub: grub>md5crypt Password: ******* Encrypted:$1Sf45635fbfdf6678gsesfsfsfsfsfsfs3333 Ahora sólo quedaría coger el md5 creado por Grub y añadirlo a nuestro fichero de configuración que tendría un aspecto como el siguiente: . no? Como veís Grub tiene mucha flexibilidad. pero además podemos comparar dos ficheros(cmp). para evitar esto.. pero puede volverse en nuestra contra. y esto se consigue poniendo el timeout a cero: timeout=0 Pero esto no es una buena solución. con lo que cualquiera podría ver la contraseña en texto plano que acabamos de poner simplemente con el comando cat.1) Pero normalmente el fichero de configuración se instala con permisos de lectura para todos. mostrar información del sistema APM(displayapm). ya que implica que el administrador no podrá acceder al modo de comando de Grub. aunque no muy flexible. como puede verse a continuación: password contraseña title Red Hat password contraseña root(hd0... que normalmente se encuentra en /etc/grub. una información demasiado fácil de conseguir para un atacante.conf chmod 600 /etc/grub. ya que Grub permite almacenar las contraseñas utilizando MD5.conf Uno de los métodos. tenemos que modificar el fichero de configuración de Grub. El método más eficaz es asignar una contraseña en el fichero de configuración o bien al núcleo que queremos proteger o poner una contraseña global.

5NQt0YLp.password --md5 $1Sf45635fbfdf6678gsesfsfsfsfsfsfs3333 title Red Hat password --md5 $1Sf45635fbfdf6678gsesfsfsfsfsfsfs3333 root(hd0.See more at: http://www. cuando Grub muestre la imagen de fondo el administrador tendrá que pulsar la tecla p(de password) y luego introducir la contraseña correcta.dpuf .websecurity. .1) De esta forma. y luego el administrador podrá lanzar la tecla c(de command) para lanzar la interfaz de comandos.es/gestores-arranque-parte-ii#sthash.