[Save Nintendo Wi-Fi] NoSSL Patcher- Forum

Index du forum > Wii > Hack de la Wii

Topic: [Save Nintendo Wi-Fi] NoSSL Patcher

par Déconnecté SPLN le 31/03/14 à 20:03:48 (il y a 2 ans 36 semaines 20 heures 9 minutes) 16 réponses, vu 1663 fois

Outils de patch de fichier binaire

I - Introduction


Bonjour à tous,

Comme vous le savez l'heure est grave, Nintendo compte fermer ses serveurs Nintendo WiFi Connection le 20 Mai. Pas mal de gens se réunissent à droite à gauche pour trouver des solutions. Pour l'heure beaucoup de gens font des dumps de leurs communications entre la console et les serveurs. Ces dumps ont pour but de conserver des traces des communications entre les serveurs et leurs consoles. Même après la fermeture des serveurs, ils seront utilisables pour potentiellement mettre en place des serveurs privés.

Ainsi, différents forums/sites à l'heure actuelle analyse ces communications dans le but faire un serveur privé. Save Nintendo WiFi, propose des tutoriels et des liens vers des sites/forums. Ces communications peuvent être chiffrées, c'est pourquoi il est dans notre intérêt de trouver un moyen de les déchiffrer avant la fermeture des serveurs.

Passer ce délai et notre seul moyen de déchiffrer les communications sécurisées dumpées serait de bruteforce la clé. Loin de moi l'idée de vouloir bruteforce la clé du certificat de Nintendo (RSA-1024 bits). De même un jeu peut très bien se connecter en plus à d'autres serveurs, soit d'autant plus de clé à bruteforce.

II - Contourner les communications sécurisées


A ce jour je ne connais que deux méthodes "génériques" pour bypasser les communications sécurisées:

1. Remplacer le certificat


- 1. Remplacer le certificat (contenu dans le jeu) du serveur par le sien. (Testé et approuvé sur Monster Hunter Tri)
Certes cette méthode est efficace pour récupérer ce qu'envoie la console, mais elle nous empêche de se connecter au serveur faute d'avoir le bon certificat. Le seul moyen serait de faire une attaque MITM (Man in the Middle), bref à oublier.

2. Remplacer les requêtes


- 2. Il existe une faille sur certains jeux notamment DS et parfois Wii, il est possible que le serveur accepte des connexions non-sécurisés. Donc en remplaçant dans le jeu les requêtes faites aux serveurs, nous sommes à même d'obtenir et de pouvoir dumper des communications non-sécurisée.

3. Utiliser un émulateur modifié


- 3. Il y a une troisième façon moins générique de le faire pour la Wii, c'est en utilisant une version modifiée de l'émulateur Dolphin pour la Wii.


III - NoSSL Patcher


Venons en à la raison pour laquelle j'ai ouvert ce sujet. Dans la plupart des cas, des URLs sont stockés quelque part dans le jeu. Si dans ces URLs on modifie le 'https' par 'http', on force le jeu à établir une connexion non-sécurisée. C'est pourquoi j'ai conçu un script en python, pour remplacer ces URLs (et par extension n'importe quelle chaîne de caractères spécifiée par l'utilisateur).

1. Présentation


C'est pourquoi j'ai donc fait un script qui automatise cette procédure. Il permet de choisir la chaîne à chercher/remplacer, forcer la taille du buffer (évite de charger un trop gros fichier en mémoire). Il possède un mode pour rechercher et un autre pour remplacer. Pour finir il a également un mode interactif dans lequel il vous demande avant de remplacer une chaine.

2. Utilisation


Si vous aussi vous avez l'âme d'un aventurier, êtes débrouillard, savez comment extraire et modifier les données d'un jeu Wii/DS, savez où se trouve ces URLs voici comment se servir de ce script.

Afficher l'aide:
Code :
python nossl.py

