Webkit is pretty buggy, we know that. My PSVita is on 1.80 and thus, some wonder how I’ve been doing things with my vita. How about a history lesson?
It all started in early 2012 with a bunch of people looking into webkit. After a bit of time, a really smart dude called @cmwdotme shows us string dumps and a table of a few memory locations for the vita, and tells us that they were obtained using webkit. He tells us that he couldn’t share the bug used to dump but that ROP can be achieved using CVE-2010-1807. Then we didn’t hear much from him afterwards. No interest perhaps, but regardless I had work to do. Motivation was dwindling as my knowledge about the system and software was poor; i’d never hacked anything other than the PSP which is honestly a joke of security. A read bug was required for us to get any details out of the system. Performing ROP blindly is extremely difficult.
Then a small breakthrough for us after searching hours and hours through CVE records we found this: CVE-2010-4577. This allows an attack to perform a remote read, which is perfect for us. We need to read some memory to do make ROP feasible. So I started work on getting ROP. It didn’t take long, things fell like dominos and I soon had very tediously written ROP. So, my 1.61 vita was running “code”, this was a good day for me.
So now you know the story, here is the program used to convert ROPTool payloads to exploitable html files: HTMLIt
Currently only supports 1.50, 1 .691 and 1.80/1.81 but should be trivial to extend.
Embarrassingly, my vita was (unintentionally) updated to firmware 1.80 before this tool or roptool was complete.
As always, the credits:
Proxima – Webkit stuff and 1.50 support
Bubbletune – float-pointing crap
As you have probably seen, a small PoC webkit exploit for 2.60 was released for the psvita. You can test your vita yourself by visiting the link here: http://lolhax.org/vita.htm
At first the exploit only supported 2.60, which happens to be the firmware my vita is on. The exploit now supports up-to version 3.18 and code execution demo with ROPTool will be shown over the next while.
Lets talk about how this all came to be. Thanks to a tweet from @yifanlu, news exploded onto the internet about this hack and what it means for the vita. Problem is, most of you don’t know what it means for the vita and franky, nor do I. I’ve been working with webkit for over 2 years now but there are many other brains behind the scenes doing work, which I would like to talk about.
First off, there is Codelion or @BBalling1. He is a strong driving force in a small development group that just struggled to gain momentum. People left, people lost interest. This guy managed to keep in the game and deserves as much credit as you give me. He even posted a description of the exploit on his twitter over a week ago, so make sure to follow him.
Secondly, there is Josh Axey @, another member of the group. As I said, people lost interest the group cohesion broke and people worked on their own. This guy also made use of the packetstorm webkit bug.
@Archaemic. I haven’t spoken to this guy, but I can take yifan’s word that he has been working on the exploit for a long time and even has produced dumps from as early as April, goodjob man!
Thank you all for the praise, but I would like these guys to get a mention too, they are hardworkers and probably spent a lot of time on this bug too. If you’re interested in getting involved either drop me or any of these guys a tweet, I’m sure they’ll be glad to get a few extra devs.
I’ve done a post about Return Orientated Programming (ROP) before where I described basic operation of a ROP chain. The public domain of pentest security tools involving ROP is largely orientated around intel architecture x86. Now I have my own contribution to the security world.
Once again, I’ve not posted in a while, so I’ll start off my apologising for that. Today, I’m gonna talk about the reality of computer security. When I say reality, I immediately put my hands up and say that I’m talking bullshit and really just gonna spew a lot of my opinion in regards to computer security. So, here goes… (more…)
Today is a short post, but I’ve recently started playing around with ClipUpload. ClipUpload is a very clever, yet very simple clipboard upload tool which will upload whatever is in your clipboard to a variety of sources including: facebook, imgur, pastebin or even your own FTP server.
Whilst I think it is pretty cool to upload to an FTP server, I’d much rather have the ability for a secure transfer. That being said, I forked the code and with the help of SharpSSH I modified the FTP addon and produced a fully working SCP addon.
So, if you use clip upload, give it a try (especially if you prefer secure transfers). If not, you should give it a try, it’s a really useful application.
ClipUpload SCP Fork: https://github.com/DaveeFTW/ClipUpload
This will be a small introduction into return oriented programming, commonly referred to as ROP. I’ve had a lot of experience with security measures (duh) but never really had any hands on experience with more modern security technologies such as non-executable stack/data (DEP, NX, XN, W^X) or Address Space Layout Randomisation (ASLR).
The non-executable stack isn’t really limited to just the stack, anything that isn’t code memory can’t be executed. So as in PSP, you can’t just jump to the savedata and have the day’s work done. No, instead the only code executable is real code provided by the OS when binaries are loaded. This is a nice and funky way but ROP is the counter and tends to poop on this method.
Just to start, congratulation to yifanlu for his excellent work on gaining the first vita native hack. I’d like to note that I’m just relaying information from a forum post by yifanlu and did not have any input on yifanlu’s work, it’s all his!
Also, if you’re not a developer, please note that there is currently no way to run homebrew, colour your screen, download binaries, hack your device, make a milkshake from 10 miles away or such. This post is purely informational.
Continuing on, considering my audience gathers quite a few developers I think this post should complement the cause. So, if you don’t know, vita dev yifanlu has been looking around for developers who are interested in developing native software on the vita. He is calling out for developers to help him develop an ELF loader. (more…)
Well, this place has been cleaned up a little bit and I can log back in again. You might of noticed that I’ve changed the theme, and you’ll probably find out that I do this often!
Well this post is going summarise what the hell I’ve been doing since my last post in terms of development and perhaps you’ll be disappointed. Follow the link and find out! (more…)
Turns out he’s not just a green frog! So, I’ve been throwing this word around recently and it’s probably about time I explain. Kermit, either a protocol or perhaps a funny name (see KIRK/SPOCK) is a communication interface for the PSP emu. Specifically it allows the PSP to talk to the host.
Now, I can tell there aren’t as many developers here, so I’ll try to simplify for the curious minds but this stuff is pretty complicated. I’ll only explain the API in detail as the lower level still need a little bit of clearing up, but here goes. (more…)
First thing first, huge thanks to Proxima and some1. They’ve provided key utilities and advice for this research. So, yeah, it was really only a matter of time till this kind of thing happened. Sony dont just emulate the userland process of a PSP game, they emulate the entire kernel albeit, a modified kernel. The PSP emu has limited access to hardware, with interfacing the hardware done via a Kermit module. Kermit is a old-timers transmission protocol, likely used to talk to the native Vita. (more…)