-
Notifications
You must be signed in to change notification settings - Fork 374
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add 6.72 Support #45
base: master
Are you sure you want to change the base?
Add 6.72 Support #45
Conversation
Add 672 suppport to pppwn, pending 4 missing ROP gadgets
There are missing rop gadgets on 6.72:
This means that the ROP chain will have to be modified to work around this. Outside of this, this is the only thing that's remaining for 6.72 support. |
@kiwidoggie I tried on my fork do some changes in the gadgets take a look, but untested, first time that I dealed with ROP chain. The rop += p64(self.kdlsym(self.offs.POP_RDI_RET))
rop += p64(self.kdlsym(self.offs.ZERO_RW_QWORD_A))
rop += p64(self.kdlsym(self.offs.XCHG_RDI_8_R8_RET))
# here the code tries to set R8 to zero, then I give to RDI pointer to an 0 qword in the memory
# and used xchg to set the R8, notice too that the address isn't RDI but [RDI+8] The most uncertain thing that I did it was with After that I did an trick, later there are more one missing offset used, And the last Again, I never worked with ROP chains before so I'm not confident here, then Just trying say my Also, I get and I got stage1 KP, I compared with your offsets and seems like I did wrong some few ones, let me try it again. |
@marcussacana I am down a PS4 right now, so these haven't been tested either. Ymmv until I get this thing back up. |
After research a bit this SETIDT seems to be related with the CPU interrupt handler callbacks, there are not much info about it by just googling, and is the CPU who call the function, so even hard to me know what should be the expected result. So, after look a bit more, currently for the 0xffffffff824a760b : pop rbx ; pop r12 ; pop r13 ; pop r14 ; pop r15 ; pop rbp ; ret it moves the stack about 0x30 bytes and then return, just like |
It's used to ignore the ud2 |
So, Another thing that I didn't look it is if the stack alignment cares anywhere in the ROP chain... since I added some gadgets maybe that may brick it as well, I'm trying what I can do but its hard since I don't have UART to see any KP logs. |
I pushed a few changes to @kiwidoggie should work now. |
You managed to change the ROP chain to circumvent the missing gadgets in the 6.72? |
Yes, it's a lot easier than 5.05. I'm still working with it, but we'll see how it goes. If you get the time, try testing this to see how far it goes. It should go all the way. Not sure when kiwi will accept my changes. Try my github. |
Thank you, @EchoStretch. Do you have plans in order to publish it on docker hub? I would be more easy to install on a Synology (my case) |
Currently needing the ROP gadgets, will complete this when I get off of work.