Eliminar la contraseña de la BIOS

La BIOS es el Sistema de Entrada / Salida Básico de un ordenador, permite realizar las operaciones más básicas con los dispositivos físicos (hardware). Su cometido principal es permitir que el Sistema Operativo del ordenador pueda arrancar y comenzar a funcionar. Para ello gestiona el teclado y el altavoz interno del PCcomo métodos más básicos de entrada y salida, maneja la tarjeta gráfica en un modo VGA o EGA y permite acceder a los diferentes dispositivos de almacenamiento masivo del PC (disketteras, discos duros, unidades de CD/DVD, USB, etc.).

En Sistemas Operativos antiguos como DOS, la BIOS permanecía en memoria una vez arrancado el sistema y se utilizaba para  algunas tareas como escribir en disco, por ejemplo. En sistemas operativos más modernos los servicios de la BIOS se han dejado de utilizar y ya casi nada se delega en este primitivo software. De hecho, se da la circunstancia curiosa de que GNU/Linux, por ejemplo, obvia toda la información proporcionada por la BIOS a la hora de detectar dispositivos y es probable que un disco duro de más de 32 GB en una placa base antigua sea reconocido como de 32 GB por la BIOS y del tamaño correcto al arrancar GNU/Linux.

Normalmente el proceso que se sigue al arrancar un PC es el siguiente:

  1. RESET a la CPU, el valor de EIP se fija a 0xfffffff0, es decir, se salta a esa dirección de memoria.
  2. Se ejecuta la BIOS (ROM):
    1. POST (Power On Self Test)
    2. Detección de dispositivos, asignación de IRQs, etc.
    3. Buscar un Sistema Operativo, normalmente en los dispositivos configurados en la BIOS.
    4. Cargar el primer sector en RAM (0×0000fc00)
  3. Arrancar el Boot loader del Sistema Operativo

¿Qué es una memoria CMOS?

Como ya hemos dicho, la BIOS es software, por lo que necesita residir en algún dispositivo de almacenamiento. Este dispositivo suele ser una memoria CMOS (”Complementary Metal Oxide Semiconductor”, “Metal Óxido Semiconductor Complementario”), que hay que alimentar con una pila (típicamente de botón) si no queremos que toda la configuración de la BIOS se pierda. De hecho, muchas veces el programa que modifica los valores de la BIOS se llama “CMOS Setup”.

Dentro de esta memoria CMOS se almacena la contraseña que protege el propio programa de modificación de los valores de la BIOS, y normalmente se encuentra sin cifrar.

1.- Tengo acceso físico a la placa y quiero entrar como sea

Si podemos abrir el ordenador y acceder a la placa base donde estará soldado el slot en el que se coloca la memoria CMOS de la BIOS, y no tenemos ningún problema en que se detecte que hemos entrado, podemos reiniciar a los valores por defecto la memoria de varias formas:

  1. Quitando la pila que alimenta la memoria CMOS, desenchufando el PC, esperando unos segundos y viendo si realmente se ha reiniciado a valores por defecto la memoria.
  2. Utilizando un jumper que suelen tener las placas base para reiniciar la BIOS. Es muy probable que se encuentre al lado del chip de la BIOS, pero si tenemos dudas, podemos desacargarnos el manual de la placa en PDF en la web del fabricante.
  3. Lo más peligroso: si no encontramos la pila ni el jumper, siempre podemos soltar la propia memoria CMOS de la BIOS, intentando hacer palanca entre la base del chip y el slot en el que está conectado, poco a poco, evitando que se doble ninguna patilla. Es un método drástico pero efectivo. En el peor de los casos, si tenéis que forzar mucho, intentad preservar la placa base antes que el propio chip de la BIOS, que son relativamente baratos y fáciles de conseguir.

2.- Tengo acceso físico a la placa pero quiero que no se sepa que he entrado

Si la persona que va a auditar el ordenador tiene los conocimientos suficientes, podrá detectar que hemos entrado, pero si no, la manera más fácil de entrar y dejarlo todo más o menos como estaba es pasar de la BIOS y conectar el disco duro a un interfaz IDE-USB y leerlo desde un portátil o similares. Es muy raro que el disco duro esté protegido por hardware , así que simplemente conecatándolo a un adaptador de estos, será accesible. Si tiene particiones o ficheros cifrados ya será otro cantar.

