议题下载链接
https://www.blackhat.com/docs/asia-18/asia-18-Marco-return-to-csu-a-new-method-to-bypass-the-64-bit-Linux-ASLR.pdf
https://www.blackhat.com/docs/asia-18/asia-18-Marco-return-to-csu-a-new-method-to-bypass-the-64-bit-Linux-ASLR-wp.pdf
ASLR简述
由于程序的堆、栈分配与共享库的装载都是在运行时进行, 系统在程序每次执行时, 随机地分配程序堆栈的地址以及共享库装载的地址。尽管它们之间的相对位置没有改变, 但每次执行的差异仍然是页级的, 攻击者将无法预测自己写入的数据区的确切虚拟地址。
The Attached code
我只写了一个main函数,那其他的函数是怎么来的呢?
1 | parallels@ubuntu:~/ctf/0ctf2018/blackhole$ objdump -d empty |
我们把除了application source code之外的其他函数称为The Attached code
64-bit ASLR bypass
- 手动分析“attached code”,寻找ROP-chain,劫持控制流。
blackhole里
- 分析plt和got,用urop来leak libc地址
- 使用libc构造rop-chain