Linux_kernel_exploits
功能:自动生成UAF类型漏洞exp文件的工具,目前缺少文档介绍,可以参考test文件下的使用实例,但是源码中缺少dataflowanalyzer模块
相关内容:源码路径https://github.com/ww9210/Linux_kernel_exploits
论文:
title={FUZE: Towards Facilitating Exploit Generation for Kernel Use-After-Free Vulnerabilities},
author={Wu, Wei and Chen, Yueqi and Xu, Jun and Xing, Xinyu and Gong, Xiaorui and Zou, Wei},
booktitle={27th USENIX Security Symposium (USENIX Security 18)},
organization={USENIX Association}
}
测试环境:Ubuntu16.04 + python2
- 安装需要
pwntools,colorama,ROPgadget,angr,claripy,pyvex angr,qemu-system-x86_64, ROPGadget, pwntools, GDB, gef, capstone, KASAN, ftrace
- 安装需要
主要内容fuze,包含'fuze.vminstance','fuze.concolicexecutor','fuze.statebroker', 'fuze.kernelrop'
其中vminstance用于管理虚拟机,concolicexecutor用于执行安装方法:
pip install networkx==2.2 cle==7.8.2.21 archinfo==7.8.2.21 pyvex==7.8.2.21 claripy==7.8.2.21 angr==7.8.2.21 pip install tox python setup.py install --user
修改python2.7/dist-packages/pwntools-3.14.0.dev0-py2.7.egg/pwnlib/elf/elf.py中的55行1749行的ENUM_P_TYPE,改为ENUM_P_TYPE_BASE查看测试用例
需要在测试前配置qemu_config(包含vmlinux_path、monitor_port等),function_call_to_disable列表,callbacks_to_monitor列表,expected_start_rip,extra_bp列表(可以为空),obj_base(rdx的值)
qemuConfig包含的选项参考
fuze/vminstance/qemuconfig/__init__.py
, 'kernel_path' : '/home/ww9210/kernels/4.14-rc1-no-kasan/arch/x86/boot/bzImage'\
, 'append':'console=ttyS0 root=/dev/sda debug earlyprintk=serial oops=panic'\
, 'hda':'/home/ww9210/develop/kuafffp/test/15649_test/img/wheezy.img'\
, 'ssh_port':10021\
, 'ram_size':'1G'\
, 'monitor_port':9210\
, 'gdb_port':1234\
, 'ssh_keyfile':'/home/ww9210/develop/kuafffp/test/15649_test/img/ssh/id_rsa'\
, 'vmlinux_file':'/home/ww9210/kernels/4.14-rc1-no-kasan/vmlinux'\
}```
Linux_kernel_exploits的更多相关文章
- 学习 Linux_kernel_exploits 小记
Linux_kernel_exploits+ 功能:自动生成UAF类型漏洞exp文件的工具,目前缺少文档介绍,可以参考test文件下的使用实例,但是源码中缺少dataflowanalyzer模块+ 相 ...
随机推荐
- [LeetCode] 346. Moving Average from Data Stream 从数据流中移动平均值
Given a stream of integers and a window size, calculate the moving average of all integers in the sl ...
- 机器学习技法总结(四)(aggregation,vote,bootstrap...)
研究的动机是:我们采用了不同的模型得到T个不同的g,那么我们是不是可以通过这些不同的g的融合得到更加出色的G呢?因此,便有了以上四种不同的方法:1)(select)直接选择最好的一个作为融合的结果:2 ...
- layui的select监听
首先,select一定要放在<form class="layui-form" ></form>里面 然后,加监听<select id="id ...
- DP(动态规划)总结
前言 动态规划是很重要的一个知识点,大大小小的比赛总会有一两道DP题,足以说明动态规划的重要性. 动态规划主要是思想,并没有固定的模板,那么,怎么判断题目是不是动态规划呢? DP题一般都会满足三个条件 ...
- (四)pdf的构成之文件体(树图)
pdf的文件体类似于一个大树 有个根对象(catalog),该对象中保存着PDF的很多基本信息,并通过间接引用,辐射到所有的间接对象. (下图是大概的树形状)
- 开源图像识别库OpenCV基于Maven的开发环境准备
1.安装 JDK 8+,并设置 JAVA_HOME 环境变量 2.安装 Maven,并将 “/bin” 子目录设置到 path 环境变量 3.下载 OpenCV,官网传送门 也可以直接下载本人瘦身之后 ...
- Mysql中HAVING的相关使用方法
having字句可以让我们筛选分组之后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having字句前. 而having子句在聚合后对组记录进行筛选.我的理解就是真实表 ...
- dubbo线程池的拒绝策略
jdk自带的原生的拒绝策略抛出的异常信息不够详细,而dubbo对拒绝策略进行了改写,抛出的信息更具有参考价值,值得我们借鉴. jdk自带的原生拒绝策略抛出的信息: // ThreadPoolExecu ...
- 和我一起,重零开始学习Ant Design Pro开发解决方案(二)部署示例项目
- dubbo源码阅读之服务导出
dubbo服务导出 常见的使用dubbo的方式就是通过spring配置文件进行配置.例如下面这样 <?xml version="1.0" encoding="UTF ...