You are on page 1of 8

0 Desprotección de la contraseña de la BIOS

0.1 Introducción

En muchos casos en que con acceso físico estemos intentando “hackear” el sistema operativo de un PC, nos encontraremos que para conseguir un mayor control sobre el sistema de ficheros de éste (ya sea para conseguir el fichero de contraseñas, ya sea para modificar un fichero sobre el que no tenemos privilegios, etc.) tendremos que reiniciar el PC y arrancar de nuevo con un disquete o con un CD-ROM. A veces esto no será posible porque hayan configurado la BIOS para que el PC arranque sólo desde el disco duro, y hayan protegido la BIOS con contraseña para que no podamos cambiar su configuración. La BIOS[1] es un pequeño microprocesador situado en la placa madre del PC que, entre otras cosas, controla como se realiza el proceso de arranque cuando encendemos el ordenador, como se realiza el test de los diferentes dispositivos, etc. Para conseguir su objetivo, la BIOS necesita guardar en una pequeña memoria llamada CMOS[2] datos sobre la configuración del ordenador: de qué unidades de disco dispone y de que tipo son, con qué unidad de disco se intentará arrancar primero, la hora y la fecha del sistema, la contraseña para acceder a configurar la BIOS, etc. Debe quedar claro que esta pequeña memoria no está alimentada con la misma corriente eléctrica que el resto del ordenador, ya que sino cuando apagásemos éste se perdería el contenido de la CMOS. La CMOS está alimentada aparte por una pequeña batería auxiliar que también está situada sobre la placa madre, normalmente cerca del chip de la BIOS. Hay diversos tipos de batería, pero lo más normal es encontrar una pila de botón CR-2032, que tiene unos dos años de duración. Para acceder al menú de configuración de la BIOS, normalmente hace falta pulsar en el proceso de arranque del ordenador las teclas Del, F1 o CTRL+ALT+S. Es en este momento que nos podemos encontrar con una contraseña que nos impida configurar la BIOS. Vamos a saltárnosla ...

0.2

Puertas traseras

Los principales fabricantes de BIOS (en nuestro país AWARD, AMI y PHOENIX) instalaron en sus primeros modelos de BIOS contraseñas adicionales, por si un usuario que había protegido con contraseña el acceso a la BIOS de su ordenador posteriormente había olvidado dicha contraseña. Por ejemplo, todas las BIOS Award 4.50 tienen la palabra de paso universal AWARD_SW, y todas las BIOS Award 4.51 en placas madre de la marca Soyo tienen la palabra de paso universal SY_MB. Aquí tenemos una recopilación de contraseñas[3]: • Advance Integration: Advance • AMI: 589589, A.M.I., aammii, AMI, AMI!SW, AMI.KEY, ami.kez, AMI?SW, AMI_SW, AMI~, amiø, amiami, amidecod, AMIPSWD, amipswd, AMISETUP, BIOS, bios310, BIOSPASS, CMOSPWD, helgaos [la ‘o’ con acento], HEWITT RAND, KILLCMOS, Oder, PASSWORD, • Amptron: Polrty • AST: SnuFG5 • Award: _award, 01322222, 1EAAh, 256256, 589589, 589721, 595595, 598598, admin, ALFAROME, alfarome, ALFAROMEO, aLLY, aLLy, aPAf, award, AWARD SW, AWARD_SW, Award SW, award.sw, AWARD?SW, award_?, award_ps, AWARD PW, AWARD_PW, awkward, azaaxx, BIOS, bios*, BIOSTAR, biostar, BIOSSTAR, biosstar, CONCAT, condo, CONDO, Condo, djonet, efmukl, g6PJ, h6BB, HELGA-S, HEWITT RAND, HLT, j09F, j256, j262, j322, j332, j64, KDD, lkw peter, LKWPETER, lkwpeter, 1