3.- No tengo acceso físico a la placa (sí al PC) y quiero entrar como sea

Si no podemos abrir el ordenador porque está embebido en una máquina más grande o porque el acceso físico es complicado y no tenemos problemas en que se sepa que estuvimos allí, podemos intentar reiniciar la memoria CMOS por software. Para ello necesitaremos los privilegios suficientes en el Sistema Operativo que se esté ejecutando en la máquina para poder acceder desde ahí a la BIOS y modificarla. En DOS y sistemas operativos antiguos no había ninguna limitación de cara a escribir en los puertos que hiciera falta y acceder directamente al hardware, por lo que se podían usar técnicas como la típica de usar el debug.exe, un debugger en modo texto, y tratar de escribir un byte en la memoria de la BIOS, con el objetivo de que en el siguiente arranque dé un error de checksum y se reinicie a los valores por defecto. Si tenéis DOS o Microsoft Windows 9x, podéis hacer la prueba ejecutando “debug.exe” y luego escribiendo lo siguiente:

  • Para BIOS AMI/AWARD:
    o 70 17
    o 71 17
    q

    Para BIOS PHOENIX:

    o 70 ff
    o 71 17
    q

    Para otras BIOS:

    o 70 2e
    o 71 ff
    q

Si estamos en un Sistema Operativo moderno como Microsoft Windows XP, deberemos ejecutar nuestro código desde los privilegios suficientes como para poder acceder directamente al hardware. Una manera bastante típica de hacer esto es cargar un driver y hacerlo mediante su uso. Este es el enfoque que sigue la herramienta cmospwd  y su driver ioperm. Para usar cmospwd hay que cargar previamente el driver en memoria y luego usar el programa:

C:\\BIOS\cmospwd-4.8\windows>ioperm.exe -i

C:\BIOS\cmospwd-4.8\windows>cmospwd_win.exe /h

CmosPwd - BIOS Cracker 4.8, January 2006, Copyright 1996-2006
GRENIER Christophe, grenier@cgsecurity.org
http://www.cgsecurity.org/

Usage: cmospwd [/k[de|fr]] [/d]
       cmospwd [/k[de|fr]] [/d] /[wlr] cmos_backup_file           write/load/res
tore
       cmospwd /k                                          kill cmos
       cmospwd [/k[de|fr]] /m[01]*      execute selected module

 /kfr french AZERTY keyboard, /kde german QWERTZ keyboard
 /d to dump cmos
 /m0010011 to execute module 3,6 and 7

NB: For Award BIOS, passwords are differents than original, but work.

Después de cargar el driver, vemos con cmospwd /h las opciones que ofrece como hacer un backup de la CMOS, volcarlo, borrar la memoria, etc. Si queremos quitar la contraseña de la BIOS, deberemos elegir /k para borrar la memoria:

C:\BIOS\cmospwd-4.8\windows>cmospwd_win.exe /k

CmosPwd - BIOS Cracker 4.8, January 2006, Copyright 1996-2006
GRENIER Christophe, grenier@cgsecurity.org
http://www.cgsecurity.org/
Warning: if the password is stored in an eeprom (laptop/notebook), the password
won't be erased

1 - Kill cmos
2 - Kill cmos (try to keep date and time)
0 - Abort
Choice : 1

Cmos killed!

Después de borrar la CMOS es muy probable que el Sistema Operativo se resienta, porque se habrá modificado la fecha a un valor en el pasado y habrá muchos ficheros creados en “el futuro”. Por esto mismo no es nada recomendable reiniciar la BIOS si se está haciendo algo importante con el PC, porque muy probablemente habrá que reiniciarlo.

4.- No tengo acceso físico a la placa (sí al PC) pero quiero que no se sepa que he entrado

Además de borrar la BIOS, cmospwd intenta mostrar el contenido de la BIOS en cuanto a contraseñas si se ejecuta sin parámetros. En mi caso la BIOS se trataba de una AWARD y puse como contraseña de usuario “pass” y como contraseña de supervisor “password”:

C:\BIOS\cmospwd-4.8\windows>cmospwd_win.exe

CmosPwd - BIOS Cracker 4.8, January 2006, Copyright 1996-2006
GRENIER Christophe, grenier@cgsecurity.org
http://www.cgsecurity.org/

