Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Session Start: Wed Dec 07 00:43:49 2011
- Session Ident: maxg
- [00:43] Session Ident: maxg (KottNet, Mat) ([email protected])
- [00:43] <maxg> I managed to send myself a self made wondercard on a retail game
- 01[00:44] <Mat> whoa
- 01[00:44] <Mat> that's awesome
- [00:44] <maxg> yeah, but the problem is that the attack is so complicated I have doubts it would be possible to make a public wondercard distribution system
- 01[00:44] <Mat> right
- [00:45] <maxg> basically I tried everything
- [00:45] <maxg> for instance contraty to what the debug messages in the rom say the comon name is actually checked on the certificate
- 01[00:46] <Mat> really
- 01[00:46] <Mat> huh.
- [00:46] <maxg> I suppose it wasn't in the dev stage because the dev cert has a wildcard
- 01[00:46] <Mat> ah, right
- [00:46] <maxg> the cert is for *.dev.nintendowifi.net
- 01[00:46] <Mat> makes sense
- 01[00:46] <Mat> yeah
- [00:47] <maxg> ok so that sucks major balls here because I had a valid cert chained on the thawte root CA which is present in the game
- [00:47] <maxg> and if the comon name wasn't checked it would have been so easy
- 01[00:47] <Mat> :(
- [00:48] <maxg> then I tried all sorts of signature/cert alteration but the game does the job properly and actually checks the signature against the hash of the sent certificate
- [00:49] <maxg> finally the only thing we're left with is the rng which seems to be the only way to bypass ssl
- 01[00:49] <Mat> how so?
- [00:49] <maxg> (except action replay but what good is a wondercard distribution server if you have an action replay)
- 01[00:49] <Mat> right
- [00:50] <maxg> basically what you have to do is stick to a seed and see the ssl session key used
- [00:50] <maxg> then redo the protocol on the same state with ssl disabled
- [00:50] <maxg> then do some replay with the master to find the write AES key
- 01[00:50] <Mat> ohhh
- 01[00:50] <Mat> i see what you're saying
- 01[00:51] <Mat> right
- 01[00:51] <Mat> ok
- [00:51] <maxg> and basically you can RNG abuse the game to replay an altered ssl session
- [00:51] <maxg> but you see the problem here, it is fully dependant on the seeding which includes the ds parameters
- 01[00:51] <Mat> yeah, good luck with that
- [00:51] <maxg> that's doable
- 01[00:52] <Mat> not really
- 01[00:52] <Mat> http://pastebin.com/7ZtSsEcT
- 01[00:52] <Mat> if you mean it seeds with the standard seed building function
- [00:52] <maxg> yeah
- [00:52] <maxg> yeah that's really won't do it will it
- 01[00:52] <Mat> not at all
- 01[00:52] <Mat> that's it, btw
- [00:52] <maxg> nice function by the way
- 01[00:52] <Mat> that's the entropy function
- 01[00:53] <Mat> that builds the sha digest array
- [00:53] <maxg> ok
- 01[00:53] <Mat> just saying
- [00:53] <maxg> so basically we need a new idea to make this work
- 01[00:53] <Mat> somehow managing to manipulate that would be pretty well impossible unless it happens as the game boots
- 01[00:53] <Mat> yeah, pretty much
- [00:54] <maxg> the problem with a session key attack is that you need a previous session with ram alteration anyway
- [00:54] <maxg> so basically useless for a public server
- 01[00:55] <Mat> right
- [00:56] <maxg> I even tried using CNAME in DNS to force a domain name change for the comon name
- [00:56] <maxg> but it didn't work
- 01[00:56] <Mat> damn it
- [00:57] <maxg> yeah
- [00:58] <maxg> basically there's very little to do except try a very low level attack like buffer overflow or a bug in the ssl protocol functions
- [00:58] <maxg> but I kinda rage quitted trying to find them in the arm9
- 01[00:59] <Mat> what are you looking for in the arm9, exactly?
- [00:59] <maxg> the comon network code
- 01[00:59] <Mat> you sure it's there?
- [01:00] <maxg> yeah without a doubt
- 01[01:00] <Mat> you might find this useful:
- 01[01:01] <Mat> http://hack.thundaga.com/arm9-white_decompressed_U.idb
- 01[01:01] <Mat> pop that open in ida
- [01:03] <maxg> but then I'll give gen 4 games a try since there's a chance they might be easier to work with
- 01[01:03] <Mat> that's true, actually
- [01:03] <maxg> a gen4 wondercard server would still be neat I guess
- 01[01:03] <Mat> yeah
- [01:04] <maxg> and then we have the trading protocol to research if you're up to it
- 01[01:04] <Mat> oh, forgot about that
- 01[01:04] <Mat> yeah
- [01:04] <maxg> it should be much easier I think
- 01[01:04] <Mat> you would think so, yes
- [01:27] <maxg> I even tested the nintendo CA public key for the debian openssl seeding bug but it isn't one of the weak keys :(
- 01[01:28] <Mat> :(
- 01[01:28] <Mat> unfortunate
- [01:28] <maxg> that would have been great way to hack the ssl though
- 01[01:28] <Mat> right
- [01:30] <maxg> anyway
- 01[01:30] <Mat> right
- 01[01:30] <Mat> later
- Session Close: Wed Dec 07 12:31:13 2011
- Session Start: Wed Dec 07 12:31:13 2011
- Session Ident: maxg
- Session Close: Thu Dec 08 00:00:00 2011
Advertisement