Linux_kernel_exploits
+ 功能:自动生成UAF类型漏洞exp文件的工具,目前缺乏文档介绍,能够参考test文件下的使用实例,可是源码中缺乏dataflowanalyzer模块
+ 相关内容:源码路径https://github.com/ww9210/Linux_kernel_exploits,python
论文:linux
@inproceedings{wu18fuze, 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 + python2git
安装须要 'pwntools', 'colorama', 'ROPgadget', 'angr', 'claripy', 'pyvex'github
angr, qemu-system-x86_64, ROPGadget, pwntools, GDB, gef, capstone, KASAN, ftrace
app
+ 主要内容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的值)python2.7
qemuConfig包含的选项参考 fuze/vminstance/qemuconfig/__init__.pyssh
data = {'qemu_path' : '/usr/bin/qemu-system-x86_64'\
, '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'\
}工具