Practical SMEP bypass techniques on Linux
RUXCON15-Vitaly RUXCON15-Vitaly
ROPing IA32 language density • Almost any sequence of bytes can be interpreted as an instruction 0f 94 c3; sete %bl
ROPing IA32 language density • Almost any sequence of bytes can be interpreted as an instruction 0f 94 c3; sete %bl 94 c3; xchg eax, esp; ret
- Page 1 and 2: Practical
- Page 3 and 4: Agenda • Introduction (ret2usr)
- Page 5 and 6: et2usr High mem addr • Memory spl
- Page 7 and 8: et2usr Privilege escalation • str
- Page 9 and 10: et2usr Option #1 - corrupted functi
- Page 11 and 12: et2usr Option #2 - corrupted data s
- Page 13 and 14: SMEP
- Page 15 and 16: SMEP OOPS
- Page 17 and 18: SMEP • If CR4.<s
- Page 19 and 20: AWS SMEP instance
- Page 21: ROPing • vmlinux vs vmlinuz? •
- Page 25 and 26: Stack pivot - NX address Exploit at
- Page 27 and 28: SMEP Bypass High m
- Page 29 and 30: SMEP Bypass High m
- Page 31 and 32: SMEP Bypass Option
- Page 33 and 34: Fake stack • xchg %eax, %esp; ret
- Page 35 and 36: Fake stack Spraying 0x10000 ROP INS
- Page 37 and 38: Fake stack Spraying • May land in
- Page 39 and 40: PART 2 - CVE-2013-1763
- Page 41 and 42: CVE-2013-1763 SOCK_DIAG • Affecte
- Page 43 and 44: CVE-2013-1763 SOCK_DIAG
- Page 45 and 46: CVE-2013-1763 SOCK_DIAG High mem ad
- Page 47 and 48: CVE-2013-1763 SOCK_DIAG High mem ad
- Page 49 and 50: CVE-2013-1763 SOCK_DIAG ptr = (unsi
- Page 51: Questions? @vnik5287
ROPing<br />
IA32 language density<br />
• Almost any sequence of bytes can be<br />
interpreted as an instructi<strong>on</strong><br />
0f 94 c3; sete %bl