一 实验内容
- return-to-libc实验是一个基于缓冲区溢出攻击实验的基础上的一种攻击实验
- 缓冲区溢出攻击相关知识:
- 原理:通过一段包含shellcode以及shellcode地址的长字符串注入到程序中,以shellcode地址来覆盖程序原有的返回地址,从而让目标程序来执行我们的shellcode,以此达到攻击目的
- 保护措施:为了防止缓冲区溢出攻击,现在常用的保护措施有两种,一是设置堆栈不可执行,漏洞程序在执行注入到堆栈中的shellcode时就会发生程序崩溃。二是代码生成地址随机化,以此来使得攻击者无法准确得知shellcode的地址
- return-to-libc攻击原理:
- 为了避开堆栈不可执行的问题,return-to-libc攻击放弃了让漏洞程序执行堆栈中的shellcode,而是跳转到已经存在的代码(例如libc库中的system函数)来完成攻击
二 实验步骤
安装32位c语言程序编译器,sudo apt-get lib32z1 libc6-dev-i386,sudo apt-get install lib32readline6-dev准备32位实验环境(本次实验在自己的虚拟机下完成)

在实际中为了防范缓冲区溢出等攻击,通常会降低shell程序的权限,即无法保持root权限,为了绕过这个问题,我们使用另一个shell程序,zsh来代替/bin/bash 。并且上面说过,现在为了防止代码的注入,操作系统对于代码所分配的堆栈地址都是随机的,这也不利于我们找到之后我们需要找到的/bin/sh`

最低0.47元/天 解锁文章
3603

被折叠的 条评论
为什么被折叠?



