Você não está conectado. Conecte-se ou registre-se

Ir à página : Anterior  1, 2

[PS3-News] Novo Metldr Exploit divulgado (Update 1)

Ver o tópico anterior Ver o tópico seguinte Ir para baixo  Mensagem [Página 2 de 2]

Jaffoste

Jaffoste
Novato
Relembrando a primeira mensagem :

[PS3-News] Novo Metldr Exploit divulgado (Update 1) - Página 2 31548d1320769497-url

Boas pessoal, parece que finalmente descobriram uma maneira para obter a chave mestra para as nossas máquinas, aquela que por mais que $ony lance um ofw nós estaremos sempre atualizados de forma a jogar os mais recentes jogos!!
Sendo que isto é apenas para os programadores desenvolverem uma maneira de obter as chaves e criarem do dito cfw

Update 1

Segundo parece que ja se sabe de quem era isto lolol Isto pertencia ao... Mathieulh e foi publicado por alguém a quem ele tinha confiado a informação


Isto foi o que o Mathieulh disse:
Because some ungrateful person leaked my metldr exploit files I will now be explaining how it actually works, see this as my ultimate release of all times for an ungrateful scene (and scenes in the future)

That’s about how I am pissed right now, because of course the person that leaked these files has no idea of how they actually work.

How to pwn metldr the “easy” way:
This is most likely how geohot exploited it in the first way, this takes (give or take) about 10 minutes to be performed. (yeah, not so much of a “I hacked the ps3 all on my own work, especially not when it partially relies on Segher’s work, one of the reason geohot never shared the way he exploited metldr to anyone)

I will assume here, that you do not have the loader keys that were made readily available by geohot. This little tutorial also assumes that you have a working .self generating tool

Now You want to gain code execution to metldr, you know that metldr loads loaders to its own space, but you cannot run a loader because the loader needs to be signed and even though you know about the sign fail that Segher introduced at the CCC, you cannot use it because you don’t have decrypted signatures to calculate a private key and to get signatures you need keys which you are currently trying to dump, so far you are stuck in a chicken and egg scenario.

The question is, do you really need keys to get a decrypted signature ?
Well the real answer is no, thanks to a nifty fail that sony left in in metldr (and the bootloader), you can have the ldr to decrypt the metadata for you, isn’t that neat ?

Here’s how it works:

STEP I)

In a self file, at address 0x0C a value is used to calculate where the metadata is going to be decrypted, the “offset” is at self header + 0x0C
its the “meta header offset” in the SCE structure, it takes the SCE offset + that value, so what you have to do is to have a calculation that is equal to 0x3E01F0 which happens to be where metldr copies over the shared metadata from the mailbox (which is sent over by the ppu), the trick is to have metldr to decrypt the metadata located at.
So basically you have to
1) set the offset += 0×2000
dump shared lsa
and keep increasing 0×2000
until somewhere in the shared lsa changes 0×40 byte
2) when it changes 0×40 bytes, you can add/subtract the proper amount to make it decrypt the proper locations
3) then dump shared lsa and we have decrypted header
knowing that metldr uses SCE header 0xECF0, you could calculate it knowing the address 0x3E01F0 – 0xECF0 = the value you would patch at SCE header + 0x0C

ROM:0000F6C0 D2 68 87 E6 metadata_erk: .int 0xD26887E6 ; DATA XREF: ROM:0000F178o
for example in CECHA , the address you want to decrypt it to is 0x3E1F0
so it should be 0x3E1F0 – 0xF6C0

Once you get the decrypted header, you have the key to decrypt the rest of the metadata. Here you go, you have your decrypted signature.

So far so good, now what’s next ?

STEP II)

Contrary to popular beliefs, you do not need to know the public key to calculate the private key, you just need two decrypted signature, you now know how to dump these, so let’s assume you just did, now all you have to do is to bruteforce the curve type by constantly reloading a self to metldr, the curve type being only 1 byte, that would be 64 possibilities.

CONGRATULATION, you just signed a loader !

Now what ?

