Practical SMEP bypass techniques on Linux

RUXCON15-Vitaly RUXCON15-Vitaly

06.11.2015 Views

et2usr Option #1 - corrupted function ptr High mem addr Function ptr Kernel space ((1UL

et2usr Option #1 - corrupted function ptr • What function pointer to overwrite? • ptmx_fops • int fd = open("/dev/ptmx", O_RDWR); • fsync(fd); • perf_fops • int fd = sys_perf_event_open(…); • fsync(fd); • grep -E ‘_ops$|_fops$’ /boot/System.map*

et2usr<br />

Opti<strong>on</strong> #1 - corrupted functi<strong>on</strong> ptr<br />

• What functi<strong>on</strong> pointer to overwrite?<br />

• ptmx_fops<br />

• int fd = open("/dev/ptmx", O_RDWR);<br />

• fsync(fd);<br />

• perf_fops<br />

• int fd = sys_perf_event_open(…);<br />

• fsync(fd);<br />

• grep -E ‘_ops$|_fops$’ /boot/System.map*

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!