Random PlayStation 3 HDD & RAM Dumping Bug Discovered
Today SKFU has shared a bug he found in PS3 Firmware 2.8 (although he said it should be present since 2.0 through 3.0) that allows you to dump random data from the PlayStation 3 HDD and RAM.
To quote: There's a little "bug" in the PlayStation3's NAT test which causes that you can dump random data from the HDD and RAM. Why exactly this appears; I don't know, yet. But well, it is interesting.
The way how to do it is pretty simple. Set up http://www.wireshark.org/download.html on the PC and activate ICS (Internet Connection Sharing).
Connect the PS3 with the PC via LAN and start Wireshark's logging/sniffing feature on the LAN device. Now go to Settings on the PS3 and start a Internet Connection Test in the Network option.
When the PS3 starts the NAT testing it will send default STUN packets together with several IP Fragments. Those both packet types will contain random data which the PS3 grabs from the HDD and/or RAM. There you go.
Interesting, but i don't see how this can really help (unless it can be forced to send specific memory addresses etc).
Basically what we're saying here is that you can sniff small amounts of completely random data using this method. So you presumably have absolutely no idea where this data actually originated (as in disk or memory addresses) so cannot possibly hope to combine any larger sets of data.
I guess the only use would be if you sat there long enough you might discover some previously unknown function calls or something - but that's gotta be like looking for a needle in the worlds largest haystack.
Or am i missing the point on this one?
Have to say - still an interesting news item, but seems a bit pointless to me (but then i'm no PS3 arcitecture expert!).
Well, assuming you could boot without a HDD - the system would be quite unstable to say the least, in theory it COULD pull from ram - then again, it might only pull from application area of that PRX, there are just too many variables and not enough data to make a conclusion - even testing would not answer the problem, due to the amount of randomness!
What about sending calls or commands to the console via LAN. Maybe, during the testing, instead of sending usual answers to the PS3, one can send different codes to PS3 and look what happens. (I am sure it was already done though.)
Humm.. I'm not sure if I should trust this.. has it been confirmed by anyone else?
I know STUN (hell, I wrote a full (RFC3489 and RFC5389) STUN library) and I don't see how it could contain any random data.. a basic Binding request (for NAT discovery) would only be 20 bytes long (only the header, no attributes), 4 bytes in there are important (type of request + size of payload), then you get 16 bytes of "cryptographically random" transaction ID.. I would guess that maybe the transaction id is just a random, uninitialized pointer, instead of being filled with /dev/urandom data..
If that's the case, then yeah, maybe it is possible, but I would doubt such a simple RFC would be implemented as badly as this (most library that do not care about the transaction id send "0000000000000000" as transaction id (which is perfectly fine/valid))...
I don't know about the IP (or UDP) layers, but I doubt it would contain uninitialized data...
In any case, this isn't helpful, since you can't predict which memory address will be captured... so you can't really 'reconstruct' the RAM's content or anything like that (and even if you could, 16 bytes at a time is really small), so it's not that useful in itself..
But if it's confirmed true, it's still a nice find