|
1 |
| -# linux exploit development tutorial |
| 1 | +# linux exploit 开发入门 |
2 | 2 |
|
3 |
| -## What's this ? |
| 3 | +## 这是什么? |
4 | 4 |
|
5 |
| -A series tutorial for linux exploit development to newbie. |
| 5 | +这是面向新手的 linux exploit 开发指南. |
6 | 6 |
|
7 |
| -The test machine is ubuntu 14.04 which was default install. |
| 7 | +发现 Linux 下二进制学习曲线陡峭,而套路零散,于是整理编著这篇文章,来帮助感兴趣的人学习,还想结识更多对 Linux 二进制感兴趣的人. |
8 | 8 |
|
9 |
| -*Read this in other languages: [English](README.md), [简体中文](README-zh.md).* |
| 9 | +万事开头难,首先要感谢本文原来的的作者 sploitfun,他开始做了这件事并写出了思路,我在他的基础上进行了补充和翻译. |
10 | 10 |
|
11 |
| -## How to organize ? |
| 11 | +还要要感谢 phrack,乌云知识库,各种 wiki 上面文章的作者,这些作者和安全研究人员讲解了很多关于 exploit 相关技术,是大家的无私分享使很多东西变的可能,我也想把这样的分享精神学习来. |
12 | 12 |
|
13 |
| -### chapter 1: Basic knowledge |
14 |
| - |
15 |
| -base knowledge like : what's stack and heap ? how convert c language to assembly language ? what's elf and memroy layout? etc.. |
| 13 | +为了防止文档过于臃肿,我们讲分享讨论的话题尽量限制在 Linux,x86,ipv4 范围内,我们假设读者能正常使用 Linux,熟悉 C 语言,了解汇编语言,认识计算机专业词汇,基本体系结构知识(栈,堆,内存之类的).如果不能因为知识储备不够,推荐 0day 安全以补充背景知识. |
16 | 14 |
|
17 |
| -base vulnerability problems like : what's is overflow and memory corruption ? how heap working ? etc... |
18 |
| - |
19 |
| -### chapter 2: Stack security |
20 |
| - |
21 |
| -this chapter focus userspace stack security mechanism and bypass. |
| 15 | +测试机器是 ubuntu 14.04 的默认安装. |
22 | 16 |
|
23 |
| -### chapter 3: Heap security |
24 |
| - |
25 |
| -this chapter focus the security mechanism of heap in modern linux. |
| 17 | +## 目录 |
26 | 18 |
|
27 |
| -### chapter 4: Kernel security |
| 19 | +### 第一章节: [基础知识](./chapter1) |
28 | 20 |
|
29 |
| -this chapter focus the mechanism security of modern linux kernel (2.6.32) and later |
| 21 | +基础部分知识比如: 栈与堆分别是什么? c 语言如何转换成汇编? 内存布局是什么样的? ... |
30 | 22 |
|
31 |
| -### chapter 5: Vulnerability discovery |
| 23 | +基础的安全知识如: 什么是堆栈溢出? 堆分配器是如何工作的?... |
32 | 24 |
|
33 |
| -(WIP) |
| 25 | +这个阶段还要介绍基本的漏洞类型和安全机制,然后关闭全部的安全保护机制,学习如何在 Linux 下面编写最基本的 exp. |
| 26 | + |
| 27 | +### 第二章节: [栈的安全](./chapter2) |
| 28 | + |
| 29 | +主要关注在现代 linux 上栈的安全防护机制及其绕过的常规套路. |
| 30 | + |
| 31 | +分为两大类:编译相关(elf 加固),部分编译选项控制着生成更安全的代码(损失部分性能或者空间),还有就说运行时的安全(ASLR),都是为增加了漏洞利用的难度,不能从本质上去除软件的漏洞. |
| 32 | + |
| 33 | +### 第三章节: [堆的安全](./chapter3) |
| 34 | + |
| 35 | +主要关注在现代 linux 上 glibc 下堆的安全防护机制及其绕过的常规套路. |
| 36 | + |
| 37 | +### 第四章节: [内核的安全](./chapter4) |
| 38 | + |
| 39 | +这个阶段学习现代 linux (2.6.32)及其以后版本 kernel 安全相关的文档(安全保护,利用). |
| 40 | + |
| 41 | +在早期 kernel 可以随意访问用户态代码,ret2usr 技术可以让内核执行用户态的代码,不过随着 Linux 的发展 SMAP(禁止 kernel 随意访问用户态,RFLAGE.AC 标志位置位可以),SMEP 禁止 kernel 态直接执行用户态代码,kaslr 也提升了漏洞利用的难度。 |
| 42 | + |
| 43 | +### 第五章节: [漏洞发现](./chapter5) |
| 44 | + |
| 45 | +漏洞挖掘的重要性不言而喻,打个比喻上面写的如何吃肉,漏洞挖掘就是肉在哪里. |
34 | 46 |
|
35 |
| -this chapter is a new filed to me. |
| 47 | +这个章节对我来说目前也是一个新领域,在这个章节里面主要关注 fuzz 与 代码审计。 |
36 | 48 |
|
37 |
| -## How to modify and update ? |
| 49 | +## 如何修改和更新 ? |
38 | 50 |
|
39 | 51 | ```shell
|
40 |
| -sudo dnf install texlive-\* -y |
41 | 52 | git clone [email protected]:hardenedlinux/linux_exploit_development_tutorial.git
|
42 | 53 | cd linux_exploit_development_tutorial
|
43 | 54 | make # preview
|
44 | 55 | ```
|
45 | 56 |
|
46 |
| -## How to hand on ? |
| 57 | +## 如何实践文档代码 ? |
47 | 58 |
|
48 | 59 | (WIP)
|
49 | 60 |
|
50 |
| -some source code in `lab-code`. |
| 61 | +源代码会陆续放到`lab-code`目录中,其实更倾向于提供一个虚拟机镜像供下载. |
| 62 | +... |
51 | 63 |
|
52 |
| -## copyleft |
| 64 | +## 版权 |
53 | 65 |
|
54 |
| -This work is licensed under the <a href="http://creativecommons.org/licenses/by-sa/3.0/" target="_blank">Creative Commons Attribution-ShareAlike 3.0 Unported License</a> |
| 66 | +这个项目是以 <a href="http://creativecommons.org/licenses/by-sa/3.0/" target="_blank">知识共享署名-相同方式共享 3.0</a> 许可协议授权. |
0 commit comments