漏洞挖掘
文章平均质量分 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 · 1235 阅读 · 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 · 1433 阅读 · 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 · 1159 阅读 · 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 · 1766 阅读 · 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 · 1291 阅读 · 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 · 669 阅读 · 0 评论