[SEEDLabs]buffer overflow

本文详细介绍了在Ubuntu20.04上进行Buffer Overflow Attack Lab的过程,包括环境配置、Shellcode理解和不同Level的攻击任务。通过调整exploit文件,计算返回地址和偏移量,实现对server的shell权限获取。实验中涉及到地址随机化关闭、shellcode编写和使用、端口监听以及对地址随机化等安全措施的绕过。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        纠结又纠结的实验,希望下次老师能讲清楚每个实验的要求……解决好前面的问题之后,后面几个上手就没有那么困难了。我果然还是学的太不扎实了,也缺少相关经验,磨蹭了好久才弄出来,羞愧。

1.环境配置

        首先是配置虚拟机,在官网可以下载vitual box可用的镜像,然后自己安装一下。提前配置好的虚拟机自己不用调节很多。

        然后讲一讲这个实验。我们做的版本是Buffer Overflow Attack Lab (Server Version),在Ubuntu20.04版本上的,感觉网上主要的关于seedlab的资料大部分是以前的版本。实际上还是有些差别的。这个lab的目标是利用buffer overflow来获取server的shell权限。

        实验环境配置的话,是要下载lab setup的文件,里面包含做实验要用到的一些代码和文件。

#关闭位置随机化
$ sudo /sbin/sysctl -w kernel.randomize_va_space=0

        关闭位置随机化这一步是在前几个难度的task里面要用到,降低难度的。看有其他前辈说每次打开终端要记得设置一下,这个设置应该对于多有正在运行的终端都是起作用的,所以如果你把打开的终端关闭了的话,以防万一还是重新设置一下。

        然后按着manual的步骤,make不同的server的配置文件。

        接下来build dockers,也是按照manual的说明来进行就可以了,需要注意的是要先生成好server的文件再进行dockers的配置。我这里还有一个问题就是,用 docker-compose build 命令的时候就会提示网络问题,但是用dcbuild就没有问题,很奇怪。

2.Task 1: Get Familiar with the Shellcode

        task1主要就是让大家熟悉一下shellcode的操作,简单按照给出的步骤make一下shellcode的文件,运行就可以了。然后按照manual的要求的话,是要能够删除一个文件。这个也很好实现,就是在shellcode的py文件里,修改一下那行命令就可以。需要注意的是,要保证位数不变,最后一位还是用*,前面少的用空格补齐。这里面是用*代替了0,所以最后的*是用来代表结束的。

3.Task 2: Level-1 Attack

        正式进入攻击阶段啦。首先打开终端1,然后打开我们的containers,这一步很简单哈。一共有四个container,分别是server1234,对应着L1234四个难度,然后这里要用的就是server1。现在终端1应该是保持着container在线的状态。别忘了提前设置关闭地址随机化。

        然后打开终端2,在这里我们用命令

$ echo hello | nc 10.9.0.5 9090 #10.9.0.5是server1的ip
# press Ctrl+C

        来得到server1的相关信息,在终端1中可以看到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值