
漏洞挖掘
文章平均质量分 95
bsauce
github:https://github.com/bsauce
展开
-
syzlang语法编写案例学习 —— Looking for Remote Code Execution bugs in the Linux kernel
syzlang 模板编写原创 2022-07-11 08:22:10 · 1937 阅读 · 2 评论 -
syzkaller 源码阅读笔记1(syz-extract & syz-sysgen)
功能总结:编译系统调用模板的原理,可以理解成syzkaller实现了一种描述系统调用的小型的编程语言。 syz-extract :根据 syzlang 文件从内核源文件中提取出使用的对应的宏、系统调用号等的值,生成 .const 文件(例如,xxx.txt.const)。 syz-sysgen :通过 syzlang 文件与 .const 文件进行语法分析与语义分析,生成抽象语法树,最终生成供 syzkaller 使用的 golang 代码,分为如下四个步骤: assignSyscallNumbers:原创 2022-05-15 22:11:09 · 2245 阅读 · 0 评论 -
syzkaller 源码阅读笔记2(syz-manager)
1. 介绍 syz-manager 功能:主要负责各种工作的启动(HTTP、RPC、dashboard等等)、调用fuzz以及repro的生成。 fuzz命令:$ ./syz-manager -config=my.cfg 示例qemu.cfg:syzkaller\pkg\mgrconfig\testdata 目录下 { "target": "linux/amd64", "http": "myhost.com:56741", // 显示正在运行的 syz-manager 进程信息的URL "原创 2022-05-15 20:48:08 · 1573 阅读 · 0 评论 -
syzkaller 源码阅读笔记3(syz-fuzzer)
syz-fuzzer 功能:进行 fuzzing 的主程序,根据文件系统/sys/kernel/debug/kcov获取内核代码覆盖率,并且生成新的变异数据,然后将输入传给 syz-executor。 代码总结:见 main() 函数。 1. main() 位置:syz-fuzzer/fuzzer.go: main() 说明: [1] —— RPC远程调用 -> syz-manager/rpc.go:Check() -> machineChecked() -> loadCorpus()原创 2022-05-15 20:47:30 · 2311 阅读 · 1 评论 -
【bsauce读论文】Vetting Imbalance Reference Counting in Linux kernel with Symbolic Execution
1.简介 目标:挖掘错误使用引用计数(reference counter)的漏洞。 挑战:可扩展性;独特的内核约定(不统一的引用计数管理,eg,external vs. internal reference counter) 需要进行 path-sensitive analysis,检查可行的路径上,refcount递增递减是否匹配reference的增加与移除; Linux内核中使用refcount时有特殊的约定,有些是良性的,并不会违反refcount的一致性原则,可能会导致误报,例如 interna原创 2022-05-04 22:37:02 · 1376 阅读 · 0 评论 -
【漏洞挖掘】使用Syzkaller&QEMU捕捉内核堆溢出Demo
参考: 使用Syzkaller&QEMU捕捉内核堆溢出Demo 内核漏洞挖掘技术系列(4)——syzkaller(1) 实验所需源码 本文主要参考第一篇文章,但是文章中很多步骤不全面,而且存在错误,故记录本实验过程。本实验前提是参照配置syzkaller&QEMU环境配置好syzkaller环境。 本文将演示使用Syzkaller联合QEMU触发一个内核溢出的bug。 包括三个步骤: (1)在syzkaller中添加规则触发堆溢出 (2)编译一个带有堆溢出模块的ker原创 2021-04-05 11:34:50 · 1155 阅读 · 0 评论