PASSWORD. SKY_FOX. zjaaadc • Biostar: Biostar. SER. t0ch20x. wodj. ttptha. ZAAADA. SZYX. setup. sertafu • IBM Aptiva: premer els dos botons del ratoli • Iwill: iwill • JetWay: spoom1 • Joss Technology: 57gbz6. zbaaaca. t0ch88. TTPTHA. ZBAAACA. MBIUO. TzqF. xyzall • Micronics: dn_04rjc • Nimble: xdfk9874t3 • Packard Bell: bell9 • QDI: QDI • Quantex: teX1. Wodj. SWITCHES_SW. Syxz. xljlbj • Research: Col2ogro2 • Shuttle: Spacve • Siemens Nixdorf: SKY_FOX • SpeedEasy: lesarot1 • SuperMicro: ksdjfg934t • Tinys: Tiny 2 . Q54arwms • Compaq: Compaq • Concord: last • CTX International: CTX_123 • CyberMax: Congress • Daewoo: Daewuu • Daytek: Daytec • Dell: Dell • Digital Equipment: komprie • Enox: xo11nE • Epox: central • Freetech: Posterie • HP Vectra: hewlpack • IBM: IBM. Sxyz. ZJAAADC. technologi • M technology: mMmM • MachSpeed: sp99dd • Magic-Pro: prost • Megastar: star • Micron: sldkj754.

