如何使用OverRide学习源码漏洞利用和逆向工程分析 – 作者:Alpha_h4ck

图片[1]-如何使用OverRide学习源码漏洞利用和逆向工程分析 – 作者:Alpha_h4ck-安全小百科

关于OverRide

OverRide是一款功能强大的代码研究工具,OverRide以类似“游戏”的形式提供了十个小挑战,广大研究人员可以使用OverRide来学习和了解关于反汇编、代码漏洞利用和逆向工程分析相关的知识。

在该项目的每一个等级文件夹中,你将会看到:

flag:针对下一关卡的密码;

md:告诉你如何找到过关密码;

c:逆向工程代码;

md:ASM相关内容;

最终分数:125/100

工具下载

广大研究人员可以从下列地址下载OverRide:

https://projects.intra.42.fr/uploads/document/document/2096/OverRide.iso

虚拟机配置

在macOS上,首先需要安装VirtualBox。然后在VirtualBox中,创建一台新的虚拟机。

虚拟机配置清单如下:

内存大小:4MB

磁盘文件类型:VDI

物理磁盘存储:动态分配

文件大小:12GB

接下来,点击设置->网络->适配器1->绑定至:桥接适配器。

还是在设置界面,加载我们之前下载好的ISO磁盘镜像。

然后启动虚拟机,运行之后将会显示虚拟机的IP地址并提示用户进行登录。

SSH连接

在一个单独的Shell中登录,用户名为level00,密码也是level00:

ssh level00@{VM_IP} -p 4242

图片[2]-如何使用OverRide学习源码漏洞利用和逆向工程分析 – 作者:Alpha_h4ck-安全小百科

Level过关

作为level00用户身份,其目标就是读取用户level01的登录密码,密码可以在/home/users/level01/.pass处找到。但是,用户level00并没有权限去读取这个文件。

在用户level00的主目录下,有一份level00源码,我们可以通过这个文件来处理用户level01的权限:

图片[3]-如何使用OverRide学习源码漏洞利用和逆向工程分析 – 作者:Alpha_h4ck-安全小百科

我们必须使用gdb找出level00源码中的安全漏洞,然后利用这个漏洞来运行“system(“/bin/sh”)”,并以用户level01的身份打开一个Shell,最终拿到读取密码的权限:

cat /home/users/level01/.pass

接下来,以用户level01登录:

su level01

图片[4]-如何使用OverRide学习源码漏洞利用和逆向工程分析 – 作者:Alpha_h4ck-安全小百科

以此类推,不断继续过关。

关卡概述

0 – 硬编码密码

1 – Ret2Libc攻击

2 – printf()格式字符串攻击

3 – 暴力破解密码

4 – gets()栈溢出 + libc攻击

5 – Shellcode + printf()格式字符串攻击

6 – 使用gdb发现哈希值

7 – 针对未受保护的数据表执行Ret2Libc攻击

8 – 通过符号链接备份源码密码

9 – Off-by-one错误

项目地址

OverRide:https://github.com/anyaschukin/OverRide

参考资料

https://github.com/anyashuka/Override/blob/main/subject.pdf

https://github.com/anyaschukin/RainFall

https://projects.intra.42.fr/uploads/document/document/2096/OverRide.iso

https://www.virtualbox.org/

来源:freebuf.com 2021-04-29 17:58:56 by: Alpha_h4ck

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论