[RT] Windows RT 8.1 Jailbreak Discussion

Search This thread

tonystuck

Member
Aug 30, 2013
34
10
Good for you. In response, I'm now actually calling you wrong, because that's not what I said at all. Myriachan found a way to do a jailbreak months ago, but the security impact of it was substantial and it could be exploited on x86/x64 as well as on ARM, so she didn't want to release it. She *also* has a powershell exploit (I actually know the details of that one, but per her request, am not disclosing them at this time). The PS exploit isn't a jailbreak by itself, but it makes one possible... if they can use it to load a kernel driver, which seems to be what they've been working on. I admit I'm unclear on the details there (though I do know more than I'm saying in this post) - *USUALLY* installing a kernel driver wouldn't require something like the PS exploit, if they had a way past the signature verification - but probably the PS exploit is required to actually implement the signature verification bypass.

Frankly, though, either of those two have more credibility a hundred times over than you do.

I'm just poking in the dark here, but is it anything resembling a stoned lite sort of exploit?
 
Last edited by a moderator:

GoodDayToDie

Inactive Recognized Developer
Jan 20, 2011
6,066
2,933
Seattle
I'm not sure how Stoned Lite works. Stoned required legacy BIOS support (either natively or in the UEFI), and I very much doubt that RT devices have such support. As I understand it, the current target of the JB project doesn't involve anything prior to complete bootup; much like the current (8.0) JB, it's something that will run after boot, and probably after you log in.

UEFI firmware updates are signed, same as everything else. Finding a vulnerability in the update process is hypothetically possible and potentially worth exploring - such things have been found before, usually in the context of unlocking phone/tablet or game console bootloaders - but it's difficult work. I wouldn't hold my breath. On the other hand, that *would* allow directly installing custom OS images - potentially Linux-based ones - on the devices; there are some people who get Really Enthusiastic about that stuff (see the whole PS3 chain-of-trust debacle).
 

jimmielin

Member
Oct 21, 2011
34
8
Beijing, China
Wouldn't it be theoretically possible to "responsibly" release that cross-platform exploit by disclosing it to Microsoft (just like other exploits are reported), then we hold off our RT devices from updating for a month until next month's Patch Tuesday, after it gets patched as a security vulnerability, we revert the update on our end and Myria releases the jailbreak. It would both allow us to use it for jailbreaking and allow MS to patch it avoiding all the consequences that it brings...
 

syn3h

Senior Member
Wouldn't it be theoretically possible to "responsibly" release that cross-platform exploit by disclosing it to Microsoft (just like other exploits are reported), then we hold off our RT devices from updating for a month until next month's Patch Tuesday, after it gets patched as a security vulnerability, we revert the update on our end and Myria releases the jailbreak. It would both allow us to use it for jailbreaking and allow MS to patch it avoiding all the consequences that it brings...

Unless it is a serious security vulnerability, I think Microsoft would wait to patch it in a large update, like the big Windows 8.1 spring update.
 

Jon4248

Senior Member
Sep 7, 2012
153
71
In my opinion, jailbreak won't be released for RT 8.1 I have given up all hope, and I now feel there is really no need for it. You want to run desktop apps? It's simply, sell your virus and spyware free RT tablet and by something else that runs 8.1 Pro. :good:
 

GoodDayToDie

Inactive Recognized Developer
Jan 20, 2011
6,066
2,933
Seattle
It's reasonably serious. I think Myria was hoping to use it to jailbreak other Windows-based devices, and that's why she hasn't disclosed it yet, but at a certain point there comes an argument of "either fix it or use it". Your solution is actually a reasonably elegant one, so long as they don't roll it up in a bunch of other critical fixes or make all future updates depend on it or something equally antisocial.
 

TRSHD

Senior Member
Mar 27, 2012
103
12
Montreal
It's reasonably serious. I think Myria was hoping to use it to jailbreak other Windows-based devices, and that's why she hasn't disclosed it yet, but at a certain point there comes an argument of "either fix it or use it". Your solution is actually a reasonably elegant one, so long as they don't roll it up in a bunch of other critical fixes or make all future updates depend on it or something equally antisocial.

Wouldn't it be theoretically possible to "responsibly" release that cross-platform exploit by disclosing it to Microsoft (just like other exploits are reported), then we hold off our RT devices from updating for a month until next month's Patch Tuesday, after it gets patched as a security vulnerability, we revert the update on our end and Myria releases the jailbreak. It would both allow us to use it for jailbreaking and allow MS to patch it avoiding all the consequences that it brings...

THIS has to be the solution. As a non-dev, but really knowledgeable end-used, I cannot think of a more balanced approach to the issue. Let's ask Myria for her opinion. Is there anyone with her contact info that could ask her in our name??
 

jimmielin

Member
Oct 21, 2011
34
8
Beijing, China
It's reasonably serious. I think Myria was hoping to use it to jailbreak other Windows-based devices, and that's why she hasn't disclosed it yet, but at a certain point there comes an argument of "either fix it or use it". Your solution is actually a reasonably elegant one, so long as they don't roll it up in a bunch of other critical fixes or make all future updates depend on it or something equally antisocial.

Microsoft does not have the habit to roll up a bunch of critical fixes in one (anything really critical would go into individual updates), and also, we've already given up the right to update to whatever patch we wanted back in the RT 8.0 days (although it didn't serve a purpose until a recent KB, which we could also reasily revert.)

