Aller au contenu


Photo

WiiU: La faille du navigateur WiiU est disponible.


  • Veuillez vous connecter pour répondre
23 réponses à ce sujet

Posté 18 juin 2014 - 10:13

#1
RomAnOCrY

RomAnOCrY

    CryptoManiac

  • Modérateur
  • 2 090 messages
  • Sexe:Male
  • Lieu:28
  • Passions:https://romainj.com
Après un leak, c'est désormais une version officielle de l'exploit du navigateur Wii U qui est disponible. Pour rappel, cette faille ne permet pas encore le lancement d'un éventuel exploit permettant de lancer des jeux. C'est néanmoins une avancée évidente, qui rappelons-le est bloquée doit être adaptée à la dernière mise à jour Wii U officielle.
 
Assez complexe à mettre en place pour des novices, voici le ReadMe qui l'accompagne:
 

This repository contains a way to run code inside the Wii U's web browser. It provides a means to execute arbitrary code in the Cafe OS userspace on the Espresso processor. It does not allow running code in Espresso kernel-mode or provide any access to the Starbuck. We hope to implement this in the future, but the exploit is currently limited to userspace only. Right now, the only Wii U system software versions supported are 4.0.x and 4.1.0. 5.0.0 has the WebKit bug, but there is no exploit for it yet.

What's inside?

Inside this repository, you will find a set of tools that allow you to compile your own C code and embed it inside a webpage to be executed on the Wii U. There are also a few code examples doing certain tasks on the Wii U. Most notably, there is an RPC client which allows your Wii U to execute commands sent over the network from a Python script. Nothing in this repository is useful to the general public. You will only find it useful if you are a C programmer and want to explore the system by yourself.

How do I use this?

C build system

This repository contains a C build system, which allows you to compile your own C code and embed it inside a webpage to be executed on the Wii U. The webpage contains some Javascript code that triggers the WebKit bug and passes control to your C code. Running your own C code on the Wii U gives you full access to the SDK libraries. Any function's address can be retrieved if you know its symbol name and containing library's name (more on this below). Before using the C build system, you must have the following tools:

  • Unix-like shell environment (use Cygwin to get this on Windows)
  • devkitPPC (needed to compile and link the C code)
  • Python 3.x
Navigate to the root of the repository in the shell. Then enter the following command at the command line:
  • ./build.sh [filename] [version]
where [filename] is the name of a C file inside the "src" directory, and [version] is the Wii U system software version you're building for. Supported version strings are 400 (for 4.0.x) and 410 (for 4.1.0). Not supplying a version string will cause it to default to 4.1.0.

Accessing the SDK libraries

When you're writing C code on a PC, you have the standard library, a set of useful functions that you can call without caring how they work. For writing code on the Wii U, there's something similar: the SDK libraries. The SDK libraries provide access to graphics, audio, input, filesystem, and network functions. The SDK libraries are accessible from any application, including the web browser, which means that code running inside it using an exploit also gets access. All SDK libraries have full symbols available for every function. Aside from making reverse engineering easier, this means that you can get the address of any function by its library and symbol name.

Before using the SDK, it's important to understand the Wii U's linking model. Some of these details were provided in comex's part of the 30c3 talk, but it only touched on it. Each executable on the Wii U uses the ELF format, with slight modifications (this format is called RPX). RPX files contain a list of imports, which specify a symbol being imported from an external library along with the name of the library itself. The libraries referenced by imported symbols use the same modified ELF format, but are named RPL instead. When an RPX is loaded, the executable loader will also load its RPL dependencies.

Every SDK library is an RPL file. For example, gx2.rpl is the name of the graphics library, vpad.rpl is the name of the Gamepad input library, and nsysnet.rpl is the name of the BSD sockets library. There is also a special RPL called coreinit.rpl, which is quite interesting. coreinit provides direct access to many core Cafe OS services, including memory management and threading. coreinit was also quite useful for providing the functions we needed in our ROP chain.

