Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hardenedlinux/linux-exploit-development-tutorial
a series tutorial for linux exploit development to newbie.
https://github.com/hardenedlinux/linux-exploit-development-tutorial
kernel-exploit linux tutorials
Last synced: about 1 month ago
JSON representation
a series tutorial for linux exploit development to newbie.
- Host: GitHub
- URL: https://github.com/hardenedlinux/linux-exploit-development-tutorial
- Owner: hardenedlinux
- Created: 2016-10-09T06:00:36.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2024-04-12T02:00:37.000Z (8 months ago)
- Last Synced: 2024-08-01T09:23:18.387Z (4 months ago)
- Topics: kernel-exploit, linux, tutorials
- Language: C
- Size: 63.8 MB
- Stars: 546
- Watchers: 59
- Forks: 171
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-security-collection - **425**星
- awesome-hacking-lists - hardenedlinux/linux-exploit-development-tutorial - a series tutorial for linux exploit development to newbie. (C)
README
# Linux exploit 开发入门
## 这是什么?
这是面向新手的 Linux exploit 开发指南。
发现 Linux 下二进制学习曲线陡峭,而套路零散,于是整理编著这篇文章,来帮助感兴趣的人学习,还想结识更多对 Linux 二进制感兴趣的人。
万事开头难,首先要感谢本文原来的的作者 sploitfun,他开始做了这件事并写出了思路,我在他的基础上进行了补充和翻译。
还要要感谢 phrack,乌云知识库,各种 wiki 上面文章的作者,这些作者和安全研究人员讲解了很多关于 exploit 相关技术,是大家的无私分享使很多东西变的可能,我也想学习这样的分享精神。
为了防止文档过于臃肿,我们讲分享讨论的话题尽量限制在 Linux, x86, ipv4 范围内,我们假设读者能正常使用 Linux,熟悉 C 语言,了解汇编语言,认识计算机专业词汇,基本体系结构知识(栈,堆,内存之类的)。如果不能因为知识储备不够,推荐 0day 安全以补充背景知识。
测试机器是 Ubuntu 14.04 的默认安装。
## 目录
### 第一章节: [基础知识](./chapter1)
基础部分知识比如: 栈与堆分别是什么? C 语言如何转换成汇编? 内存布局是什么样的? ...
基础的安全知识如: 什么是堆栈溢出? 堆分配器是如何工作的? ...
这个阶段还要介绍基本的漏洞类型和安全机制,然后关闭全部的安全保护机制,学习如何在 Linux 下面编写最基本的 exploit。
### 第二章节: [栈的安全](./chapter2)
主要关注在现代 Linux 上栈的安全防护机制及其绕过的常规套路.
分为两大类:编译相关(ELF 加固),部分编译选项控制着生成更安全的代码(损失部分性能或者空间),还有就说运行时的安全(ASLR),都是为增加了漏洞利用的难度,不能从本质上去除软件的漏洞。
### 第三章节: [堆的安全](./chapter3)
主要关注在现代 Linux 上 glibc 下堆的安全防护机制及其绕过的常规套路。
### 第四章节: [内核的安全](./chapter4)
这个阶段学习现代 Linux (2.6.32)及其以后版本 Kernel 安全相关的文档(安全保护,利用)。
在早期 Kernel 可以随意访问用户态代码, ret2usr 技术可以让内核执行用户态的代码,不过随着 Linux 的发展 SMAP(禁止 Kernel 随意访问用户态,RFLAGE.AC 标志位置位可以),SMEP 禁止 Kernel 态直接执行用户态代码,KASLR 也提升了漏洞利用的难度。
### 第五章节: [漏洞发现](./chapter5)
漏洞挖掘的重要性不言而喻,打个比喻上面写的如何吃肉,漏洞挖掘就是肉在哪里。
这个章节对我来说目前也是一个新领域,在这个章节里面主要关注 fuzz 与代码审计。
## 如何修改和更新?
```shell
git clone [email protected]:hardenedlinux/linux_exploit_development_tutorial.git
cd linux_exploit_development_tutorial
make # preview
```## 如何实践文档代码?
(WIP)
源代码会陆续放到`lab-code`目录中,其实更倾向于提供一个虚拟机镜像供下载。
...## 版权
这个项目是以 知识共享署名-相同方式共享 3.0 许可协议授权。