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'
}```
原文地址:https://www.cnblogs.com/joeat1/p/11879340.html