An update dependency is equally hard to maneuver due to the outrage from enterprise users on "forced updates", even critical ones - patches take long in the IT world to get tested and delivered, MS wouldn't make a maintenance headache for the sake of shutting down a secure boot exploit.

Now that the August update is already up, Surface RT has received its (possibly last) UEFI update, it couldn't be a better time. If the jailbreak can free us from Secure Boot, deploying it to our machines now would be a good chance. Are you in contact with Myria or have a channel to do so so this solution can be discussed?
 
  • Like
Reactions: Jorgkuiper

andTab

Senior Member
Nov 20, 2011
691
89
Good for you. In response, I'm now actually calling you an idiot, because that's not what I said at all. Myriachan found a way to do a jailbreak months ago, but the security impact of it was substantial and it could be exploited on x86/x64 as well as on ARM, so she didn't want to release it. She *also* has a powershell exploit (I actually know the details of that one, but per her request, am not disclosing them at this time). The PS exploit isn't a jailbreak by itself, but it makes one possible... if they can use it to load a kernel driver, which seems to be what they've been working on. I admit I'm unclear on the details there (though I do know more than I'm saying in this post) - *USUALLY* installing a kernel driver wouldn't require something like the PS exploit, if they had a way past the signature verification - but probably the PS exploit is required to actually implement the signature verification bypass.

Frankly, though, either of those two have more credibility a hundred times over than you do, so how about you have a nice plate of STFU?

Did you resort to name calling because I hit too close to the truth: there is no jailbreak for 8.1, only some vindictive trolls that pretend that they have one.
If the harm is soooooo great, why hasn't she given the info to MS. If it is soooooo serious, it would get immediately patched.

This is just total BS! Mods should close this thread until there is an actual jailbreak or an actual discussion for the jailbreak, not this BS "oh we have a secret jailbreak stuff".
 
  • Like
Reactions: Topogigi

GoodDayToDie

Inactive Recognized Developer
Jan 20, 2011
6,066
2,933
Seattle
You can see, quite plainly, all the evidence you want of the jailbreak in Myriachan's Twitter history. I've also seen it myself - both the PS exploit, which I have personally tested and verified, and the other one, which I have seen but not personally used. Your childish insistence that just because nobody has shown it to *you* it must not exist is, well, childish. Maybe if you'd managed to obtain even half the reputation that somebody whose XDA account is nearly three years old ought to have - reputation for doing useful things, I mean, not your rapidly-developing reputation for running your mouth off when you clearly don't know jack - then you would have been brought into the circle of people working on this thing.

That would probably be pretty pointless, though. I'm guessing you couldn't write a Hello World, much less an NT kernel driver for ARM that has to be written without the benefit of a kernel debugger and needs to bypass a mostly-undocumented security feature (PatchGuard) while being loaded through a code-signing bypass exploit. That's at least three exploits that need to be chained together (code signing bypass in usermode to set up the code signing bypass for loading a driver to set the kernel flag and bypass or disable PatchGuard), all of which have to be developed with only minimal debugging capability and can only be worked on in the developers' free time (they have jobs, you know, and nobody is paying them for this work).

I won't deny that I thought they'd be done by now, too... but the last time I tried writing a NT kernel driver from scratch it took a month just to get it to "complete mess that half works but is totally unstable" and I had the benefit of KD. That was, admittedly, when I was back in college... but it was also for a project, so I had dedicated time each week to work on it. It wasn't supposed to do anything nearly as tricky as bypass something like PG, either; it was just a filesystem driver. This stuff is hard.

Oh, and the more severe vulnerability? It wasn't reported yet because Myria wanted to both keep it as a backup for RT and see if it could be used on other systems (things like XB1) as well. That's probably more than I should say on the subject, but I hope you see the danger of prematurely releasing something that is going to get a mandatory and opaque patch on systems like that when it could be put to greater use. She probably hasn't had time to work on that yet, though, because there's other stuff that needs doing first (like the RT 8.1 jailbreak).
 
Last edited by a moderator:

snickler

Retired Forum Mod / Inactive Recognized Developer
Aug 17, 2010
1,320
1,133
Dub V
www.sinclairinat0r.com
Guys. Please stop the arguments. These threads are to be informative, not for bashing each other. If arguments start, don't keep them going by responding with name calling.

With that said, this is a warning going forward on this thread. No more asking when things are going to be released over and over, and no more arguing. I understand the frustration, but please don't feed into it.
 

GoodDayToDie

Inactive Recognized Developer
Jan 20, 2011
6,066
2,933
Seattle
Contact @Myriachan (I can put you in touch, if you need) if you need a way to run arbitrary code, even call native APIs on RT. I know the technique but it's not my discovery and I'm not going to share it without permission. Note that it has limitations:
1) It's slow; it works for something like bootstrapping a jailbreak but you don't want to run a large program this way.
2) It doesn't let you bypass the issue of not being able to load unsigned DLLs, so you'd need to re-write any native source code you wanted to use.
 