Now that I've spent 3 paragraphs telling you how the SDK works, let's actually get around to using it. So how do you use it? The SDK libraries expose many functions, but how do you get their addresses? You could just hardcode them, obviously, but that's both lame and not portable to later exploit versions. Plus how do you find the address to hardcode in the first place? There's a much better method available, which allows you to get symbol addresses dynamically, in the form of the coreinit OSDynLoad functions. You can access these functions by including coreinit.h in your C file.

There are two functions involved in getting a symbol, splitting the process into two parts. The first function is OSDynLoad_Acquire(), which loads the RPL you specify. OSDynLoad_Acquire() takes two arguments: the RPL name as a string and a pointer to an integer. The RPL name is pretty straightforward, the pointer to an integer is where coreinit will store the library's location. OSDynLoad_Acquire() can also be used to get the location of a library that's already loaded. The second function is OSDynLoad_FindExport(), which finds a symbol given a library's location. It takes four arguments: the integer (not the pointer to it) used in OSDynLoad_Acquire(), just zero, the symbol name as a string, and a pointer to where the symbol address should be stored. Here are the function prototypes:
  • void OSDynLoad_Acquire(char *rplname, unsigned int *handle);
  • void OSDynLoad_FindExport(unsigned int handle, int always0, char *symname, void *address);
Just as an example, let's say I wanted the VPADRead() symbol from vpad.rpl. If I have an integer called "handle", I first call OSDynLoad_Acquire("vpad.rpl", &handle); to get the RPL's location. Next, if I have a function pointer for VPADRead() called "VPADRead", I call OSDynLoad_FindExport(handle, 0, "VPADRead", &VPADRead); to retrive VPADRead()'s address. Simple. For more examples, look at rpc.c.

RPC system

In addition to letting you write your own C code to run on the Wii U, this repository also includes an RPC system to interactively experiment with the Wii U. It allows you to send commands over the network for your Wii U to execute. The two components of the RPC system are the server, a C program running on the Wii U listening for commands, and the client, a Python script that sends the commands.

To use the RPC system, first ensure that your PC and Wii U are connected to the same network. Once they are, find out your PC's IP address using the "ipconfig" command (Windows) or "ifconfig" command (Linux and OS X). Modify PC_IP in socket.h to be your PC's IP address (rather than 192.168.1.4, which it currently is). Build rpc.c and it will go in your htdocs.

Next, start rpc.py in an interactive Python session (IDLE or IPython is a good choice). Once you've started rpc.py, navigate to the browser exploit you just made on your Wii U. It should appear to finish loading the page, and the UI will continue to be responsive, but web browsing will be disabled. At that point, the Python shell should say something along the lines of "Connected by" followed by your Wii U's IP. Now you can control your Wii U with these commands:
  • rpc.read32(address, num_words) - Read num_words words starting at address, returning a list of words
  • rpc.write32(address, words) - Write each word in the list words to memory starting at address
  • symbol(rplname, symname) - Get the symbol symname from RPL rplname and turn it into a callable Python function
  • rpc.exit() - Exit the browser and go back to the menu
Credits
  • Marionumber1 - ROP chain design/implementation
  • TheKit - WebKit bug finding, ROP chain implementation
  • Hykem - Finding ROP gadgets
  • bubba - Testing WebKit bug candidates
  • comex - Access to the coreinit and WebKit binaries
 
Disponible ici : https://bitbucket.or...u-userspace/src
 
Petite vidéo de l'exploit en action :
 

  • Retour en haut

Posté 18 juin 2014 - 10:38

#2
ptitgrec

ptitgrec

    Sunriseur elite

  • Members
  • PipPipPipPip
  • 1 286 messages
  • Sexe:Male
  • Lieu:CAEN
Thanks pour l'info à voir ou cela mène ...
  • Retour en haut

Posté 18 juin 2014 - 11:12

#3
ZoubiKarim

ZoubiKarim

    Sunriseur

  • Members
  • PipPip
  • 10 messages
