Ret2Libc 攻击技术
2017-03-13 17:00
423 查看
1. DEP 技术对stack overflow 的保护:
Data Execution Prevention: 去掉 stack 上的执行权限,可以阻止一部分基于 stack 的攻击。
2. Ret2Libc 攻击原理
Return-to-library technique
简称“Ret2Lib”,这种技术可以绕过DEP的保护,其核心思想是把返回地址直接指向系统某个已存在的函数(一般是system,因为其使用简单,参数只有一个),这样同样可以达到攻击的目的。再来看刚才的例子,如果在badfile构造一些数据,使其被bof函数读取后,达到如下堆栈分布:
这样当程序执行完bof后,马上就跳转到system函数了,然后去获取其第一个函数,即&"/bin/sh",这样就让程序直接跑起了一个sh进程了。试想一下,如果这个程序是一个具备suid的程序,那就意味着我们轻易就获得了root权限了。
3. Ret2Libc 的预防
Borrowed Code Chunks
"Ret2Lib"一直工作得很好,直接x64体系的出现。x64相比于x86,最后的区别是函数参数的传递不再完全依赖堆栈,其规定函数的第一个参数必须保存到第一个寄存器即EAX,这导致单纯的把参数地址放在堆栈并不能很好的工作,除非函数本身不需要参数。因此,在这种情况下,Borrowed
Code Chunks技术就诞生了。这种技术是Ret2Lib技术的一个思维突破,它不再单纯把返回地址指向整个函数入口,而且还包括函数中任意的指令片断。还是回到刚才的DEMO,如果要实现先把&"/bin/sh"的地址赋值给EAX,那么我们可以尝试寻找下列指令:
POP %EAX
ret
或者
POP %EAX
POP %EBX
JMP %EBX
等等
假如我们找到前者的指令,这样我们在badfile写入如下数据:[POP_address][&/bin/sh][system_address][fake_ebp][fake_retaddress],同样可以达到攻击目标。
4. 补充:
Ret2libc 攻击除了使用 system() 函数以外,还会使用 exec(), mprotect() 函数。
mprotect() 函数可以改变 页表的属性,从而使 DEP 攻击失效。
Data Execution Prevention: 去掉 stack 上的执行权限,可以阻止一部分基于 stack 的攻击。
2. Ret2Libc 攻击原理
Return-to-library technique
简称“Ret2Lib”,这种技术可以绕过DEP的保护,其核心思想是把返回地址直接指向系统某个已存在的函数(一般是system,因为其使用简单,参数只有一个),这样同样可以达到攻击的目的。再来看刚才的例子,如果在badfile构造一些数据,使其被bof函数读取后,达到如下堆栈分布:
这样当程序执行完bof后,马上就跳转到system函数了,然后去获取其第一个函数,即&"/bin/sh",这样就让程序直接跑起了一个sh进程了。试想一下,如果这个程序是一个具备suid的程序,那就意味着我们轻易就获得了root权限了。
3. Ret2Libc 的预防
Borrowed Code Chunks
"Ret2Lib"一直工作得很好,直接x64体系的出现。x64相比于x86,最后的区别是函数参数的传递不再完全依赖堆栈,其规定函数的第一个参数必须保存到第一个寄存器即EAX,这导致单纯的把参数地址放在堆栈并不能很好的工作,除非函数本身不需要参数。因此,在这种情况下,Borrowed
Code Chunks技术就诞生了。这种技术是Ret2Lib技术的一个思维突破,它不再单纯把返回地址指向整个函数入口,而且还包括函数中任意的指令片断。还是回到刚才的DEMO,如果要实现先把&"/bin/sh"的地址赋值给EAX,那么我们可以尝试寻找下列指令:
POP %EAX
ret
或者
POP %EAX
POP %EBX
JMP %EBX
等等
假如我们找到前者的指令,这样我们在badfile写入如下数据:[POP_address][&/bin/sh][system_address][fake_ebp][fake_retaddress],同样可以达到攻击目标。
4. 补充:
Ret2libc 攻击除了使用 system() 函数以外,还会使用 exec(), mprotect() 函数。
mprotect() 函数可以改变 页表的属性,从而使 DEP 攻击失效。
相关文章推荐
- SYN Flood攻击防范技术(转)
- 网络攻击技术开篇——SQL Injection
- BlackHat2016——JDNI注入/LDAP Entry污染攻击技术研究
- ARP病毒攻击技术分析与防御
- 协议欺骗攻击技术常见种类简析及防范
- PHP邮件注入攻击技术
- 网络监听攻击技术
- 忆龙2009:检测IDS攻击的技术
- 黑客经验谈:跳板攻击入侵技术实例解析
- ARP病毒攻击技术分析与防御
- 谈FTP服务器攻击技术及其展望 (下)
- 【技术分享】从开发角度浅谈CSRF攻击及防御
- 图解HTTP笔记(十一)-Web的攻击技术
- 高级Mysql攻击技术(翻译blackhat 2009文章)
- Xpath注入攻击及其防御技术研究
- SQL盲注攻击技术综述
- PHP SQL 注入攻击的技术实现以及预防办法
- 2010年度最有技术含量攻击:Padding Oracle Attack
- SYN 攻击原理以及防范技术