Quote :
Usage: NoSSL Patcher V0.1
./nossl -s [-v] [-b=BUFF_SIZE] [-strin=STRING] file [file2, ...]
./nossl -p [-v | -i] [-b=BUFF_SIZE] [-strin=STRING] [-strout=STRING]
........................[-o=name] file [[-o=name2] file2, ...]
........-s | -p Search/Patch mode
........-v Enable verbosity: Lots of details about what it's doing
........-i Interactive mode: Ask you before doing something
........-b Set the buffer size (in byte)
................Default: -b=-1 (all the file is loaded)
........-strin & -strout String to search/replace
................Default: strin='https' strout='http'
........-o Set the destination filename
................Default: -o file+'.nossl'


Patcher des URLs [Pour Nintendo DS]:
Code :
python nossl.py -p -i -b=4200 fichier_à_patcher


Patcher des URLs [Pour Nintendo Wii]:
Code :
python nossl.py -p -i -b=4200 -strin="https://naswii" -strout="http://nas" fichier_à_patcher


Voilà, c'est à peu prêt tout. J'ai programmé ce script avec le moins de module possible pour éviter les dépendances et perdre la portabilité du script sur d'autre plates-formes. Je l'ai testé sous Windows, Mac, Linux et marche sans problème. Un dernier détail au passage, cet outil est aussi à même d'être utilisé pour traduire des jeux :v). Si vous avez des suggestions à faire, des bugs à faire remonter n'hésitez pas ;v).

Dernière édition le 26/04/14 à 19:14:57 par SPLN.
 



Pages: 1
Messages:
^ Déconnecté xtopher
#1, posté le 31/03/14 à 21:11:28
Membre
257 messages
Apprenti parleur
star
avatar
De plus, il semblerait que le fait de mettre un jeu DS sur 2DS/3DS ou un jeu WII sur WII-U ne permettra pas de jouer en ligne (jeu DS/WII = CWF Nintendo |vs.| jeu 3DS/WII-U = Nintendo Network | Ce n'est donc pas la console qui choisit le type de réseau mais plutôt le jeu lui-même ... du moins actuellement).

Bref, je salue ton initiative (ce "challenge" permettra peut-être aussi à de jeunes apprentis hack3urs de se "faire la main") pour "contourner" cette situation.

Dernière édition le 31/03/14 à 21:13:08 par xtopher.
Choisir un Film : La meilleure solution quand on ne sait pas quel film regarder
^ Déconnecté Attila
#2, posté le 31/03/14 à 22:24:31
Administrateur
23117 messages
Dieu des dieux
starstarstarstarstarstar
avatar
tu parle de deux méthodes, mais en cite 3 :)
sinon j'en aurait une 4e évoquée par je ne sais plus quel hackeur qui consiste à modifier un IOS pour modifier la partie SSL afin qu'aucun chiffrage ne soit effectuée ou je ne sais quoi d'autre ?

Sinon un MITM avec un proxy ayant les bons certificats serait tout à fait possible non ?
Parce que c'est pas dit que tous les serveurs de jeux permettent d'accéder à une version HTTP
^ Déconnecté SPLN
#3, posté le 01/04/14 à 01:51:20
Membre
308 messages
Floodeur
star
avatar
Oui je parle de deux méthodes "génériques" et en cite une troisième qui est un cas à part ;v).

Pour la 4e méthode, je la mettrais plus avec la 3e étant donné que c'est la modification qui a été faite à l'émulateur :vP. Il chiffre toujours les données mais à chaque appel de fonction SSL, il stocke les données déchiffrées dans un fichier de log.

Après, un patch sur les véritables IOS de la Wii pourrait être cool bien qu'il faille encore afficher/stocker les message debug. Remarque, ça donnerait l'occasion d'utiliser brainslug :v).

Ceci étant, tu as entièrement raison car peu de serveurs sur Wii à ma connaissance possèdent cette faille https->http, tandis que sur DS il y en a pléthore. J'avais entendu dire que c'était à cause d'une certaine version de GameSpy SDK qu'il y avait ce genre de problème de sécurité sur DS.