jordanmills

Senior Member
Sep 10, 2006
139
21
Pearland, TX
www.jordanmills.com
Something else, also related to JB: anybody know of a way to get around the NT privilege restrictions (in particular, SeImpersonatePrivilege) on a Metro app? I tried adding that privilege to the "ALL APPLICATION PACKAGES" security ID, but apps still don't have it. There's probably a more "correct" way to do it, but I'm still trying to figure out how the heck the SAM works, and they could explicitly block those capabilities when creating the app's token anyhow.
Alternative approach: any idea what the "trigger" for allowing sideloaded WinRT apps to load unsigned code is? On WP8 it's a (secret) capability that automatically is added to sideloaded apps, ID_CAP_DEVELOPERUNLOCK (AppCapSID="S-1-15-3-1024-2489250862-3731101856-757172019-2830005102-2903107461-2549818383-1921265406-345878668", SvcCapSID="S-1-5-21-2702878673-795188819-444038987-1443") but I don't know what it is for Windows RT.

Could you embed some kind of useful payload as an unused part of a metro app, get it published and signed, then call the useful payload from the now-signed library?
 

GoodDayToDie

Inactive Recognized Developer
Jan 20, 2011
6,066
2,933
Seattle
Yes, of course. That kind of thing is actually really easy to do, which is why the concept of banned APIs for Store apps doesn't make a lot of sense; it's impossible to enforce because any function pointer could end up calling arbitrary code so long as it's in the process address space. Good idea though; I (for some reason!) hadn't thought to combine that with the attack I'm thinking of.

Mind you though, there's no promise it'll work. I can see two problems:
1) Windows Store apps are compiled with a special flag that tells the OS to load them in an AppContainer (try running the .EXE from a store app directly from Explorer, and you'll see that it doesn't work). I might be able to get around this but the naïve approach probably won't work.
2) Store apps get different signatures than OS apps. They're still signed (by MS, even), so if the check is just "does it have a valid signature that chains to MS?" then we're fine. However, if they also check "does the signer certificate specify that this binary is allowed to run on the desktop?" then we're SOL. Hence the desire for turning off the signature enforcement for a specific account.
 

xsoliman3

Senior Member
Jan 25, 2012
113
34
Contact @Myriachan (I can put you in touch, if you need) if you need a way to run arbitrary code, even call native APIs on RT. I know the technique but it's not my discovery and I'm not going to share it without permission.
If you could ask if she / you could share any details, it would be good.
I'm a bit too shy to ask, although have been monitoring her twitter posts
 

LolitaPlus

Senior Member
Oct 30, 2013
79
19
@GoodDayToDie, is there any other method to run some unsigned codes beside using side loading? I wrote a small script to write binary code into a running process using cdb (like what we did with the 8.0 jailbreak). On my PC it works fine. However on Windows RT it throws an error about memory writing: seems like you cannot use "e" command anymore. Side loading just has so many limitations so I'm lost now.

Any ideas?
 

xsoliman3

Senior Member
Jan 25, 2012
113
34
  • Like
Reactions: jesuslg123