Alleluia que j'ai debranché ma Wii U lool
  • Retour en haut

Posté 18 juin 2014 - 12:08

#4
Zouiguipopo

Zouiguipopo

    Sunriseur

  • Members
  • PipPip
  • 206 messages
  • Sexe:Male
  • Lieu:Martigues 13500
  • Passions:Vive la Wii U, la VRAIE Switch ;) ;)
ah...apparement y'a plus sur la 5.0.0 :(
  • Retour en haut

Posté 18 juin 2014 - 13:59

#5
RomAnOCrY

RomAnOCrY

    CryptoManiac

  • Modérateur
  • 2 090 messages
  • Sexe:Male
  • Lieu:28
  • Passions:https://romainj.com
Toujours dispo sur 5.0.0 et 5.1.0 (??) mais il faut "simplement" adapté le code pour cette version.
  • Retour en haut

Posté 18 juin 2014 - 14:46

#6
RomAnOCrY

RomAnOCrY

    CryptoManiac

  • Modérateur
  • 2 090 messages
  • Sexe:Male
  • Lieu:28
  • Passions:https://romainj.com
Edit: ajout d'une video :)
  • Retour en haut

Posté 18 juin 2014 - 16:07

#7
chronoss

chronoss

    Sunriseur PRIVILEGE

  • Members
  • PipPipPipPipPip
  • 6 690 messages
  • Sexe:Male
  • Lieu:Afrique mon beau continent...
  • Passions:Hacker...
Bonne chance a eux ;)
  • Retour en haut

Posté 18 juin 2014 - 17:35

#8
Sendel

Sendel

    Sunriseur elite

  • Members
  • PipPipPipPip
  • 1 182 messages
  • Sexe:Male
" qui rappelons-le est bloquée avec la dernière mise à jour Wii U officielle. " Vous ne savez pas ce que vous écrivez la faille n'a pas été patchée c'est juste des adresses qui ont changé

Modifié par Sendel, 18 juin 2014 - 17:38.

  • Retour en haut

Posté 18 juin 2014 - 17:36

#9
crash251

crash251

    Sunriseur PRIVILEGE

  • Members
  • PipPipPipPipPip
  • 12 390 messages
  • Sexe:Male
  • Lieu:76
  • Passions:Hacking, cracking, carding, phreaking...

merci pour cette news , belle exploit


Mail: crashoverridehack@gmx.fr pour tout Hack dans la région du 76 ,27 envoi Postal possible
 

Montage SX core = "Switch FAT/ Mariko" | SX Lite = Switch Lite" | SwitchMe = Switch FAT V1

  • Retour en haut

Posté 18 juin 2014 - 20:37

#10
Joris 73

Joris 73

    Sunriseur elite

  • Technicien
  • 1 691 messages
  • Sexe:Male
  • Lieu:Chambery
Moi j'avais mis à jour, mais vu le prix des jeux, je préfère les acheter, ca fait 3/4 jeux wii u par an ...
  • Retour en haut

Posté 18 juin 2014 - 21:36

#11
gogeta76

gogeta76

    \0/ G0G€T@ \0/

  • Shining VIP
  • 3 366 messages
  • Sexe:Male
  • Lieu:76
  • Passions:Mon travail, mes consoles, mes PC, ma vie quoi ...
Pas mal pas mal, W & S :)

Toute l'intelligence du monde n'est rien face à une idiotie à la Mode ....
Image IPB

  • Retour en haut

Posté 18 juin 2014 - 22:52

#12
RomAnOCrY

RomAnOCrY

    CryptoManiac

  • Modérateur
  • 2 090 messages
  • Sexe:Male
  • Lieu:28
  • Passions:https://romainj.com

" qui rappelons-le est bloquée avec la dernière mise à jour Wii U officielle. " Vous ne savez pas ce que vous écrivez la faille n'a pas été patchée c'est juste des adresses qui ont changé


