[MAJ 3]haxchi: un hack Wii U persistant

haxchi est un hack par smealum de la Wii U qui est persistant au reboot, donc du contenu non signé est installé directement dans la console !
Mise à jour: FIX94 a publié une version modifiée de haxchi qui permet de lancer Homebrew Launcher en utilisant plusieurs jeux.


Mise à jour 3 (15/11/2016): Cette fois-ci, ajout du support de plusieurs jeux : Mario Kart DS, new super mario bros,star fox command et phantom hourglass
Mise à jour 2 (14/11/2016): FIX94 a encore mit à jour Haxchi pour supporter également le jeu Wario Ware Touched ainsi qu'un chargement de fichiers avec une configuration de boutons.

Mise à jour :
A cette adresse vous pouvez trouver un fork (une modification) de haxchi faite par FIX94 permettant, si vous avez acheté le jeu Dr Kawashima, de lancer Homebrew Launcher, Kirby les souris attaquent ou Yoshi's Island au moment où vous tentez de lancer le jeu. Regardez la vidéo ci dessous :

La commande pour installer est la même, hormis qu'il faut changer l'identifiant du jeu :
w.up("rom.zip", "/vol/storage_mlc01/usr/title/00050000/101A5600/content/0010/rom.zip")
ou
w.up("rom.zip", "/vol/storage_usb01/usr/title/00050000/101A5600/content/0010/rom.zip")

Ce hack exploite des failles dans l'émulateur console virtuelle nintendo DS, donc vous aurez besoin d'avoir un jeu original DS installé depuis l'eShop sur votre console.
De plus, pour pouvoir installer les fichiers, vous aurez besoin d'une console déjà hackée avec IOSUhax.
Cependant, une fois installé, la faille réside dans le fait que la console ne va pas vérifier si le contenu que vous avez ajouté est autorisé par Nintendo ou non.

Etant donné qu'en modifiant un fichier de config pour lancer directement un titre au lancement de la console, vous pouvez faire un "coldboothax", donc un lancement automatique du hack lorsque vous allumez la console. Sinon, vous devrez lancer le jeu depuis le menu pour lancer le hack. Par contre, gros risque de brick en utilisant ce coldboothax.

Quote:
haxchi

haxchi is an exploit for the Nintendo DS virtual console emulator on Wii U (hachihachi). it is possible due to "contenthax", a vulnerability in the wii u's title integrity design: only code and critical descriptors are signed, with all other contents left at the mercy of attackers. this can be exploited simply by asking IOSU to copy over files in /content/ directories on either MLC or USB. contenthax can also be exploited from powerpc userland by using the MCP_CopyTitle command (not all processes have access, but for example home menu and system settings have it). as there is no integrity data for that content, CopyTitle cannot validate the malicious content and will therefore happily copy it from SD card to MLC or USB if asked.

it is likely that virtually all apps can be exploited in some way through contenthax, due to developers being less likely to program defensively against content that they should be the only ones to have control over. the Nintendo DS virtual console app was selected for this exploit because it has the ability to dynamically emit executable code. as a nice bonus, hachihachi includes symbols for its code. haxchi exploits a bug in the emulator's rom loader, and basically gets it to perform arbitrary memcpy operations. from there, achieving code execution is trivial given that there is no ASLR in place.

note that haxchi was my first time doing PPC ROP so... yeah
coldboothax

haxchi (and indeed any other contenthax) can be used to achieve persistent automatic unsigned code execution on the wii u. this is due to the fact that the wii u can be configured to boot into any given title simply by modifying a file on the SLC. the file in question is sys/config/system.xml, and ... can be set to any arbitrary title ID, such as hachihachi's.

NOTE: it is very easy to brick a wii u by messing with this file, so don't do it unless you really know what you're doing.
install process

haxchi can be very easily installed using iosuhax's wupclient. for example, if hachihachi is installed to the MLC, it suffices to do:

w.up("rom.zip", "/vol/storage_mlc01/usr/title/00050000/101A5600/content/0010/rom.zip")

of course, using wupclient to install haxchi permanently requires that redNAND be disabled, unless hachihachi is installed to USB, in which case it can be installed from redNAND using:

w.up("rom.zip", "/vol/storage_usb01/usr/title/00050000/101A5600/content/0010/rom.zip")

coldboothax can be installed by downloading system.xml as so:

w.dl("/vol/system/config/system.xml")

modifying it, and then uploading it back:

w.up("system.xml", "/vol/system/config/system.xml")

contents

haxchi_code: basic demo (native code)
haxchi_rop.s: hachihachi process ROP which will emit haxchi_code as executable
haxchi.s: generates a malicious SRL file

credit

smea, plutoo, yellows8, naehrwert and derrek

Pour résumer, ce n'est pas forcément nécessaire puisque vous devez déjà avoir hacké votre console avec IOSUhax (qui je vous le rappelle permet d'installer un CFW qui va désactiver les vérifications de signature), mais ça vous permet néanmoins de combiner les deux pour utiliser l'exploit dans le jeu DS pour lancer le hack plutôt que passer par l'exploit webkit (le navigateur internet).

https://github.com/smealum/haxchiSite officiel : https://github.com/smealum/haxchi

1 commentaire

14
nov

Portrait de Attila

mise à jour de la news 2