Driller、Exploit自动生成引擎 Rex

本文介绍了Shellphish团队为DARPA CGC竞赛设计的Exploit自动生成引擎Rex。Rex基于QEMU和angr,通过Concolic Execution分析Crash并判断可利用性,生成Exploit。文章详细讲解了Rex的安装、源码结构,特别是Crash的可利用性判定过程,涉及符号执行和路径探索策略。
摘要由CSDN通过智能技术生成

来自 UCSB 的团队 Shellphish,为参加 DARPA 举办的 CGC 竞赛,设计并实现了 CRS(Cyber Reasoning System)Mechaphish。该系统包含自动化漏洞挖掘模块 Driller、Exploit自动生成引擎 Rex、自动补丁模块 Patcherex 以及 ropchain 生成模块 angrop。本文主要对其中的 Exploit 自动生成引擎 Rex 进行介绍,通过分析 Rex 源码,重点对 Crash 复现及可利用判断部分进行说明。弟作为一只资深菜鸡,文中难免存在不当之处,望各位师傅指正 Orz…

一、概述
Exploit 自动生成引擎 Rex 在硬件模拟器 QEMU 与二进制分析平台 angr 的基础上,通过 Concolic Execution 实现 Exploit 的自动生成。将待分析的应用程序及导致应用程序崩溃的 Crash 作为系统输入,Rex 将复现崩溃路径,并对崩溃时的寄存器状态及内存布局进行分析,判断 Crash 的可利用性,并自动生成 Exploit。

在这里插入图片描述

源码中对漏洞类型的定义:

在这里插入图片描述

二、安装
安装 Rex 存在两种方式:1)安装 Mechaphish,安装文档;2)仅安装 Rex,安装文档。二者的差别在于 Mechaphish 包含漏洞挖掘模块 Driller、自动利用模块 Rex、自动补丁模块 Patcherex 以及 ropchain 生成模块 angrop。由于各模块之间相互独立,因此本文选择仅安装自动利用模块 Rex。本地环境采用 Ubuntu 16.04.5 Desktop(64 bit)。部署过程中,Rex 所需依赖如下:

在这里插入图片描述

依赖过程中部分路径需要调整,根据提示信息修改即可。各个依赖所承担的功能如下:

组件名称 功能
angr A powerful and user-friendly binary analysis
platform! tracer Utilities for generating dynamic traces.
angrop angrop is a rop gadget finder and chain builder.
compilerex POV templates and compilation support for CGC binaries.
compilerex is a hacky cgc binary compiler shellphish-qemu
Shellphish’s pip-installable package of QEMU povsim POV
simulation for CGC.

安装完成后,使用以下代码对 Rex 的功能进行测试。

# triage a crash
>>> crash = rex.Crash("./legit_00003", b"\x00\x0b1\xc1\x00\x0c\xeb\xe4\xf1\xf1\x14\r\rM\r\xf
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值