Si tu regarde mon commentaire a 14:59, je rectifie...(bien que l'erreur ne soit pas de moi)

Modifié par RomAnOCrY, 18 juin 2014 - 23:36.

  • Retour en haut

Posté 18 juin 2014 - 23:38

#13
modif00

modif00

    Sunriseur

  • Technicien
  • 90 messages
ca avance doucement, mais ça avance
  • Retour en haut

Posté 19 juin 2014 - 03:46

#14
Zouiguipopo

Zouiguipopo

    Sunriseur

  • Members
  • PipPip
  • 206 messages
  • Sexe:Male
  • Lieu:Martigues 13500
  • Passions:Vive la Wii U, la VRAIE Switch ;) ;)
oui ca avance bien, avec aussi le wiikey U ! en esperant avoir un hack ou quelque chose de fonctionnel avant hyrule warriors :P
  • Retour en haut

Posté 19 juin 2014 - 07:14

#15
tribale76

tribale76

    Sunriseur PRIVILEGE

  • Technicien
  • 3 355 messages
  • Sexe:Male
  • Lieu:LERY
merci pour la news de l'excellent boulot!!
j'aimerai bien voir une avancé sur la one la je sauterai au plafond ;-)

Tech-niko

 

 

Modification et réparation console dans le 76 et le 27

 

CFW, XKEY, RGH, Linkers, etc....

 

 

plus de 10 ans d'expériences à votre service

 

 

  • Retour en haut

Posté 19 juin 2014 - 08:06

#16
Sendel

Sendel

    Sunriseur elite

  • Members
  • PipPipPipPip
  • 1 182 messages
  • Sexe:Male

" qui rappelons-le est bloquée avec la dernière mise à jour Wii U officielle. " Vous ne savez pas ce que vous écrivez la faille n'a pas été patchée c'est juste des adresses qui ont changé


Si tu regarde mon commentaire a 14:59, je rectifie...(bien que l'erreur ne soit pas de moi)


Pas de problème ^^
  • Retour en haut

Posté 19 juin 2014 - 08:26

#17
Finality

Finality

    Sunriseur PRIVILEGE

  • Technicien
  • 6 504 messages
  • Sexe:Male
Bonne nouvelle maintenant il faut voir ce qui va en découler :)

Modification Xbox 360 et Wii sur Bordeaux, en plein centre ville.

Travail réalisé sous vos yeux, répond à toutes vos questions.


Xbox 360 : Flash tous lecteurs, Xkey, Glich, Réparations : mon annonce ici

Wii : Hack software : mon annonce ici

  • Retour en haut

Posté 19 juin 2014 - 16:02

#18
Yashihiro

Yashihiro

    Sunriseur

  • Members
  • PipPip
  • 17 messages
Je l'ai essayé sur la psvita après avoir vu cette vidéo () et apparemment il se passe vraiment qq chose... Est-ce que quelqu'un peut essayer sur le navigateur de la ONE/PS4 ?

Modifié par Yashihiro, 19 juin 2014 - 16:02.

  • Retour en haut

Posté 19 juin 2014 - 21:46

#19
boubou56

boubou56

    Sunriseur

  • Members
  • PipPip
  • 218 messages
  • Sexe:Male
  • Lieu:56
Merci pour la news
  • Retour en haut

Posté 20 juin 2014 - 07:38

#20
RomAnOCrY

RomAnOCrY

    CryptoManiac

  • Modérateur
  • 2 090 messages
  • Sexe:Male
  • Lieu:28
  • Passions:https://romainj.com

Je l'ai essayé sur la psvita après avoir vu cette vidéo () et apparemment il se passe vraiment qq chose... Est-ce que quelqu'un peut essayer sur le navigateur de la ONE/PS4 ?

 

Ils annoncent que ce n'est pas "exclusif" a la WiiU et qu'effectivement avec une adaptation du code,, ca peux fonctionner sur d'autres supports...
 


  • Retour en haut




1 utilisateur(s) li(sen)t ce sujet

0 invité(s) et 1 utilisateur(s) anonyme(s)