Algo de Linux: noviembre 2010

lunes, 22 de noviembre de 2010

CmosPwd: Descubrir la contraseña de la BIOS

A veces nos encontramos con equipos que tienen password para acceder a la configuración de la BIOS y alguien lo ha olvidado o no nos lo han querido dar.

CmosPwd es una herramienta gratuita (no distribuida mediante licencia GPL) que nos permitirá desencriptar el pasword almacenado en la CMOS, que se usa para acceder a la configuración de la BIOS.

Esta heramienta, según la información obtenida en su web, trabaja con las siguientes BIOS:
  • ACER/IBM BIOS
  • AMI BIOS
  • AMI WinBIOS 2.5
  • Award 4.5x/4.6x/6.0
  • Compaq (1992)
  • Compaq (New version)
  • IBM (PS/2, Activa, Thinkpad)
  • Packard Bell
  • Phoenix 1.00.09.AC0 (1994), a486 1.03, 1.04, 1.10 A03, 4.05 rev 1.02.943, 4.06 rev 1.13.1107
  • Phoenix 4 release 6 (User)
  • Gateway Solo - Phoenix 4.0 release 6
  • Toshiba
  • Zenith AMI

CmosPwd funciona y se compila en los siguientes sistemas operativos:
  • Dos-Win9x,
  • Windows NT/W2K/XP/2003,
  • Linux,
  • FreeBSD and NetBSD. 
Y, por lo que he podido ver, está incluida en muchas recopilaciones de herramientas, como por ejemplo UBCD, System Rescue CD, ...

Para más info, ver su web.

Pero veamos cómo utilizarla en un caso práctico:

Imaginemos que tenemos un portátil con linux cuyo acceso a la configuración de la BIOS ha sido protegido por contraseña.

Cuando se cargue el menú de opciones de grub, editamos la entrada que carga el kernel y la modificamos para que en lugar de iniciar el sistema, se inicie un shell. Ya sabemos: rw init=/bin/bash

E iniciamos.

Bien. Ahora que ya tenemos un shell, copiamos la herramienta, desde donde la tengamos guardada, por ejemplo: nuestro pendrive y la ejecutamos con el parámetro /d:

# cmospwd /d

Con ésto, estamos haciendo un volcado de la CMOS en pantalla. Pulsaremos Enter para ir pasando la información que nos muestra, y, entre todo ello, veremos la password que tiene la BIOS.

Si por alguna razón, no consiguiéramos obtener la password de la BIOS, siempre podríamos hacer un kill para resetear la CMOS.

# cmospwd /k

Eso sí. Si pensamos hacer un kill, recomiendo hacer antes un backup:

# cmospwd /d /w micmos.bak

Con ésto, tendríamos un backup de nuestra CMOS en el fichero micmos.bak.

Para ver el contenido del fichero de backup, no tenemos más que hacer un:

# cmospwd /l micmos.bak

Y si queremos restaurar la CMOS con el contenido del fichero en el que hemos hecho el backup:

# cmospwd /r micmos.bak

Al ejecutar el comando, nos dará tres opciones:
  • 1 - Restaurar completamente la CMOS.
  • 2 - Restaurar la CMOS, manteniendo la fecha y la hora.
  • 0 - Abortar.

domingo, 21 de noviembre de 2010

Crear un pendrive de arranque mediante system rescue cd

System rescue CD nos permite crear fácilmente un dispositivo usb de arranque: pendrive, tarjeta sd, hd usb... mediante una utilidad que incorpora: sysresccd-usbstick.

Con esta herramienta, si tenemos nuestro System Rescue CD en un CDROM y lo queremos montar en un pendrive, no tenemos más que arrancar el cd y ejecutar sysresccd-usbstick.

La secuencia para hacerlo, una vez arrancado el cd, sería la siguiente:

sysresccd-usbstick listdev
sysresccd-usbstick writembr /dev/sdX
sysresccd-usbstick format /dev/sdXY
sysresccd-usbstick copyfiles /dev/sdXY
sysresccd-usbstick syslinux /dev/sdXY


Veamos qué significa cada línea:

sysresccd-usbstick listdev nos lista los dispositivos usb conectados en ese momento. Con ésto veremos cuál es el pendrive que queremos preparar: sda, sdb, ...

sysresccd-usbstick writembr /dev/sdX escribirá el mbr en nuestro dispositivo usb. Naturalmente, tendremos que sustituir sdX por la letra unidad que corresponda: sda, sdb, ...

sysresccd-usbstick format /dev/sdXY formateará la partición Y en el dispositivo. Ejemplo: sysresccd-usbstick format /dev/sdb1. El formato de la partición será FAT32, por lo que podremos utilizarlo para almacenar lo que queramos tanto en windows, como en linux.

sysresccd-usbstick copyfiles /dev/sdXY copiará los ficheros del CDROM de System Rescue CD en la partición que le indiquemos. Ejemplo: sysresccd-usbstick copyfiles /dev/sdb1

sysresccd-usbstick syslinux /dev/sdXY transferirá el cargador syslinux a la partición que le indiquemos. Ejemplo: sysresccd-usbstick syslinux /dev/sdb1.

Podríamos utilizar esta herramienta para crear un pendrive de arranque y luego almacenar en él cualquier otra herramienta que haga uso de syslinux, omitiendo el paso que copia los ficheros de system rescue cd (sysresccd-usbstick copyfiles /dev/sdXY).

Un ejemplo completo:
Imaginemos que tenemos un pendrive a mano, que queremos preparar con nuestro system rescue cd.

* Arrancamos el ordenador con el CDROM de System Rescue CD.

* Cuando haya arrancado, introducimos el pendrive y ejecutamos:

# sysresccd-usbstick listdev

* Veremos los dispositivos usb que se han detectado. Imaginemos que nuestro pendrive se encuentra en /dev/sdb. Ejecutaríamos la siguiente secuencia de instrucciones para prepararlo:

# sysresccd-usbstick writembr /dev/sdb
# sysresccd-usbstick format /dev/sdb1
# sysresccd-usbstick copyfiles /dev/sdb1
# sysresccd-usbstick syslinux /dev/sdb1


Y listo. Una vez hecho ésto, ya tenemos nuestro pendrive de arranque con System Rescue CD.

Un detalle importante: Como podemos observar en el procedimiento, si tenemos algún contenido en el pendrive, lo perderemos. Así que, lo ideal es hacer copia de seguridad de los datos del mismo, prepararlo como pendrive de arranque, y, posteriormente, agregar los datos que quisiéramos almacenar en él.

Personalmente, utilizo un pendrive de arranque con system rescue cd y clonezilla, en el que he fusionado los syslinux.cfg de ambas herramientas y en el que también almaceno mis archivos.


Por supuesto, si tenemos un pendrive con system rescue cd y queremos crear otro mediante esta herramienta, podemos hacerlo del mismo modo.