De estos programas. • Si lo ejecutáis sobre Linux o *BSD deberéis poseer privilegios de root para tener acceso de escritura a la CMOS mediante la función del sistema ioperm. Zenith • ZEOS: zeosx Aviso: en algunas de estas contraseñas a veces hace falta cambiar el carácter ‘_’ por el carácter ‘?’. A continuación escribimos: • para BIOS AMI y AWARD O 70 17 O 71 17 Q • para BIOS PHOENIX O 70 FF O 71 17 Q • o para cualquier BIOS O 70 2E O 71 FF Q o también O 70 2E O 71 00 Q 3 . • Si lo ejecutáis sobre Windows NT os hará falta tener instalado y ejecutándose el controlador gwiopm. 0. También el programa !bios[6] está bastante bien. Toshiba. y disponible para diversos sistemas operativos bajo licencia GPL de software libre.sys) y para borrarlo (instdrv gwiopm remove) deberéis poseer privilegios de administrador. mi preferido es cmospwd[5]. toshy99 • Vextrec Technology: Vextrex • Vobis: merlin • WIMBIOSnbsp BIOS v2. y el comando Q sale del programa.• TMC: BIGO • Toshiba: 24Banc81. cuando trabajamos con un teclado en castellano en lugar del teclado internacional. que utiliza las funciones del kernel Ke386SetIOAcessMap y Ke386IoSetAccessProcess para dar a los procesos de usuario (anillo 3) acceso directo de entrada y salida al puerto especificado. Para instalar este controlador (instdrv gwiopm c:\tmp\gwiopm. En este último caso.3 Borrar la BIOS mediante software Existen multitud de pequeños programas que nos permiten borrar la contraseña de la BIOS[4]. El comando O de debug escribe en el puerto especificado un byte. En un caso desesperado. también existen programas que nos permiten borrar toda la información de la BIOS.10: Compleri • Zenith: 3098z. También podemos reinicializar la BIOS utilizando el comando debug de DOS para borrar la suma de comprobación de la CMOS. Es mejor ejecutar el comando trabajando sobre DOS puro y duro que sobre una ventana MS-DOS de Windows. hará falta reconfigurar la BIOS después de haberla borrado. Cuando ejecutéis este u otros programas deberéis tener en cuenta el sistema operativo sobre el cual lo hacéis: • Si lo ejecutáis sobre DOS o Windows 9x seguramente todo irá bien. que se encuentra en constante evolución.

En las placas madre modernas existe un jumper tal que. la CMOS estará desconfigurada. Se debe ir con cuidado porque esta operación puede estropear el chip.4 Borrar la BIOS mediante jumpers Los jumpers son unos pequeños interruptores presentes en la placa madre que nos permiten configurarla. quizás lo más práctico entonces sea extraer el disco duro y conectarlo a otro ordenador. 2. (Aunque si lo que queríamos era acceder a la información del disco duro y tenemos que abrir la caja del ordenador.1 Batería que alimenta la CMOS.) 0. Figura 5. 0x70). Mejor que os aseguréis consultando el manual de la placa madre. ioperm(0x70. Como veréis. La posición de dicho jumper varía en cada modelo de placa madre. y jumper para borrar sus valores.5 Borrar la BIOS sacando la batería Quizás más sencillo que el procedimiento anterior es buscar en la placa madre la pila que alimenta la CMOS y sacarla durante unos instantes (mejor 30 minutos para estar seguros). tendremos que apagar el ordenador. y consiste en cortocircuitar dos patillas del chip de la BIOS durante unos segundos. es más sencillo de lo que parece .h> ioperm(0x70.6 Borrar la BIOS cortocircuitando el chip Este es el último método que conozco... abrir su caja y cortar momentáneamente la alimentación eléctrica hacia la CMOS. // // // // pide permiso para utilizar los puertos 0x70 y 0x71 mediante el puerto 0x70 indica el byte de la CMOS mediante el puerto 0x71 envía un dato a la CMOS cede permisos para utilizar los puertos 0x70 y 0x71 Si mediante software no hemos conseguido borrar la contraseña de la CMOS. 2.El equivalente programando en C para Linux seria algo parecido a esto: #include <sys/io. Las patillas a cortocircuitar dependen de los chips EPROM utilizados para fabricar la BIOS. En caso contrario. 4 . toca repetir el proceso pero sacando la batería durante más tiempo. entonces deberemos pasar a los grandes remedios y borrar la contraseña mediante hardware. borrando todo su contenido. outb(0x2e. Cuando la volvamos a poner. Para ello. 0x71). cambiando momentáneamente su estado. 1). que podéis encontrar en la página web del fabricante de la placa. outb(0xff. 0. borra el contenido de la CMOS. 0. 0). pero normalmente se sitúa muy cerca de la BIOS.

normalmente sobre un zócalo. Estos chips son compatibles en patillas con el Dallas 1287/1287A. 1 2 3 4 5 6 7 8 9 10 11 tierra 12 !#########$ #% * U )# #% )# #% )# #% )# #% )# #% )# #% )# #% )# #% )# #% )# #% )# #% )# &#########( 24 5v 23 22 21 RCL (RAM Clear) 20 19 18 17 16 15 14 13 • Dallas DS12885S. Cortocircuitar las patillas 12 y 24. En los chips 1287 y 3287MT no se puede borrar la CMOS y hace falta reemplazarlos. En los chips 1287A y 3287AMT cortocircuitar las patillas 12 y 21. El nombre escrito sobre estos chips acaba en 6818. o las patillas 74 y 75 (las dos patillas de la esquina superior izquierda). y ésta dura 10 años. • CHIPS P82C206 (cuadrado): Cortocircuitar las patillas 12 y 32 (la primera y la última patilla del borde inferior del chip). Benchmarq bq3258S. puede que falten 5 patillas que no se usan (muchos chips tienen patillas que no se usan. y que cuando la batería del chip se gaste hará falta reemplazarlo. Aunque son chips de 24 patillas. Benchmarq bp3287MT y bq3287AMT: Tienen la batería construida dentro del mismo chip.A continuación adjunto una lista con los chips más populares que podéis encontrar. aunque normalmente están presentes). DS1287A. pero dicha lista no la he elaborado yo sino ElfQrin[7]. Esto quiere decir que las placas madre que utilicen estos chips no tendrán una batería adicional. Hitachi HD146818AP y Samsung KS82C6818A: Son chips DIP rectangulares de 24 patillas. 74 tierra !"##############$ 5v 75 #% CHIPS 1 * P82C206 &'#############'( 12 tierra 32 5v • OPTi F82C206 (rectangular): Cortocircuitar las patillas 3 y 26 (la tercera patilla de la cara izquierda y la quinta patilla de la cara derecha del borde inferior). 24 5v 20 13 !"###########"####################"$ 5 . aunque sin batería interior. 80 51 !"##############"$ 81 #% )# 50 OPTi F82C206 100#% )# 31 &'#'##########'#'( 1 3 26 30 • Dallas DS1287.

Se trata de un conector que se pone en el puerto paralelo para desbloquear el Toshiba. 2-11. la contraseña no desaparece cuando extraemos la batería.DALLAS > DS12885S &'################################'( 1 12 tierra • Motorola MC146818AP: Cortocircuitar las patillas 12 y 24 (son las patillas de las esquinas inferior izquierda y superior derecha). Cuando pregunte por la contraseña pulsad ENTER. Tendremos que sacar con mucho cuidado la EEPROM del portátil y leer su contenido en un segundo PC con el programador de EEPROMs. Cuando pregunte de nuevo per la contraseña pulsad Y y ENTER. También podéis crear el disco llave automáticamente con la utilidad keydisk[9]. De esta manera. una soldadora y estaño para soldar. Para construir la llave necesitareis un conector de puerto paralelo de 25 pines como el del dibujo. Para mejorar la seguridad y protegerlos contra robos. En teoría deberíais acceder entonces a la BIOS y poder activar una nueva contraseña. cable eléctrico. hace falta construir un disco llave editando un disquete con algún editor hexadecimal[8]. 1 2 3 4 5 6 7 8 9 10 11 tierra 12 !#########$ #% * U )# #% )# #% )# #% )# #% )# #% )# #% )# #% )# #% )# #% )# #% )# #% )# &#########( 24 5v 23 22 21 20 19 18 17 16 15 14 13 0. Debéis formatear el disquete y modificar los cinco primeros bytes de su segundo sector (el que va detrás del sector de arranque) para escribir los valores: 4B 45 59 00 00 (el codigo ASCII de KEY seguido de dos ceros). A continuación insertáis dicho disquete en el Toshiba y reiniciáis pulsando el botón de reset. 18-25. los portátiles son un punto a parte. muchos portátiles no guardan la contraseña en la CMOS. 8-14. que se puede conseguir en cualquier tienda de electrónica. 7-13. En estos casos. que a continuación os expongo: • En los modelos más antiguos. podemos llenar la EEPROM con ceros (byte con valor 00) o unos (byte con valor FF). También se pueden probar las patillas 12 y 20.7 Portatiles En el tema de la desprotección de la BIOS. 4-12. Aun así muchos portátiles tienen puertas traseras que utilizan sus servicios técnicos como manera rápida de recuperar la contraseña de los clientes que la han olvidado. • En los modelos más nuevos. sino en la misma EEPROM que contiene la BIOS. 9-15. 3-17. Debéis conectar los pines: 1-5-10. 6-16. hace falta construir una llave para el puerto paralelo o ir a una tienda de electrónica a que os la hagan. Las únicas conocidas por mí son las de los portátiles Toshiba. Si todavía no encontramos la contraseña. para recuperar la contraseña hará falta un dispositivo electrónico llamado programador de EEPROMs. 01__________13 \________/ 14 25 6 .

exit(1). encontrar el algoritmo de encriptación e invertirlo. usleep(100000).0.h> #include <sys/io. if (ioperm(0x70. por lo que a partir de la posición de memoria 0x041e podemos encontrar la contraseña que dicha persona escribió. de la BDA y de los servicios de la BIOS. Hasta ahora hemos hablado de como descativar la contraseña de la BIOS. } for (i=0x38. if (!fb) return. y la contraseña queda en claro en dicha posición de memoria hasta que se apaga el ordenador. que utiliza el dispositivo /dev/mem para leer la memoria física (Linux trabaja con memoria virtual y ésta es la única manera que conozco de acceder a una posición física): void teclado() { FILE *fb. Podemos escribir un pequeño programa en ensamblador que lea dichas posiciones de memoria. 1)) { perror("ioperm"). 7 . } exit (0). Vamos a probar un enfoque alternativo. printf("%c". #include <stdio. int i. El buffer de teclado de la BIOS no suele utilizarse más.8 Para aprender más Si hasta ahora os ha gustado. Cuando alguien escribe la contraseña de la BIOS. } Para encontrar el algoritmo de encriptación podemos leer la BIOS (normalmente se puede descargar de la página web del fabricante de la placa madre). pero encontramos la dificultad adicional de que la mayoría de las BIOS están “empaquetadas”[12] y debemos descomprimir su código (los que entienden de ensamblador ya saben a qué me refiero). demasiado trabajo para obtener una contraseña: desempaquetar y desensamblar el código de la BIOS.h> int main() { int i. inb(0x71)). 0x70). Dichos bytes son fáciles de leer. pero ¿podemos obtenerla? Los seis bytes del 0x38 al 0x3D de la CMOS contienen la contraseña. 2.h> #include <unistd. Para ello os recomiendo que tengais a mano el completísimo libro “The BIOS Companion”[10]. i++) { outb(i. 2. y tratar de desensamblarla. que se encuentra a partir del byte 0x1e del area de datos de la BIOS. todo lo que escribe va a parar al buffer del teclado de la BIOS. Dicha área de datos mapea en memoria a partir de la dirección 0x0400. En resumen. fb = fopen("/dev/mem". pero la contraseña está encriptada y el algoritmo de encriptación depende del fabricante y del modelo de la BIOS. todo ello descargable desde internet. 0)) { perror("ioperm").. .. i<=0x3d. unsigned char mem[32]. vamos a profundizar un poco más en la BIOS. Por espacio. } if (ioperm(0x70. así como los mapas[11] de la CMOS. "r"). yo os adjunto un programa en C para Linux. exit(1). Ya sabemos como borrarla.

i<sizeof(mem) && mem[i]!=0.9 Bibliografía y software http://en. 0x041e.org/cmospwd.nu/ [7] Lista de chips de BIOS de ElfQrin: http://www.cgsecurity.ru/biosgfx/ 8 .BIOS: [2] Wikipedia . y de los servicios de la BIOS: http://bioscentral.org/wiki/Bios [1] Wikipedia .CMOS: http://en.packetstormsecurity.org/Crackers/bios/ http://www.htm [12] Desempaquetadores de BIOS: http://www.org/keydisk. de la BIOS Data Area.links.htm http://bioscentral.com/misc/interrupts. i+=2) printf("%c".html http://neworder.password-crackers.pdf [11] Mapas de la CMOS.com/ Para Linux: KHexEdit y GHex [9] keydisk: http://www. mem[i]).11a.packetstormsecurity. fread(&mem.html [6] !bios: http://www. printf("Memoria de teclado de la BIOS: ").com/docs/bios2005. } 0. fclose(fb).cirt.htm http://bioscentral.cgsecurity.box.wikipedia.kaos.org/Crackers/ [5] cmospwd: http://www.pl [4] Directorio de programas para eliminar la contraseña de la BIOS: http://www.com/misc/bda.winhex. sizeof(mem).fseek(fb.exe [10] The BIOS Companion: http://www.electrocution.net/cgi-bin/passwd.com/docs/biospw.html [8] Editores hexadecimales: Para Windows: WinHex http://www. for(i=0. fb).elfqrin. 1. SEEK_SET).org/wiki/Nonvolatile_BIOS_memory [3] Lista de contraseñas por defecto: http://www.wikipedia.php?&key=cmosgrp http://www.com/misc/cmosmap.com/crack.sk/codebox.