Concernant l'attaque MITM j'ai eu de mauvais échos la-dessus, déjà il faut réussir à trouver/remplacer le certificat original dans le jeu. Ensuite il faut mettre en place un SSL proxy, de préférence suffisamment rapide pour éviter des problème de "timed-out". Même si dans l'absolu c'est jouable.
^ Déconnecté Attila
#4, posté le 01/04/14 à 22:23:43
Administrateur
23117 messages
Dieu des dieux
starstarstarstarstarstar
avatar
ton proxy tu te le met en local je vois pas pourquoi ça serait lent :)
^ Déconnecté SPLN
#5, posté le 05/04/14 à 18:18:50
Membre
308 messages
Floodeur
star
avatar
Aujourd'hui j'ai tenté un MITM + SSL Trip sur le jeu Professeur Layton et L'Étrange Village. Le setup était le suivant: Win7 + 2 VM :
- (VM) Kali Linux + Dongle wifi (WiFiMAX) en mode moniteur + sslstrip + ettercap.
- (VM) Windows XP + Nintendo Wifi USB Connector (driver modifié) pour créer le réseau "sensible".

Apparemment le MITM + SSLStrip était un succès, ça retirait bien le SSL cependant il semblerait que cela ne l'ai fait que sur le port 443->80. En effet mon dump me montre bien des paquets non-encryptés (comparé à mes anciens dumps) sauf qu'il reste des paquets avec SSL provenant d'un serveur sur les ports 60002, 60003.

Bref, faudrait que j'étudie ça plus en profondeur.
^ Déconnecté Attila
#6, posté le 06/04/14 à 00:13:34
Administrateur
23117 messages
Dieu des dieux
starstarstarstarstarstar
avatar
continues comme ça :)
^ Déconnecté SPLN
#7, posté le 21/04/14 à 15:44:46
Membre
308 messages
Floodeur
star
avatar
On prend les mêmes et on recommence.

Alors j'ai forcé P. Layton et l'étrange village à utiliser du HTTP via le script présenté plus haut.
Test de connexion : réussi
Connexion au serveur: échoue à 50%

Je me suis dit que ça venait probablement du fait que j'avais forcé le HTTP. Donc je suis passé par un SSL Proxy et miracle ! La connexion au serveur est établie et les données sont récupérables de façon non-chiffré :vP.

Étant donné que je dois modifié le jeu pour arriver à mes fins, ce n'est pas forcément une méthode très efficace. J'ai donc tenté un nouveau MITM avec mitmproxy, malheureusement le test de connexion réussi mais le jeu n'arrive pas à se connecter au serveur (erreur : 20100, différente de l'erreur précédente). J'ai l'impression qu'il est trop lent à répondre :v/. Bref, une fois encore je l'étudierais plus en détail quand j'aurais le temps :v).

EDIT du 26/04/2014 :
Avec la même modification et quelques protections supplémentaires à contourner, je suis parvenu à forcer le HTTP sur les 3 autres jeux Professeur Layton (Boîte de Pandore, Destin Perdu, Appel du Spectre). J'ai de nouveau essayer du MITM mais hélas sans succès.

J'en ai également profité pour tester mon script sur le main.dol de Monster Hunter Tri et il marche à merveille. Juste deux paramètres à rajouter donc j'en ai profité pour éditer le premier poste pour l'utilisation du script sur les jeux Wii & DS.

Dernière édition le 26/04/14 à 19:05:21 par SPLN.
^ Déconnecté lebogosse972
#8, posté le 26/04/14 à 20:25:20
Membre
200 messages
Apprenti parleur
star
avatar
Salut all,

Super ton sujet.
Dommage que je peux pas le faire car je c'est meme pas ou trouver l'URL du jeu ::(::
^ Déconnecté SPLN
#9, posté le 27/04/14 à 00:55:53
Membre
308 messages
Floodeur
star
avatar
L'intérêt du script c'est justement de le trouver pour toi ;v)

Exemple d'utilisation où tu ne fais qu'analyser (sans patch):
Code :
python nossl.py -s -b=4200 ficher_à_scanner


Après le code donné dans le 1er poste n'oblige pas l'utilisateur à patcher l'url car il lui demande par avance avant modification.

