Вы находитесь на странице: 1из 8

0 Desproteccin de la contrasea de la BIOS

0.1 Introduccin

En muchos casos en que con acceso fsico 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 contraseas, 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 slo desde el disco duro, y hayan protegido la BIOS con contrasea para que no podamos cambiar su configuracin. La BIOS[1] es un pequeo 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 pequea memoria llamada CMOS[2] datos sobre la configuracin 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 contrasea para acceder a configurar la BIOS, etc. Debe quedar claro que esta pequea memoria no est alimentada con la misma corriente elctrica que el resto del ordenador, ya que sino cuando apagsemos ste se perdera el contenido de la CMOS. La CMOS est alimentada aparte por una pequea batera auxiliar que tambin est situada sobre la placa madre, normalmente cerca del chip de la BIOS. Hay diversos tipos de batera, pero lo ms normal es encontrar una pila de botn CR-2032, que tiene unos dos aos de duracin. Para acceder al men de configuracin 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 contrasea que nos impida configurar la BIOS. Vamos a saltrnosla ...

0.2

Puertas traseras

Los principales fabricantes de BIOS (en nuestro pas AWARD, AMI y PHOENIX) instalaron en sus primeros modelos de BIOS contraseas adicionales, por si un usuario que haba protegido con contrasea el acceso a la BIOS de su ordenador posteriormente haba olvidado dicha contrasea. 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 recopilacin de contraseas[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, SER, setup, SKY_FOX, SWITCHES_SW, Syxz, Sxyz, SZYX, t0ch20x, t0ch88, TTPTHA, ttptha, TzqF, Wodj, wodj, ZAAADA, ZBAAACA, zbaaaca, ZJAAADC, zjaaadc Biostar: Biostar, 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, MBIUO, sertafu IBM Aptiva: premer els dos botons del ratoli Iwill: iwill JetWay: spoom1 Joss Technology: 57gbz6, technologi M technology: mMmM MachSpeed: sp99dd Magic-Pro: prost Megastar: star Micron: sldkj754, xyzall Micronics: dn_04rjc Nimble: xdfk9874t3 Packard Bell: bell9 QDI: QDI Quantex: teX1, xljlbj Research: Col2ogro2 Shuttle: Spacve Siemens Nixdorf: SKY_FOX SpeedEasy: lesarot1 SuperMicro: ksdjfg934t Tinys: Tiny 2

TMC: BIGO Toshiba: 24Banc81, Toshiba, toshy99 Vextrec Technology: Vextrex Vobis: merlin WIMBIOSnbsp BIOS v2.10: Compleri Zenith: 3098z, Zenith ZEOS: zeosx Aviso: en algunas de estas contraseas a veces hace falta cambiar el carcter _ por el carcter ?, cuando trabajamos con un teclado en castellano en lugar del teclado internacional.

0.3

Borrar la BIOS mediante software

Existen multitud de pequeos programas que nos permiten borrar la contrasea de la BIOS[4]. En un caso desesperado, tambin existen programas que nos permiten borrar toda la informacin de la BIOS. En este ltimo caso, har falta reconfigurar la BIOS despus de haberla borrado. De estos programas, mi preferido es cmospwd[5], que se encuentra en constante evolucin, y disponible para diversos sistemas operativos bajo licencia GPL de software libre. Tambin el programa !bios[6] est bastante bien. Cuando ejecutis este u otros programas deberis tener en cuenta el sistema operativo sobre el cual lo hacis: Si lo ejecutis sobre DOS o Windows 9x seguramente todo ir bien. Si lo ejecutis sobre Linux o *BSD deberis poseer privilegios de root para tener acceso de escritura a la CMOS mediante la funcin del sistema ioperm. Si lo ejecutis sobre Windows NT os har falta tener instalado y ejecutndose el controlador gwiopm, 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.sys) y para borrarlo (instdrv gwiopm remove) deberis poseer privilegios de administrador. Tambin podemos reinicializar la BIOS utilizando el comando debug de DOS para borrar la suma de comprobacin de la CMOS. El comando O de debug escribe en el puerto especificado un byte, y el comando Q sale del programa. Es mejor ejecutar el comando trabajando sobre DOS puro y duro que sobre una ventana MS-DOS de Windows. A continuacin 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 tambin O 70 2E O 71 00 Q

El equivalente programando en C para Linux seria algo parecido a esto:


#include <sys/io.h> ioperm(0x70, 2, 1); outb(0x2e, 0x70); outb(0xff, 0x71); ioperm(0x70, 2, 0); // // // // pide permiso para utilizar los puertos 0x70 y 0x71 mediante el puerto 0x70 indica el byte de la CMOS mediante el puerto 0x71 enva un dato a la CMOS cede permisos para utilizar los puertos 0x70 y 0x71