Well Your first reflex would be to sign a loader and use it to dump whatever is in your Isolated Local Store, the first thing you will notice is that you have a bit of metldr’s code as a leftover, after a few seconds of disassembly you will figure it’s actually some piece of code that clears metldr’s code and registers and jumps to some address which is matches your signed loader’s entrypoint.

This seems like a more than likely candidate to exploit, as in your goal would be to overwrite that piece of code with your own, that way you would have the whole metldr code right before the point where everything gets cleared out.

Let’s try to do just that, from your previous dump, you obviously know that the clear code is located from 0×400 to 0×630, (0×410 being where metldr jumps when it clears) your first attempt would naturally be to have a loader section to load at 0×400, well not so surprisingly, it fails, because you are not without a brain (at least you aren’t supposed to be if you’re reading and understanding this), you will assume that it is likely that metldr checks if you aren’t loading your loader/self section below a certain address, which considering you know the loaders’ entrypoint is most likely to be 0x12C00, this assumption is in fact correct as metldr will make sure you cannot load any loader at 0x12BFF and below, seems like a huge let down…

Well, maybe not, because yet again, you are not without a brain, you check out the hardware properties for the Local Store, and you find out that the memory wraps around (memory is a donut as someone once said at some ccc conference).

So what happens when you load your loader at let’s say from 0x3F000 to 0×40000+some address? (like 0×40410 for example) ?

Well, it WORKS!
You could put the section at 0x3F000, if you made the length 0×1414 and the last instruction branches “up” to the dump code

ROM:000008AC 33 7F 6C 80 brsl lr, cleanup_and_jump_entry
ROM:000008B0 32 00 11 80 br loc_93C
ROM:00000410 cleanup_and_jump_entry: ; CODE XREF: main+4Cp
ROM:00000410 32 7F FF 80 br sub_40C
this is what the exploit that got leaked (yeah that’s not really their work eh but you figured that much by now did you not? ) does.
It overwrites from 0×000 to 0×480 because I originally loaded the section o size 0×880 to 0x3FC00

So now you get code execution on metldr at the best time possible because your code executes right after metldr copies the root keys from 0×00 to 0×30, which means you get to dump these too. (Although they are hardcoded in metldr’s code anyway)

Here you go, you have a metldr dump !

Now as a final line, I’d like to say screw leakers, screw the scene, and this is my last contribution to it EVER. It seems I can’t even trust fellow developers to keep my work safe and not leaking it. (Not like any of them would have been able to tell you how all this even works in the first place)

So long, everyone.
Remember, don’t ever bite the hands that feed you.


rafa_xd

rafa_xd
Membro
Agora é preciso é ter calma, muita calma, eu só sei que de 3.72 já não passo, venha o que vier. xD

filipini

filipini
Novato
tenho lido a respeito parece que esse exploit so vai ajudar quem ta no CFW 3.55, os que estão no OFW 3.56+ que eu meu caso (to no 3.56 esperando ate hj)...
enfim, quero saber se posso ter esperanças ainda, ou essa noticia pelo contrario diminui as chances de lançar um novo CFW pois como o 3.55 esta overpower nao ha necessidade de um novo FW

KCRATTOS

KCRATTOS
Moderador
penso que com estas últimas novidades pode se ter esperança que sai algo para 3.56++++. Afinal a esperança é a última que morre e a primeira que nasce.

Nrto

Nrto
Membro
eu num sei se e verdade mas amnhã tem um cfw 3.70 na area flws!

KCRATTOS

KCRATTOS
Moderador
Nrto escreveu:eu num sei se e verdade mas amnhã tem um cfw 3.70 na area flws!
de onde vc tirou esta ideia????

wega

wega
Novato
onde foi nao sei ! cheers mas e uma ideia porreira pá Very Happy santa

Conteúdo patrocinado


Ver o tópico anterior Ver o tópico seguinte Ir para o topo  Mensagem [Página 2 de 2]

Ir à página : Anterior  1, 2

Permissões neste sub-fórum
Não podes responder a tópicos