A menudo está la creencia generalizada de que Linux es increiblemente seguro, que una vez lo has instalado no tienes que preocuparte de nada porque el sistema es muy solido. Aunque la verdad es que no es aquello no es del todo cierto. Seguro lo es cierto, pero Linux por defecto es un sistema que te viene con lo básico y justo para funciona, dejando un par de cosas en el aire, las cuales, si no las tratamos nos pueden costar caras. Una de ellas es la poca seguridad que te ofrece el GRUB por defecto, debido a que alguien con conocimientos, puede entrar en tu equipo sin realizar demasiadas florituras. En este post explicaré tanto la vulnerabilidad cómo la solución:
Cómo
entrar en el sistema con permisos de root sin contraseña.
Antes
de nada aclarar que el contenido de ésto es meramente
informativo y para casos de emergencia, cómo por ejemplo, el
desconocimiento de la contraseña cómo administrador del sistema. El
mal uso de dicha información queda totalmente bajo la
responsabilidad del usuario. Al final del
manual se explicará cómo restringir estas intrusiones.
Éste proceso se realiza
durante el arranque del sistema, justo en el momento en el que
aparece la pantalla del GRUB. En aquel momento movemos usamos las
flechas del teclado para situarnos sobre el sistema o distribución
sobre la que queremos entrar.
Figura
1.1 Menú principal GRUB
Una
vez decidido el destino, nos fijamos en el texto que aparece debajo
de la pantalla de selección del GRUB. En dicho texto nos muestra las
teclas que podemos pulsar en esta pantalla. En éste caso, nosotros
tenemos 3 teclas que podemos pulsar, las cuales pueden cambiar
dependiendo de la versión del GRUB que tengamos. En éste caso
podemos pulsar ENTER
para entrar al sistema, e
para editar los comandos que se usan antes de arrancar el sistema y c
para entrar la línea de comandos. La tecla que nos interesa a
nosotros es e
con lo que la pulsamos, mostrándonos la siguiente pantalla:
Figura 1.2
Edición de comandos antes del arranque
Nota:
En ésta pantalla podemos editar
directamente los comandos que se ejecutan antes de iniciarse el
sistema, aunque en versiones anteriores aparecerían estas líneas
divididas entre si cómo opciones de selección (como si fuese un
menú de selección de GRUB normal) y deberíamos de volver a pulsar
la tecla e para poder editar la línea deseada, y pulsando ENTER tras
finalizar la edición ésta.
En
estas líneas (Figura 1.2) se ven los módulos que se cargan, las
acciones que se toman antes de cargar el sistema, etc… La línea
que en verdad nos interesa es ésta (Figura 1.3):
Figura 1.3
Linea a editar para poder lograr lo que nos proponemos
Aquí,
debemos editar la palabra ro por rw.
Ro,
significa Read Only
pero a nosotros nos interesa tener la capacidad de cambiar los datos
del sistema, con lo que escribimos rw,
es decir Read and Write. Una
vez editada ésta, vamos al final de la línea, después de quiet y
escribimos lo siguiente: init=/bin/bash.
Al estar basado en el teclado en ingles la tecla =
no es la misma que en el teclado español. Para poder escribir =
hay que pulsar la tecla ¡.
Una vez editada la línea debería quedar así (figura 1.4).
Figura 1.4
Resultado de la línea tras la edición:
Una vez hechos los
cambios, nos fijamos en la parte inferior de la pantalla de edición
de comandos (Figura 1.2). Allí nos aclaran las acciones que podemos
tomar. En éste caso pulsamos ctrl. + x
para poder entrar en el sistema con éstos cambios. Cabe decir que
estos cambios NO son permanentes. Es decir que la próxima vez que
reiniciemos el sistema, éstos cambios no se verán reflejados, pues
sólo afectan a ésta vez. Tras pulsar dicha combinación de teclas
nos aparecerá la siguiente pantalla.
Figura 1.5
Pantalla de root
Ya está. Ya somos usuario
root con permisos de lectura y escritura. No tenemos la misma
disponibilidad de comandos que cuando entramos de forma normal pero
podemos editar cualquier fichero a placer, cambiar la contraseña de
root con passwd o incluso borrar las contraseñas de todos los
usuarios del sistema.
Pasos
a seguir para proteger el GRUB para que no puedan entrar cómo root
- Entramos en una terminal putty conectada al equipo sobre el que deseamos actuar.
- Ejecutamos el comando grub-mkpasswd-pbkdf2 dando como resultado una clave con cifrado pbkdf2 cómo por ejemplo esta (tarda un rato en hacerse). Te pedirá la contraseña que deseas cifrar que será la que luego pediremos en el grub para intentar editar la línea de comandos:
PBKDF2 is
grub.pbkdf2.sha512.10000.94723165B38DD157D820B79CE29746A6093AC76FBE22F5EADCED11EA7EF3CDD22E78ABD6545C79538FCD432A7873D3C521D3E9235B1780EE1FB5FD36607CF34D.99220BFE02CAECEAF628E27CE3C58F2ECCCE9376924A2111616892563E2126BB21E33477CC4FC4E671922A15093D718E8D62400E5DCF3868E0CB244AD15E4AC5
- Copiamos la clave generada (esa es la razón por la que hay que usar putty)
- Ahora entramos en la carpeta /boot/grub/grub.cfg y debemos buscar una sentencia parecida a esta:
- Antes o después de dicha línea escribimos:
set superusers= usuario
password_pdkdf2
usuario
mgrub.pbkdf2.sha512.10000.94723165B38DD157D820B79CE29746A6093AC76FBE22F5EADCED11EA7EF3CDD22E78ABD6545C79538FCD432A7873D3C521D3E9235B1780EE1FB5FD36607CF34D.99220BFE02CAECEAF628E27CE3C58F2ECCCE9376924A2111616892563E2126BB21E33477CC4FC4E671922A15093D718E8D62400E5DCF3868E0CB244AD15E4AC5
(la clave generada antes)
Con
esto tenemos una contraseña cifrada, contraseña que deberá
introducirse si deseamos editar la línea de comandos del GRUB. Esta
contraseña no modificará en nada el arranque y se podrá actuar con
normalidad para el resto de funcionalidades.
No hay comentarios :
Publicar un comentario