Si mediante software no hemos conseguido borrar la contrasea de la CMOS, entonces deberemos pasar a los grandes remedios y borrar la contrasea mediante hardware. Para ello, tendremos que apagar el ordenador, abrir su caja y cortar momentneamente la alimentacin elctrica hacia la CMOS, borrando todo su contenido. Como veris, es ms sencillo de lo que parece ... (Aunque si lo que queramos era acceder a la informacin del disco duro y tenemos que abrir la caja del ordenador, quizs lo ms prctico entonces sea extraer el disco duro y conectarlo a otro ordenador.)

0.4

Borrar la BIOS mediante jumpers

Los jumpers son unos pequeos interruptores presentes en la placa madre que nos permiten configurarla. En las placas madre modernas existe un jumper tal que, cambiando momentneamente su estado, borra el contenido de la CMOS. La posicin de dicho jumper vara en cada modelo de placa madre, pero normalmente se sita muy cerca de la BIOS. Mejor que os aseguris consultando el manual de la placa madre, que podis encontrar en la pgina web del fabricante de la placa.

0.5

Borrar la BIOS sacando la batera

Quizs ms 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). Cuando la volvamos a poner, la CMOS estar desconfigurada. En caso contrario, toca repetir el proceso pero sacando la batera durante ms tiempo.

Figura 5.1 Batera que alimenta la CMOS, y jumper para borrar sus valores.

0.6

Borrar la BIOS cortocircuitando el chip

Este es el ltimo mtodo que conozco, y consiste en cortocircuitar dos patillas del chip de la BIOS durante unos segundos. Se debe ir con cuidado porque esta operacin puede estropear el chip. Las patillas a cortocircuitar dependen de los chips EPROM utilizados para fabricar la BIOS. 4

A continuacin adjunto una lista con los chips ms populares que podis encontrar, pero dicha lista no la he elaborado yo sino ElfQrin[7]. CHIPS P82C206 (cuadrado): Cortocircuitar las patillas 12 y 32 (la primera y la ltima patilla del borde inferior del chip), o las patillas 74 y 75 (las dos patillas de la esquina superior izquierda).
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).
80 51 !"##############"$ 81 #% )# 50 OPTi F82C206 100#% )# 31 &'#'##########'#'( 1 3 26 30

Dallas DS1287, DS1287A, Benchmarq bp3287MT y bq3287AMT: Tienen la batera construida dentro del mismo chip, y sta dura 10 aos. Esto quiere decir que las placas madre que utilicen estos chips no tendrn una batera adicional, y que cuando la batera del chip se gaste har falta reemplazarlo. En los chips 1287A y 3287AMT cortocircuitar las patillas 12 y 21. En los chips 1287 y 3287MT no se puede borrar la CMOS y hace falta reemplazarlos. Aunque son chips de 24 patillas, puede que falten 5 patillas que no se usan (muchos chips tienen patillas que no se usan, aunque normalmente estn presentes).
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, Benchmarq bq3258S, Hitachi HD146818AP y Samsung KS82C6818A: Son chips DIP rectangulares de 24 patillas, normalmente sobre un zcalo. El nombre escrito sobre estos chips acaba en 6818. Estos chips son compatibles en patillas con el Dallas 1287/1287A, aunque sin batera interior. Cortocircuitar las patillas 12 y 24.
24 5v 20 13 !"###########"####################"$