Keyboard : US
Acer/IBM                     [ 7][!]
AMI BIOS                     []
AMI WinBIOS (12/15/93)       []
AMI WinBIOS 2.5              [][][]
AMI ?                        [][7][][ ][]
Award 4.5x/6.0               [000100][000100][000100]
Award 4.5x/6.0               [000100][2000030][000100][000122]
Award Medallion 6.0          [000100][000100][000100][000100]
Award 6.0                    [%  ( "De][][password]
Compaq (1992)                []
Compaq DeskPro               [][?]
Compaq                       [][]
DTK                          [ % w][ % w  ]
Phoenix A08, 1993            [][]
IBM (PS/2, Activa ...)       [Q F][]
IBM Thinkpad boot pwd        []
Thinkpad x20/570/t20 EEPROM  [][]
Thinkpad 560x EEPROM         [][  ]
Thinkpad 765/380z EEPROM     [][  ]
IBM 300 GL                   [Q F]
Press a key to continue

Packard Bell Supervisor/User [???????] [???????]
Phoenix 1.00.09.AC0 (1994)   [][]
Phoenix 1.04                 [][Q F]
Phoenix 1.10 A03             CRC pwd err
Phoenix 4 release 6 (User)   []
Phoenix 4.0 release 6.0      []
Phoenix a486 1.03            []
Phoenix 4.05 rev 1.02.943    [ ][]
Phoenix 4.06 rev 1.13.1107   [ 7]
Gateway Solo Phoenix 4.0 r6  [  ][]
Samsung P25                  [4 WWW][K8 4][]
Sony Vaio EEPROM             [!] [    !]
Toshiba                      [KEY floppy][KEY floppy]
Zenith AMI Supervisor/User   [] [?]

Como vemos en la siguiente línea, el cmospwd ha logrado obtener la contraseña de supervisor:

Award 6.0                    [%  ( "De][][password]

El resto de líneas corresponden con posiciones en la memoria CMOS que no coinciden en este modelo con el offset o desplazamiento en el que se almacena la contraseña por lo que carecen de sentido.

Etiquetas: , , , , , ,

Una respuesta to “Eliminar la contraseña de la BIOS”

  1. Nuasdhrweyr Says:

    Gracias

    *** Desactivar solicitud de contraseña de usuario de BIOS al inicio del arranque en portátil Toshiba Satellite ***

    Si unos segundos tras encender el ordenador (en mi caso un portátil Toshiba Satellite) la BIOS te pide que pongas la clave de usuario (que pusiste y activaste en su día) y quieres deshabilitarla has de hacer esto:

    1. Pulsas la tecla F2 (o DEL o Supr. tal vez) para acceder a la configuración de la BIOS (introduces la contraseña de supervisor o superusuario que también activaste)

    2. Vas al apartado de seguridad (Security): http://www.howtoanswer.com/articles/security/How_to_Add_a_BIOS_Password/sshot-6.png o http://3.bp.blogspot.com/-XlUwtdg0Ko4/TtFF_C0BkMI/AAAAAAAABXw/2O3A9oe-mI8/s320/bios3.jpg (en este caso tendrá “Supervisor Password Is: Set” y “User Password Is: Set”)

    3. No podrás, a priori, quitar la clave de usuario (“Set User Password” no alcanzable con el cursor), pero la solución es fácil: quitas la de supervisor y, automáticamente, queda eliminada la de usuario. Para conseguirlo vas a “Set Supervisor Password” y pulsas Enter. Luego tienes http://www.isunshare.com/images/article/windows-8-password/reset-supervisor-password-on-windows-8-computer/reset-supervisor-password.png . En “Enter Current Password” pones la clave actual y pulsas Enter tres veces, quedando en blanco “Enter New Password” y “Confirm New Password”. Luego conviene que vuelvas a poner la clave de superusuario, para que no se cambien sin querer importantes opciones de configuración de la BIOS.

    4. Pulsas F10 para guardar los cambios antes de salir y tienes http://www.labtestproject.com/files/miscellaneous/images/boot-seq/bootseq-b/cmossetup02.jpg . Estando el cursor sobre el “sí” (Yes) pulsas Enter y listo.

    Fuente: http://bandaancha.eu/foros/desactivar-solicitud-contrasena-usuario-1709181

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: