2017-2018-1 20155320缓冲区溢出漏洞实验

本文详细记录了一次缓冲区溢出漏洞实验的过程,包括实验环境搭建、漏洞程序编写与攻击等步骤,并探讨了不同配置下攻击的成功率。

2017-2018-1 20155320缓冲区溢出漏洞实验

由于先前有同学在自己的电脑上做了这个实验,造成虚拟机不能使用,因此我还是在实验楼中完成

依照实验楼的指导

1、按照实验步骤进行操作,攻击漏洞程序并获得root权限。

实验步骤

1.依次输入sudo apt-get update sudo apt-get install lib32z1 libc6-dev-i386 sudo apt-get install lib32readline-gplv2-dev安装用于编译32位C程序的东西

2.输入命linux32进入32位linux环境

1071521-20171028165632820-1448832485.jpg

防范缓冲区溢出攻击及其它利用shell程序的攻击,许多shell程序在被调用时自动放弃它们的特权。因此,即使你能欺骗一个Set-UID程序调用一个shell,也不能在这个shell中保持root权限,这个防护措施在/bin/bash中实现。

3.我们使用命令关闭这一防范功能,为了重现这一防护措施被实现之前的情形,下面的指令描述了如何设置zsh程序:

1071521-20171029175008492-1791698903.png

4.漏洞程序的编写和执行

编译器有一种栈保护机制来阻止缓冲区溢出,所以我们在编译代码时需要用 –fno-stack-protector 关闭这种机制。
而 -z execstack 用于允许执行栈。

1071521-20171029175735117-1376052703.png

5.攻击程序

1071521-20171029180909180-210152170.jpg

计算地址:

1071521-20171029182029461-1238744669.jpg

6.攻击结果

1071521-20171029183231195-648181938.png

2、通过命令”sudo sysctl -w kernel.randomize_va_space=2“打开系统的地址空间随机化机制,重复用exploit程序攻击stack程序,观察能否攻击成功,能否获得root权限。

  • 不能,会提示段错误

1071521-20171029184541742-253349480.png

3、将/bin/sh重新指向/bin/bash(或/bin/dash),观察能否攻击成功,能否获得root权限。

  • 不能,会提示段错误

1071521-20171029185116820-755953535.png

  • 经查询得知这两个命令都是用来防护的。

转载于:https://www.cnblogs.com/ljq1997/p/7750776.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值