DALLAS > DS12885S &'################################'( 1 12 tierra

Motorola MC146818AP: Cortocircuitar las patillas 12 y 24 (son las patillas de las esquinas inferior izquierda y superior derecha). Tambin se pueden probar las patillas 12 y 20.
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.7

Portatiles

En el tema de la desproteccin de la BIOS, los porttiles son un punto a parte. Para mejorar la seguridad y protegerlos contra robos, muchos porttiles no guardan la contrasea en la CMOS, sino en la misma EEPROM que contiene la BIOS. De esta manera, la contrasea no desaparece cuando extraemos la batera. En estos casos, para recuperar la contrasea har falta un dispositivo electrnico llamado programador de EEPROMs, que se puede conseguir en cualquier tienda de electrnica. Tendremos que sacar con mucho cuidado la EEPROM del porttil y leer su contenido en un segundo PC con el programador de EEPROMs. Si todava no encontramos la contrasea, podemos llenar la EEPROM con ceros (byte con valor 00) o unos (byte con valor FF). Aun as muchos porttiles tienen puertas traseras que utilizan sus servicios tcnicos como manera rpida de recuperar la contrasea de los clientes que la han olvidado. Las nicas conocidas por m son las de los porttiles Toshiba, que a continuacin os expongo: En los modelos ms antiguos, hace falta construir un disco llave editando un disquete con algn editor hexadecimal[8]. Debis formatear el disquete y modificar los cinco primeros bytes de su segundo sector (el que va detrs del sector de arranque) para escribir los valores: 4B 45 59 00 00 (el codigo ASCII de KEY seguido de dos ceros). Tambin podis crear el disco llave automticamente con la utilidad keydisk[9]. A continuacin insertis dicho disquete en el Toshiba y reiniciis pulsando el botn de reset. Cuando pregunte por la contrasea pulsad ENTER. Cuando pregunte de nuevo per la contrasea pulsad Y y ENTER. En teora deberais acceder entonces a la BIOS y poder activar una nueva contrasea. En los modelos ms nuevos, hace falta construir una llave para el puerto paralelo o ir a una tienda de electrnica a que os la hagan. Se trata de un conector que se pone en el puerto paralelo para desbloquear el Toshiba. Para construir la llave necesitareis un conector de puerto paralelo de 25 pines como el del dibujo, cable elctrico, una soldadora y estao para soldar. Debis conectar los pines: 1-5-10, 2-11, 3-17, 4-12, 6-16, 7-13, 8-14, 9-15, 18-25.
01__________13 \________/ 14 25

0.8

Para aprender ms

Si hasta ahora os ha gustado, vamos a profundizar un poco ms en la BIOS. Para ello os recomiendo que tengais a mano el completsimo libro The BIOS Companion[10], as como los mapas[11] de la CMOS, de la BDA y de los servicios de la BIOS, todo ello descargable desde internet. Hasta ahora hemos hablado de como descativar la contrasea de la BIOS. Ya sabemos como borrarla, pero podemos obtenerla? Los seis bytes del 0x38 al 0x3D de la CMOS contienen la contrasea. Dichos bytes son fciles de leer, pero la contrasea est encriptada y el algoritmo de encriptacin depende del fabricante y del modelo de la BIOS.
#include <stdio.h> #include <unistd.h> #include <sys/io.h> int main() { int i; if (ioperm(0x70, 2, 1)) { perror("ioperm"); exit(1); } for (i=0x38; i<=0x3d; i++) { outb(i, 0x70); usleep(100000); printf("%c", inb(0x71)); } if (ioperm(0x70, 2, 0)) { perror("ioperm"); exit(1); } exit (0); }

Para encontrar el algoritmo de encriptacin podemos leer la BIOS (normalmente se puede descargar de la pgina web del fabricante de la placa madre), y tratar de desensamblarla, pero encontramos la dificultad adicional de que la mayora de las BIOS estn empaquetadas[12] y debemos descomprimir su cdigo (los que entienden de ensamblador ya saben a qu me refiero). En resumen, demasiado trabajo para obtener una contrasea: desempaquetar y desensamblar el cdigo de la BIOS, encontrar el algoritmo de encriptacin e invertirlo, ... Vamos a probar un enfoque alternativo. Cuando alguien escribe la contrasea de la BIOS, todo lo que escribe va a parar al buffer del teclado de la BIOS, que se encuentra a partir del byte 0x1e del area de datos de la BIOS. Dicha rea de datos mapea en memoria a partir de la direccin 0x0400, por lo que a partir de la posicin de memoria 0x041e podemos encontrar la contrasea que dicha persona escribi. El buffer de teclado de la BIOS no suele utilizarse ms, y la contrasea queda en claro en dicha posicin de memoria hasta que se apaga el ordenador. Podemos escribir un pequeo programa en ensamblador que lea dichas posiciones de memoria. Por espacio, yo os adjunto un programa en C para Linux, que utiliza el dispositivo /dev/mem para leer la memoria fsica (Linux trabaja con memoria virtual y sta es la nica manera que conozco de acceder a una posicin fsica):
void teclado() { FILE *fb; unsigned char mem[32]; int i; fb = fopen("/dev/mem", "r"); if (!fb) return;

fseek(fb, 0x041e, SEEK_SET); fread(&mem, 1, sizeof(mem), fb); fclose(fb); printf("Memoria de teclado de la BIOS: "); for(i=0; i<sizeof(mem) && mem[i]!=0; i+=2) printf("%c", mem[i]); }

0.9

Bibliografa y software
http://en.wikipedia.org/wiki/Bios

[1] Wikipedia - BIOS: [2] Wikipedia - CMOS: http://en.wikipedia.org/wiki/Nonvolatile_BIOS_memory [3] Lista de contraseas por defecto: http://www.cirt.net/cgi-bin/passwd.pl [4] Directorio de programas para eliminar la contrasea de la BIOS: http://www.password-crackers.com/crack.html http://neworder.box.sk/codebox.links.php?&key=cmosgrp http://www.packetstormsecurity.org/Crackers/bios/ http://www.packetstormsecurity.org/Crackers/ [5] cmospwd: http://www.cgsecurity.org/cmospwd.html [6] !bios: http://www.11a.nu/ [7] Lista de chips de BIOS de ElfQrin: http://www.elfqrin.com/docs/biospw.html [8] Editores hexadecimales: Para Windows: WinHex http://www.winhex.com/ Para Linux: KHexEdit y GHex [9] keydisk: http://www.cgsecurity.org/keydisk.exe [10] The BIOS Companion: http://www.electrocution.com/docs/bios2005.pdf [11] Mapas de la CMOS, de la BIOS Data Area, y de los servicios de la BIOS: http://bioscentral.com/misc/cmosmap.htm http://bioscentral.com/misc/bda.htm http://bioscentral.com/misc/interrupts.htm [12] Desempaquetadores de BIOS: http://www.kaos.ru/biosgfx/

Вам также может понравиться