Incident Response, Security and Forensics"

.

lunes, 29 de junio de 2009

Obteniendo la contraseña de la BIOS

Hola lectores,

Tengo una curiosidad que contaros.

Normalmente suelo poner contraseña a la bios en mi portátil como medida adicional de seguridad. No es que sea muy efectiva, pero es una zancadilla más en caso de que accedan al portátil estando apagado.

Hace unos días se me estropeo la placa de mi flamante lenovo X200 y tuve que quitar el disco duro y ponerlo en otro portátil que un compañero me presto. Cual fue mi mayúscula sorpresa que al iniciarlo en este nuevo portátil me pidió la contraseña (GALAXY), por su puesto que esta no es la que utilizo habitualmente.

De ello, deduje que la contraseña estaba en realidad almacenada en disco y que por algún procedimiento la solicitaba.

Esto me puso en alerta y decidí estudiar el tema. Buscando por internet, me llamo la atención un 'paper' que se presento en la anterior 'defcon' sobre las vulnerabilidades en la BIOS.

En el se explica con todo lujo de detalles como se puede obtener las contraseñas de la BIOS, también de aplicaciones de encriptamiento (PGP) y de gestores de arranque (GRUB).

Más tarde veo que el figura de Andreas Schuster escribió un articulo sobre el tema. Particularmente me llamo tanto la atención que no me ha quedado más remedio que reproducir lo que su artículo dice, pero con una diferencia, he realizado la prueba con muchos más modelos de ordenadores con el objeto de disponer una visión mucho más global

La cosa es así:

BIOS:

La BIOS puede contener tres grupos:

  • Servicios a periféricos (video, audio)
  • Servicios de estado (como la memoria y el estado de los discos)
  • Servicios adicionales (permiten activar diversas configuraciones y reiniciar el sistema)

La BIOS proporciona varios subservicios dentro de cada interrupción, por ejemplo, la 16, de video, incluye 19 subservicios, cada uno de los cuales tiene una funcionalidad específica.

La tabla de vectores de interrupción del PC se puede consultar en la web de BIOSCENTRAL, y especialmente haremos mención sin entrar en grandes explicaciones en la interrupción INT 09H e INT 16H, las dos direcciones tienen desplazamientos dentro del segmento en 41AH, 41CH y 41EH

  • 41AH, Es la dirección del inicio actual del búfer
  • 41CH, Es la dirección final del búfer
  • 41EH, Es en si, la dirección del búfer, retiene los carácteres de teclado
En estas me voy a centrar.

OBTENIENDO CONTRASEÑAS DE LA BIOS

Para reproducirlo hice lo siguiente:

  • Puse una contraseña en BIOS a mi portátil lenovo X200 (PASS: GALAXY)
  • Una vez iniciado Windows volque a disco el contenido de la memoria. Lo hice con la utilidad Win32dd y con el siguiente comando:
c:\prueba\>win32dd.exe -t 1 memoria.dmp

El parámetro '-t 1' es para que copie los bloques de memoria física.


  • Una vez creado el fichero, lo edité con un editor hexadecimal y busque la tabla de vectores de interrupción (IDT). Estos vectores són una tabla de 1024 bytes en la memoria baja, que contiene un máximo de 256 punteros a los programas que atienden las interrupciones ISR's ("Interrupt service routine")
  • Busque la dirección 41EH que corresponde al buffer de teclado y este es el resultado:



¡¡Aquí esta la contraseña!!

Este procedimiento lo realice en los siguientes modelos que si funcionaban:

  • IBM BladeCenter HS12
  • IBM Lenovo ThinkCentre
  • Acer Timeline 5810T
  • Dell XPS 630
  • Dell Inspiron
  • HP Elite 9600
  • Compaq Mini 110c

CONCLUSIONES:

Es más que evidente que la contraseña se almacena en disco. Con este paso se podría recuperar la contraseña arrancando con otro sistema operativo y realizar un copiado de disco bit a bit, para posteriormente obtenerla.

Si el disco estuviera cifrado, la cosa se complica muchísimo hasta el punto de ser casi imposible de recuperar. Por otro lado me queda la siguiente duda, ¿que ocurre si la contraseña fuera biometrica?. ¿ se podría recuperar utilizando las tecnicas de este post?.¿estará cifrada?

¿ Alguien se anima?

8 comentarios:

Es más que evidente que la contraseña se almacena en disco. Con este paso se podría recuperar la contraseña arrancando con otro sistema operativo y realizar un copiado de disco bit a bit, para posteriormente obtenerla

ahi seria algo ilogico por que cuando pones contraseña a la bios es para evitar eso arrancar desde otro sistema operativo desde cd.


lo correcto seria hacer el copiado bit a bit desde el mismo pc y obtener ahi mismo la password desconozco si para ejecutar las herramientas de copiado tengas que tener permisos admin

saludos buen articulo

Si es biométrica...los dispositivos lectores de huellas por ejemplo no cifran los datos así que como no lo haga una aplicación por encima de ellos no lo estarán. Lo que pasa es que será más laborioso aislar ese tipo de datos que una contraseña.

Yo hace tiempo también hice pinitos con la BIOS
http://seifreed.wordpress.com/2009/06/13/hackeando-la-bios/

Que alguien me diga si estoy mal, pero yo llego a la siguiente conclusión:

La contraseña del BIOS no se almacena en el Disco Duro, lo que sucede aquí, es que, en el volcado de memoria estas leyendo el buffer del teclado, el cual contiene la contraseña que tecleaste al encender el equipo.

Ahora en el caso del HDD que cambiaste a otra portátil, ¿Que tipo de HDD es?, ya que algunos cuentan con protección por contraseña y aúnque lo cambies de equipo, te seguirá solicitando la contraseña.


Saludos desde Oax. México

Muy interensante, muchas gracias por la informacion pedro.

Saludos.

Además, creo que es interesante mencionar que bastantes veces encontraremos que la contraseña de la BIOS ha sido reutilizada en puestos o servidores ...

@acevedocarlos:

>>desconozco si para ejecutar las >>herramientas de copiado tengas >>que tener permisos admin

Sí, con permisos de usuario normalito no puedes hacer dumps de la memoria (ring-0) ni nada por el estilo.

¡Muy interesante el articulo Pedro!

@ Felipe Mtz.
La contraseña del BIOS no se almacena en el Disco Duro, lo que sucede aquí, es que, en el volcado de memoria estas leyendo el buffer del teclado, el cual contiene la contraseña que tecleaste al encender el equipo.
---

Pienso exactamente igual que tu.

@ Felipe Mtz.
Ahora en el caso del HDD que cambiaste a otra portátil, ¿Que tipo de HDD es?, ya que algunos cuentan con protección por contraseña y aúnque lo cambies de equipo, te seguirá solicitando la contraseña.
---

Tambien yo he encontrado portatiles en los que no se ha podido arrancar una vez sustituido el disco original hasta que no se ha clonado su contenido en el nuevo.

Saludos

En un portatil el password de seguridad se guarda en una memoria flash de montaje superficial sobre la placa madre y no en el chip del BIOS con lo que quitar la batería del BIOS por ejemplo reseteará su contenido a los valores por defecto pero no se perderá la contraseña establecida bajo ninguna circunstancia.

El mismo proceso que setea la contraseña de seguridad setea además el ATA password sobre el disco rígido, para quien le interese googlear un poco, ahi tienen la punta del ovillo.

¡Saludos!