HACKEJAR LA BIOS per Alex Castan Salinas acastan@xtec.cat Hola xiquets i xiquetes. En aquestes linies que a continuacio segueixen m'agradaria haver continuat la saga d'articles sobre hacking local i haver explicat com hackejar una maquina amb Linux quan hi tenim acces fisic. El fet es que no he pogut per questio de temps i haurem d'aplacar aquest article. En canvi, escriure un article breu sobre un tema molt relacionat amb la saga de hacking local: com hackejar la BIOS. En molts casos en que estem intentant hackejar localment una maquina, ens trobarem que per aconseguir un major control sobre aquesta (ja sigui per aconseguir el fitxer de contrasenyes, ja sigui per modificar un fitxer sobre el que no tenim privilegis, etc.) haurem de reiniciar-la i arrencar de nou amb un disquet o CD-ROM. De vegades aixo no sera possible perque han configurat la BIOS per tal que el PC arrenqui nomes des del disc dur i han protegit la BIOS amb contrasenya per tal que no podem canviar la seva configuracio. A continuacio veurem com saltar-nos aquesta proteccio per contrasenya de la BIOS. Pero anem per passos ... INTRODUCCIO =========== La BIOS es un petit microprocessador situat a la placa mare del PC que, entre d'altres coses, controla com es realitza el proces d'arrencada quan encenem l'ordinador, com es realitza el test dels diferents dispositius, etc. Per tal d'assolir el seu objectiu, la BIOS necessita guardar a una petita memoria anomenada CMOS dades sobre la configuracio de l'ordinador: de quines unitats de disc disposa i de quin tipus son, amb quina unitat de disc s'intentara arrencar primer, l'hora i la data del sistema, la contrasenya per accedir a configurar la BIOS, etc. Ha de quedar clar que aquesta petita memoria no esta alimentada amb el mateix corrent electric que la resta de l'ordinador, ja que sino quan apaguessim aquest es perdria el contingut de la CMOS. La CMOS esta alimentada apart per una petita bateria auxiliar que tambe esta situada sobre la placa mare, normalment a prop del chip de la BIOS. Hi han diversos tipus de bateria, pero el mes normal es trobar una pila de boto CR-2032, que te uns dos anys de duracio. Per accedir al menu de configuracio de la BIOS, normalment cal premer en el proces d'arrencada de l'ordinador les tecles Del, F1 o CTRL+ALT+S. Es en aquest moment que ens podem trobar amb una contrasenya que ens impedeixi configurar la BIOS. Anem a saltar-nos-la ... PORTES TRASSERES ================ Els principals fabricants de BIOS (aqui AWARD, AMI i PHOENIX) van instal.lar als seus primers models de BIOS contrasenyes addicionals, per si un usuari que havia protegit amb contrasenya l'acces a la BIOS del seu ordinador posteriorment havia oblidat aquesta contrasenya. Per exemple, totes les BIOS Award 4.50 tenen la paraula de pas universal AWARD_SW, i totes les BIOS Award 4.51 a plaques mare de la marca Soyo tenen la paraula de pas universal SY_MB. Aqui tenim un recull de contrasenyes: * Advance Integration: Advance * AMI: 589589, A.M.I., aammii, AMI, AMI!SW, AMI.KEY, ami.kez, AMI SW, 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, 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 * TMC: BIGO * Toshiba: 24Banc81, Toshiba, toshy99 * Vextrec Technology: Vextrex * Vobis: merlin * WIMBIOSnbsp BIOS v2.10 Compleri * Zenith: 3098z, Zenith * ZEOS: zeosx A algunes d'aquestes contrasenyes de vegades cal canviar el caracter _ pel caracter ? (coses del teclat internacional). ESBORRAR LA BIOS MITJANCANT SOFTWARE ==================================== Existeixen multitud de petits programes que ens permeten esborrar la contrasenya de la BIOS. En un cas desesperat, tambe existeixen programes que ens permeten esborrar tota la informacio de la BIOS. En aquest ultim cas, caldra reconfigurar la BIOS despres d'haver-la esborrat. Podem trobar aquests programes a les seguents adreces: - http://www.password-crackers.com/crack.html - http://neworder.box.sk , a l'apartat #Utilities, al subapartat #BIOS/CMOS tools. El meu preferit es CMOSPWD, que es troba en constant evolucio i sota llicencia GPL (software lliure). El trobareu per diversos sistemes operatius a l'adreca http://www.cgsecurity.org/cmospwd.html. A l'hora d'executar aquest o d'altres programes haureu de tenir en compte el sistema operatiu sobre el qual ho feu: - Si l'executeu sobre DOS o Windows 9x segurament tot anira be. - Si l'executeu sobre Linux o *BSD us caldra privilegis de root per tenir acces d'escriptura a la CMOS mitjancant la funcio del sistema 'ioperm'. - Si l'executeu sobre Windows NT us caldra tenir instal.lat i executant-se el controlador 'gwiopm', que utilitza les funcions del kernel 'Ke386SetIOAcessMap' i 'Ke386IoSetAccessProcess' per donar als processos d'usuari (anell 3) acces directe d'entrada i sortida al port especificat. Per instal.lar aquest controlador ('instdrv gwiopm c:\tmp\gwiopm.sys') i per esborrar-lo ('instdrv gwiopm remove') us caldran privilegis d'administrador. Tambe podem reinicialitzar la BIOS fent servir la comanda DEBUG del MS-DOS per esborrar la suma de comprovacio de la CMOS. Es millor executar la comanda treballant sobre MS-DOS pur i dur que sobre una finestra MS-DOS de Windows. A continuacio escrivim: per BIOS AMI i AWARD -------------------- O 70 17 O 71 17 Q per BIOS PHOENIX ---------------- O 70 FF O 71 17 Q o per qualsevol BIOS ----------------------------------------------- O 70 2E O 70 2E O 71 FF o tambe O 71 00 Q Q (La comanda O del DEBUG escriu al port especificat un byte, i la comanda Q surt del programa). Si mitjancant software no hem aconseguit esborrar la contrasenya de la CMOS, doncs haurem de passar als grans remeis i esborrarem la contrasenya mitjancant hardware. Haurem d'apagar l'ordinador, obrir la seva caixa i tallar momentaniament l'alimentacio electrica cap a la CMOS, esborrant tot el seu contingut. Com veureu, es mes senzill del que sembla ... (Encara que si el que voliem era accedir a la informacio del disc dur i hem d'obrir la caixa de l'ordinador, potser el mes senzill sigui extreure el disc dur i connectar-lo a un altre ordinador.) ESBORRAR LA BIOS MITJANCANT JUMPERS =================================== Els jumpers son uns petits interruptors presents a la placa mare que ens permeten configurar-la. A les plaques mares modernes existeix un jumper tal que canviant momentaniament la seva posicio esborra el contingut de la CMOS. La situacio d'aquest jumper varia en cada model de placa mare, pero normalment es situa molt a prop de la BIOS. Millor que us assegureu consultant el manual de la placa mare que podeu trobar a la pagina web del fabricant de la placa. ESBORRAR LA BIOS TREIENT LA BATERIA =================================== Potser mes senzill que el procediment anterior es cercar a la placa mare la pila que alimenta la CMOS i treure-la durant uns instants (millor 30 minuts per estar segurs). Quan la tornem a posar la CMOS estara desconfigurada. En cas contrari, toca repetir el proces pero treient la bateria durant mes temps. ESBORRAR LA BIOS CORTCIRCUITANT EL CHIP ======================================= Aquest es l'ultim metode que conec i consisteix en curtcircuitar dos pins del chip de la BIOS durant uns segons. S'ha d'anar amb compte perque aquesta operacio pot malmetre el chip. Els pins a curtcircuitar depenen dels chips EPROM emprats per fabricar la BIOS. A continuacio afegeixo una llista amb els chips mes populars que podeu trobar, pero aquesta llista no l'he elaborat jo sino Elf Qrin al seu article http://www.elfqrin.com/docs/biospw.html CHIPS P82C206 (quadrat) ----------------------- Curtcircuitar els pins 12 i 32 (el primer i l'ultim pin de la vora inferior del chip) o els pins 74 i 75 (els dos pins de la cantonada superior esquerre). 74 terra |__________________ 5v 75--| | | | | | | CHIPS | 1 * | | | P82C206 | | | | | |___________________| | | 12 terra 32 5v OPTi F82C206 (rectangular) -------------------------- Curtcircuitar els pins 3 i 26 (el tercer pin de la cara esquerre i el cinque pin de la cara dreta de la vora inferior). 80 51 |______________| 81 -| |- 50 | | | | | OPTi | | | | F82C206 | | | 100-|________________|-31 || | | 1 || | | 30 3 26 Dallas DS1287, DS1287A, Benchmarq bp3287MT i bq3287AMT ------------------------------------------------------ Aquests chips tenen la bateria construida dintre del mateix chip, i dura 10 anys. Aixo vol dir que les plaques mares que utilitzen aquests chips no tindran una bateria addicional i que quan la bateria del chip es gasti caldra reemplacar-lo. Als chips 1287A i 3287AMT curtcircuitar els pins 12 i 21. Als chips 1287 i 3287MT no es pot esborrar la CMOS i cal reemplacar-los. Encara que son chips de 24 pins, potser que manquin 5 pins que no s'usen. Molts chips tenen pins que no usen, encara que normalment son presents. __________ 1 -| * U |- 24 5v 2 -| |- 23 3 -| |- 22 4 -| |- 21 RCL (RAM Clear) 5 -| |- 20 6 -| |- 19 7 -| |- 18 8 -| |- 17 9 -| |- 16 10 -| |- 15 11 -| |- 14 terra 12 -|__________|- 13 Dallas DS12885S, Benchmarq bq3258S, Hitachi HD146818AP i Samsung KS82C6818A --------------------------------------------------------------------------- Son chips DIP rectangulars de 24 pins, normalment sobre un socol. El nombre escrit sobre aquests chips acaba en 6818. Aquests chips son compatibles en pins amb el Dallas 1287/1287A, encara que sense bateria interior. Curtcircuitar els pins 12 i 24. 24 5v 20 13 |___________|____________________| | | | DALLAS | |> | | DS12885S | | | |__________________________________| | | 1 12 terra Motorola MC146818AP ------------------- Curtcircuitar els pins 12 i 24 (son els pins de les cantonades inferior esquerra i superior dreta). Tambe es pot provar els pins 12 i 20. __________ 1 -| * U |- 24 5v 2 -| |- 23 3 -| |- 22 4 -| |- 21 5 -| |- 20 6 -| |- 19 7 -| |- 18 8 -| |- 17 9 -| |- 16 10 -| |- 15 11 -| |- 14 terra 12 -|__________|- 13 PORTATILS ========= Al tema de la desproteccio de la BIOS, els portatils son un punt apart. Per millorar la seguretat i protegir-los contra robatoris, molts portatils no guarden la contrasenya a la CMOS, sino a la mateixa EEPROM que conte la BIOS. D'aquesta manera, la contrasenya no desapareix quan traiem la bateria. En aquests casos, per recuperar la contrasenya caldra un dispositiu electronic anomenat programador d'EEPROMs, que es pot aconseguir a qualsevol botiga d'electronica. Haurem de treure amb molta cura la EEPROM del portatil i llegir el seu contingut a un segon PC amb el programador d'EEPROMs. Si encara i aixi no trobem la contrasenya, podem omplir la EEPROM amb zeros (byte amb valor 00) o uns (byte amb valor FF). Encara i aixi molts portatils tenen portes trasseres que utilitzen els seus serveis tecnics com a manera rapida de recuperar la contrasenya dels clients que l'han oblidat. Les uniques conegudes per mi son les dels portatils Toshiba, que a continuacio us exposo: - Als models mes antics, cal construir un disc clau editant un disquet amb algun editor hexadecimal com WinHex (http://www.winhex.com/) o HexWorkshop (http://www.bpsoft.com/). Heu de formatejar el disquet i modificar els cinc primers bytes del seu segon sector (el que va darrera del sector d'arrencada) per escriure els valors: 4B 45 59 00 00 (el codi ASCII de KEY seguit de dos zeros). Tambe podeu crear el disc clau automaticament amb la utilitat 'keydisk' (http://www.cgsecurity.org/keydisk.exe). A continuacio poseu aquest disquet al Toshiba i reinicieu prement el boto de reset. Quan pregunti per la contrasenya premeu ENTER. Quan pregunti de nou per la contrasenya premeu Y i ENTER. En teoria haurieu d'accedir a la BIOS i poder activar una nova contrasenya. - Als models mes nous, cal construir una clau pel port paral.lel o anar a una botiga d'electronica a que us la facin. Es tracta d'un connector que es posa al port paral.lel per desbloquejar el Toshiba. Per fer la clau us caldra un connector de port paral.lel de 25 pins com el del dibuix, cable electric, una soldadora i estany per soldar. Haureu de connectar els pins: 1-5-10, 2-11, 3-17, 4-12, 6-16, 7-13, 8-14, 9-15, 18-25. 1__________13 \________/ 14 25 ------------------------------------------------------------------------------ Hackejar la BIOS - Revisio 2.0 Copyleft (c) Alejandro Castan Salinas Es concedeix el permis per copiar, distribuir i/o modificar aquest document sota els termes de la llicencia de documentacio lliure GNU, versio 1.1 o qualsevol altre versio posterior publicada per la Free Software Foundation. Podeu consultar dita llicencia a http://www.gnu.org/copyleft/fdl.html. El contingut d'aquest document pot canviar degut a ampliacions i a correccions enviades pels lectors. Trobareu sempre la ultima versio del document a http://www.xtec.es/~acastan/textos/index.html. Breu historia del document: v1.0 Primera publicacio del document. v1.5 Correccions diverses i ampliada la llista de contrasenyes per defecte. v2.0 Correccions diverses i afegida la seccio de portatils. Per fer: - Revisar les adreces d'Internet.