Top Liked Posts

  • There are no posts matching your filters.
  • 23
    Myria told me her current method for jailbreaking the tablet, I've gotten the hardest part replicated. I think I see a way to get it automated, at least to an extent, too. It's not going to be as straightforward as the 8.0 exploit, sadly, but it should be persistent.
    20
    http://i.imgur.com/Y38fel5.png

    Edit: Did that bounty idea ever take off? :p

    Edit 2: PuTTY running: http://i.imgur.com/KGwAMo6.png
    19
    Just got Kernel-mode working.
    12
    Mmm. An attempt at this summary you ask for...
    1. RT devices boot with UEFI, which is firmware that runs at the same level as the old BIOS but is far more advanced, effectively being its own mini-OS (many x86 devices allow you to boot into an interactive UEFI shell, from which you can run UEFI programs, for example).
    2. Flashing UEFI is often possible, but requires either that the firmware image support it or that an UEFI program to do so is available (I think; don't take this part as gospel). RT devices do, I believe, support firmware updates... but as you'd expect, they check them for Microsoft's cryptographic signatures.
    3. UEFI supports a feature called Secure Boot. This feature checks the UEFI programs that are run (such as the bootloader for an OS) for cryptographic signatures. The list of allowed public keys might be stored in the firmware image, or in a hardware security chip called a Trusted Platform Module (TPM). I suspect the TPM but am not sure. All RT devices are required to implement Secure Boot, and to not allow the user to disable it or add their own certificates to the trust list. The Windows bootloader is of course signed.
    4. UEFI can also store named variables in firmware, typically for the use of the operating system. In the case of RT, a variable which controls what signing level the OS enforces is apparently stored in the UEFI, and is supposed to be read-only. I don't know how easy or hard it would be to change this value, assuming we have Admin-level arbitrary code execution in Windows.
    5. With Secure Boot enabled, the Windows bootloader disables certain options. In particular, the kernel debug and the "testsigning" boot options are prohibited. This restriction is enforced by the bootloader, which is either informed by the UEFI of the presence of Secure Boot or queries for it (not sure). If it was possible to cause the bootloader to think Secure Boot wasn't enforced, we could use these options to jailbreak with relative ease.
    6. The Windows bootloader verifies the cryptographic signature on the kernel before loading it. Thus, modifying the kernel on-disk would prevent a successful boot, unless we could modify the bootloader too (to remove this check), but doing that would break the bootloader's signature and Secure Boot wouldn't allow it to run.
    7. The Windows kernel checks various sources (boot parameters, registry, and UEFI variables) for what signature level to enforce. Lacking the "testsigning" or "debug" boot parameter, the kernel takes the more-restrictive policy from the registry or UEFI. On RT devices, this policy (as stored in a UEFI variable) requires Microsoft-signed programs. Binary images without a valid Microsoft signature will not load or run, unless they are in an "AppContainer" which is an app-specific sandbox with Low mandatory integrity control (a "lowbox").
    8. All "Windows Store" (Metro) apps run in AppContainers, and any processes they spawn will also be in an AppContainer. We can modify ACLs on many securable objects in the system, such as files and registry keys, to allow AppContainers to access them. However, we cannot actually elevate the privileges that an AppContainer has, and lowbox tokens have a number of restrictions that largely prevent them from carrying out any kind of Administrative tasks.
    9. However, we can probably get arbitrary code execution as Admin anyhow, by using a debugger on the OS and attaching to a (Microsoft-signed) process running as Admin, then injecting executable code into the process' address space and creating a thread to run it.
    10. In fact, this is how the 8.0 jailbreak works: there's a vulnerability in a system call that allows modification of arbitrary kernel memory. However, this system call can only be made by one process, the CSRSS.EXE process started at system bootup. In 8.0, this process can be debugged and the vulnerability exploited. In 8.1, this process is "protected" meaning you can't attach a debugger to it, even if you have SeDebugPrivilege.
    11. Another vector for arbitrary code execution in RT is PowerShell. Although PS is supposed to prevent running arbitrary code that isn't in a signed script, there have been exploits to bypass this restriction. The exploits that were known for 8.0 have been patched in 8.1, but I believe there are more (that still work).
    12. There is an additional level of protection in 8.1: the kernel flag that controls the signing level is "protected" by PatchGuard, a complicated kernel watchdog system that periodically checks protected memory (usually things like IRQ tables and ISRs) and, if a change from the expected values is detected, bugchecks the kernel (Blue Screen Of Death). Patchguard can only be disabled using boot flags that Secure Boot prohibits.
    13. To make the 8.0 jailbreak work again, two things are needed: a way to attach a debugger to CSRSS.EXE (probably means making it not run as a protected process somehow), and a way to avoid PatchGuard crashing the system when it checks the signing level value.
    14. Other avenues towards a jailbreak, such as disabling Secure Boot in UEFI (enables modifying the bootloader and would also permit loading different OSes) or in Windows (would allow using Testsigning mode, where non-Microsoft signatures can be fully trusted anyhow), or changing the UEFI variable that tells the kernel to enforce Microsoft signing level, or finding a way to take advantage of the ability to launch unsigned binaries in an AppContainer but without a lowbox, would also be of interest. There may be some possibilities not listed here, too.
    OK, that wound up longer than expected. At least it's all in one place. Please, those who know, correct me or add additional info as needed. I probably also ought to add links to forum threads where some of these points are discussed in more detail, but it's late.
    10
    ok someones got to say it ...

    Please can you release what you have or the work in progress
    even if Patchguard isn't disabled
    So can at least run something (then put the flags back so Patchguard doesn't notice) and accept the 1-2% chance it might blue screen

    So other can build on it and investigate other ideas
    (eg I have an idea for a driver that might help)

    Or do a limited release to a few of us who are really interested

    Thanks