L'idéal est d'extraire toute l'arborescence du jeu. Puis dans un terminal (sous MAC, Linux) utiliser le caractère * (wildcard) pour sélectionner tous les fichiers du répertoire courant. Fonctionne sous Windows via Cygwin.

Exemple (DS) :
Code :
python nossl.py -p -i -b=4200 * */* */*/*


Exemple (Wii) :
Code :
python nossl.py -p -i -b=4200 -strin="https://naswii" -strout="http://nas" * */* */*/*


Après cela n'a d'intérêt que si tu captures les conversations entre le jeu et les serveurs avec un logiciel comme Wireshark par exemple.

Dernière édition le 27/04/14 à 00:58:07 par SPLN.
^ Déconnecté lebogosse972
#10, posté le 27/04/14 à 10:52:39
Membre
200 messages
Apprenti parleur
star
avatar
Oh non, y a que les pro qui peuvent faire sa.
Je comprend rien a ta formule "d'intello"::xD::.

Tu es trop intelligent pour moi en tout cas ::'(::
Et je te souhaite bonne chance toi et Attila:;)::.

Edit~~~~>Je c'est meme pas ou trouver L'URL


Dernière édition le 27/04/14 à 11:20:12 par lebogosse972.
^ Déconnecté Attila
#11, posté le 27/04/14 à 14:48:49
Administrateur
23117 messages
Dieu des dieux
starstarstarstarstarstar
avatar
spln as tu tenté d'installer un proxy sur ton pc puisque tu parle de problème de latence ?
^ Déconnecté SPLN
#12, posté le 27/04/14 à 16:26:47
Membre
308 messages
Floodeur
star
avatar
Oui justement, le proxy est en local sur mon PC c'est ça que je trouve étrange. En sniffant je vois bel et bien le trafic de la console venir mais j'ai l'impression que le proxy le ralenti (volontairement ?). Il faudrait que je regarde la doc histoire de voir s'il y a moyen de le paramétrer. J'ai testé deux proxy dispo sous Kali Linux donc je vais voir dans les fichiers de confs car si ça se trouve c'est paramétré comme ça de base.

Dernière édition le 27/04/14 à 16:27:29 par SPLN.
^ Déconnecté Attila
#13, posté le 28/04/14 à 00:14:31
Administrateur
23117 messages
Dieu des dieux
starstarstarstarstarstar
avatar
mais le certificat est patché sur wii pour ajouter le tien ou pour supprimer la vérification de certif sur la wii ?
^ Déconnecté SPLN
#14, posté le 29/04/14 à 22:05:11
Membre
308 messages
Floodeur
star
avatar
Oui, tout est patché en amont. Je pense avoir trouvé ce qui fait ralentir le trafic. De base j'utilisais l'arp spoofing pour obliger le trafic à passer par le proxy et me permettre de tout loguer. Je viens de me rendre compte qu'en faisant ça, tous les utilisateurs du réseau pouvait avoir une connexion anormalement lente... (j'aurais du m'en douter aussi :v/)

Bref, je vais opter pour une solution plus propre et viable en mettant en place un serveur DNS.
^ Déconnecté Attila
#15, posté le 04/05/14 à 01:51:32
Administrateur
23117 messages
Dieu des dieux
starstarstarstarstarstar
avatar
super
iPhone info, tout le hack, jailbreak, désimlock iPhone iPad iPod
^ Déconnecté lebogosse972
#16, posté le 04/05/14 à 17:24:00
Membre
200 messages
Apprenti parleur
star
avatar
Vous me donnerez vos cerveaux un jour ::surprised:: ?

Lebogosse972.

Dernière édition le 04/05/14 à 17:24:35 par lebogosse972.

Pages: 1

Ajouter commentaire:
Créez un compte ou identifiez vous pour poster un commentaire.

Index du forum > Wii > Hack de la Wii


Pour votre téléphone, Jailbreak iPhone et Jailbreak iPad. - Hack PS3 - Hacker sa WiiU - Hacker PS Vita - Rage Comics, troll face - Retrouvez chaque jour des image drole sur internet grâce à LOLTube. - Meme Internet
587 connectés (2 membres, 585 anonymes)© 2007-2015 Attila