Més Vistes de la Secció
- Nokia I71 en vermell i negre
- [MWC 2009] Nokia N86
- Tagoria
- Perduts al Carib amb una Rossa… So Blonde
- Noms per a gossos
- Serveis d'allotjament web gratis
- Review: Samsung F480, part III: programari
- 5 lliçons de negoci de Costco
- Now: dades curioses sobre què està passant ara mateix
- Instal·la fonts escolars en el teu equip
Últimes de la Secció
- Les millors aplicacions per iPhone de la setmana (XLVII)
- Movistar és l'operador dominant en els municipis de menys de 50.000 habitants
- HTC Mini, una prolongació simplificada del nostre smartphone
- BigML: descobriments, reaccions i comunicació
- Microsoft Research modelarà en un programari els ecosistemes terrestres
- H.265, el nou códec que revolucionarà el vídeo en els dispositius mòbils
- Les millors aplicacions mòbils de la setmana (XI)
- BlackBerry 10 en la Super Bowl amb un anunci de diversos milions de dòlars
- Steve Wozniak critica el primer fragment de jOBS
- Tremp Run 2 per Android, llest per descarregar
Jailbreak de Windows RT: Nou mètode més ràpid |
Tecnologia - Gadgets | |||
dissabte, 12 de gener de 2013 00:12 | |||
Windows RT no és una versió retallada de Windows 8, això és el que es confirma per enèsima vegada amb el jailbreak de Windows RT, encara que realment no és un jailbreak en tota regla, anem a veure els detalls dels mètodes i per què un jailbreak no sempre és bo. Primer anem a veure unes qüestions de concepte per entendre ben quins són els mètodes de jailbreak de Windows RT...i per què no és un jailbreak en la seva definició completa. De què es tracta el jailbreak de Windows RT? L'origenPer a això tenim a veure primer què s'intenta trencar, això és: poder executar aplicacions d'escriptori, ja que Microsoft va bloquejar totes les aplicacions en Windows RT que no anessin l'Explorador, IE10, Office 2013 o que no vinguessin de la Windows Store. És a dir, Windows RT no és una versió retallada senzillament de Windows 8, sinó que és un port de Windows 8 a l'arquitectura ARM, i un bé, a més. Aquest bloqueig s'aconsegueix mitjançant la signatura digital de les aplicacions, havent-hi diversos nivells en aquestes signatures per decidir què aplicacions s'executaran o cuales no s'executen, això és el "nivell mínim de signatura" digital requerit perquè una aplicació s'executi. Aquest nivell mínim està representat per un byte en la part segura del kernel, protegida per UEFI, aquests nivells estan escrits directament a nivell de kernel, no són modificables des de l'espai d'usuari. Concretament existeixen 4 nivells de protecció:
Com us haureu imaginat, llavors, el jailbreak de Windows RT es va basar a trobar aquest byte i saltar-se la protecció, aquesta part sonarà fàcil amb paraules, però no és fàcil dur-ho a terme tècnicament, menys descobrir-ho. No podem accedir al kernel, però aquesta variable que representa el nivell mínim d'autorització que necessita una aplicació s'ha de carregar en memòria principal (RAM) cada vegada que l'usuari vagi a executar una aplicació, per un motiu senzill: Com es realitza la verificació si no? Ja tenim el primer indici de com intentar el jailbreak de Windows RT. El següent pas, per tant va ser trobar la llibreria que fa l'autenticació de la signatura, que és CI.dll, aquest procés va ser dut a terme en una màquina amb Windows 8 amb un depurador, després va ser confirmat en Windows RT, en ser est un port de Windows 8. Una vegada oposat, el següent pas és veure com es pot modificar en memòria, això significarà que el jailbreak de Windows RT no serà persistent entre reinicios. És una amenaça de seguretat? Té efectes secundaris?No, no és una amenaça de seguretat, però sí és probable que tingui efectes secundaris, sobretot en la durada de la bateria, encara que si t'endinses en el procés veient la llista d'aplicacions disponibles de moment, és perquè aquest detall no és massa important per a tu o sempre la vas a tenir baix del carregador. Si ben el jailbreak no implica per se una amenaça de seguretat, sí que es poden compilar aplicacions que actuïn com viruses i que corrin en les tablets amb el jailbreak de Windows RT, però aquestes s'hauran anat amb el reinicio, igual que el jailbreak. Executant el jailbreak, mètode ràpidBasat en el treball de l'anterior desenvolupador, s'ha publicat un mètode realment senzill per tenir la nostra Surface o qualsevol Windows RT jailbreakeado, la qual cosa significa que podrem executar aplicacions d'escriptori, encara que això no significa que es puguin executar les mateixes aplicacions que para Windows 7, com si és possible en Windows 8, ja que les aplicacions hauràs d'estar compilades específicament per a l'arquitectura ARM. Tenint el codi font d'una aplicació, portar-ho és fàcil. De fet ja hi ha diverses portades i existeix una llista de les quals ja estan provades i funcionen, majorment aplicacions per a desenvolupadors i emuladors de consoles. Anem a l'embolic, per a la instal·lació:
Noti's que si volem fer-li un cop d'ull al que fa el script ens n'hi ha prou amb obrir-ho amb el bloc de notes, per als curiosos o experimentats. Com hem dit abans, aquest sistema no perdura entre els reinicios del sistema, així que hem d'aplicar-ho amb una petita modificació cada vegada que encenguem nostra tablet (cal esmentar que jo mai l'apago). Anem a això:
Repetim aquesta última part del procés cada vegada que encenguem la tablet i podrem córrer homebrew sense problemes. Quin és el mètode llarg pel jailbreak de Windows RT?Aquí comença la part complicada, gairebé exclusiva per a persones amb alts coneixements tècnics, per la qual cosa si l'assemblador d'ARM o l'hexadecimal et sona a xinès, amb executar el mètode anterior és suficient, que fa exactament el mateix. Per als curiosos o que entenguin de què anem a parlar, comencem: Windows assumeix que certs processos sempre passen informació ben formada al kernel, la qual cosa és una vulnerabilitat en tota regla, n'hi ha prou amb attachearse al procés designat, el problema és que en Windows RT les apps Modern UI no tenen el context de seguretat necessari per fer-ho i no podem córrer aplicacions d'escriptori, així que anem a fer-ho amb Visual Studio i un depurador remot, aquest depurador remot pot attachearse al procés CRSS i manipular el byte del que parlàvem en memòria, que no està exportat en cap símbol en el kernel, per cert. La funció vulnerable és NtUserSetInformationThread, que es diu diverses vegades des de CRSS, treballarem sobre la llibreria winsrv.dll per ser la que té els paràmetres indicats per l'exploit: TerminalServerRequestThread+0x230 MOVS R3, #0xC ADD R2, SP, #0x58 MOVS R1, #9 MOV R0, 0xFFFFFFFE BL NtUserSetInformationThread Ara el que haurem de fer és executar el codi i posar un punt de ruptura del depurador per poder modificar l'estructura de R2 abans que cridi a NtUserSetInformationThread i fer-nos amb la vulnerabilitat. El problema és que això no és una solució de per si mateix viable, ja que necessitem restar 0×80000, en lloc d'1, que és el que resta aquest exploit; això és a causa que l'offset del byte que porta la informació de la signatura mínima necessària és 0x19FFA6. Per seguir el procés necessitarem saber l'adreça de memòria on s'allotja el kernel, això sí que es pot fer des d'una aplicació Modern UI en C++ amb la funció NtQuerySystemInformation. Per usar aquesta funció necessitarem fer unes modificacions per poder cridar a l'API completa de C++ des d'una aplicació de la Windows Store. Passant una altra vegada al depurador remot en Visual Studio, des de la posició 0×10800 en winsrv.dll, correm: push {r5-r8} mov r7, 0x80000 ldr r8, my_addr loc_loop_begin movs r3, 0xC add r2, sp, 0x68 ;0x58 org. add r5, r2, 4 str r8, [r5] movs r1, 9 mvn r0, 1 mov r12, 0x10I1 svc 1 subs r7, r7, 1 cmp r7, 0 bne loc_loop_begin pop {r5-r8} mov r0, r0 ;#punt de ruptura my_addr dcd <ADREÇA> end Òbviament on posa <ADREÇA> hem de posar l'adreça basi del nostre kernel, sumant-li 0x19FFA4 + 0x18. Abans d'executar això posem un punt de ruptura abans de la trucada al mètode en NtUserSetInformationThread en TerminalServerRequestThread, que s'activarà quan pressionem un botó de volum. Després d'això el que farem és redireccionar el registre que guarda el punter de la següent instrucció a la posició de memòria on està el codi que hem posat a dalt, executem i redireccionamos al primer punt de ruptura. Quan tornem a executar, tindrem el jailbreak de Windows RT. L'entrada Jailbreak de Windows RT: Nou mètode més ràpid apareix primer en Celularis.
Compartir
Enviar a un amic
Visites: 10 Trackback(0)
Comentaris (0)
Escriu un comentari
|