All Projects → hardenedlinux → Linux Exploit Development Tutorial

hardenedlinux / Linux Exploit Development Tutorial

a series tutorial for linux exploit development to newbie.

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Linux Exploit Development Tutorial

Processing Docs
Processing reference, examples, tutorials, and website
Stars: ✭ 346 (-25.59%)
Mutual labels:  tutorials
Supervisely Tutorials
🌈 Tutorials for Supervise.ly
Stars: ✭ 385 (-17.2%)
Mutual labels:  tutorials
Hands On Nltk Tutorial
The hands-on NLTK tutorial for NLP in Python
Stars: ✭ 419 (-9.89%)
Mutual labels:  tutorials
Romaniancoderexamples
Java / SpringBoot / Angular examples for the Romanian Coder YouTube channel
Stars: ✭ 353 (-24.09%)
Mutual labels:  tutorials
Start Machine Learning In 2020
A complete guide to start and improve in machine learning (ML), artificial intelligence (AI) in 2021 without ANY background in the field and stay up-to-date with the latest news and state-of-the-art techniques!
Stars: ✭ 357 (-23.23%)
Mutual labels:  tutorials
Jetpack Compose Whatsapp Clone
An example project to demonstrate how to build WhatsApp using Jetpack Compose.
Stars: ✭ 386 (-16.99%)
Mutual labels:  tutorials
First Contributions
🚀✨ Help beginners to contribute to open source projects
Stars: ✭ 21,839 (+4596.56%)
Mutual labels:  tutorials
Unity Robotics Hub
Central repository for tools, tutorials, resources, and documentation for robotics simulation in Unity.
Stars: ✭ 439 (-5.59%)
Mutual labels:  tutorials
Rustrogueliketutorial
Roguelike Tutorial in Rust - using RLTK
Stars: ✭ 377 (-18.92%)
Mutual labels:  tutorials
Vulkandemos
Some simple vulkan examples.
Stars: ✭ 413 (-11.18%)
Mutual labels:  tutorials
Flutter Tutorials
The repo contains the source code for all the tutorials on the FilledStacks Youtube channel.
Stars: ✭ 4,115 (+784.95%)
Mutual labels:  tutorials
Learn Rails
An example Rails 5.1 app to accompany the "Learn Ruby on Rails" book.
Stars: ✭ 375 (-19.35%)
Mutual labels:  tutorials
The Elements Of Statistical Learning Python Notebooks
A series of Python Jupyter notebooks that help you better understand "The Elements of Statistical Learning" book
Stars: ✭ 405 (-12.9%)
Mutual labels:  tutorials
Awesome Hyperledger Fabric
A curated list of resources for creating applications with hyperledger fabric
Stars: ✭ 349 (-24.95%)
Mutual labels:  tutorials
Docker Curriculum
🐬 A comprehensive tutorial on getting started with Docker!
Stars: ✭ 4,523 (+872.69%)
Mutual labels:  tutorials
Exercises answers
计算机网络:自顶向下方法 (原书第七版)陈鸣译 课后习题参考答案(中文版+英文版);计算机系统基础(第2版)袁春风 课后习题参考答案;操作系统教程(第5版)费翔林 课后习题参考答案;数据结构(用C++描述)殷人昆)课后习题参考答案;算法设计与分析 黄宇 课后习题参考答案;
Stars: ✭ 332 (-28.6%)
Mutual labels:  tutorials
Please Contain Yourself
A Docker tutorial written for people who don't actually know Docker already.
Stars: ✭ 385 (-17.2%)
Mutual labels:  tutorials
Awesome Express
A curated list of awesome express.js resources
Stars: ✭ 456 (-1.94%)
Mutual labels:  tutorials
Reverse Engineering Tutorials
Reverse Engineering Tutorials
Stars: ✭ 438 (-5.81%)
Mutual labels:  tutorials
Entitycomponentsystemsamples
No description or website provided.
Stars: ✭ 4,218 (+807.1%)
Mutual labels:  tutorials

Linux exploit 开发入门

这是什么?

这是面向新手的 Linux exploit 开发指南。

发现 Linux 下二进制学习曲线陡峭,而套路零散,于是整理编著这篇文章,来帮助感兴趣的人学习,还想结识更多对 Linux 二进制感兴趣的人。

万事开头难,首先要感谢本文原来的的作者 sploitfun,他开始做了这件事并写出了思路,我在他的基础上进行了补充和翻译。

还要要感谢 phrack,乌云知识库,各种 wiki 上面文章的作者,这些作者和安全研究人员讲解了很多关于 exploit 相关技术,是大家的无私分享使很多东西变的可能,我也想学习这样的分享精神。

为了防止文档过于臃肿,我们讲分享讨论的话题尽量限制在 Linux, x86, ipv4 范围内,我们假设读者能正常使用 Linux,熟悉 C 语言,了解汇编语言,认识计算机专业词汇,基本体系结构知识(栈,堆,内存之类的)。如果不能因为知识储备不够,推荐 0day 安全以补充背景知识。

测试机器是 Ubuntu 14.04 的默认安装。

目录

第一章节: 基础知识

基础部分知识比如: 栈与堆分别是什么? C 语言如何转换成汇编? 内存布局是什么样的? ...

基础的安全知识如: 什么是堆栈溢出? 堆分配器是如何工作的? ...

这个阶段还要介绍基本的漏洞类型和安全机制,然后关闭全部的安全保护机制,学习如何在 Linux 下面编写最基本的 exploit。

第二章节: 栈的安全

主要关注在现代 Linux 上栈的安全防护机制及其绕过的常规套路.

分为两大类:编译相关(ELF 加固),部分编译选项控制着生成更安全的代码(损失部分性能或者空间),还有就说运行时的安全(ASLR),都是为增加了漏洞利用的难度,不能从本质上去除软件的漏洞。

第三章节: 堆的安全

主要关注在现代 Linux 上 glibc 下堆的安全防护机制及其绕过的常规套路。

第四章节: 内核的安全

这个阶段学习现代 Linux (2.6.32)及其以后版本 Kernel 安全相关的文档(安全保护,利用)。

在早期 Kernel 可以随意访问用户态代码, ret2usr 技术可以让内核执行用户态的代码,不过随着 Linux 的发展 SMAP(禁止 Kernel 随意访问用户态,RFLAGE.AC 标志位置位可以),SMEP 禁止 Kernel 态直接执行用户态代码,KASLR 也提升了漏洞利用的难度。

第五章节: 漏洞发现

漏洞挖掘的重要性不言而喻,打个比喻上面写的如何吃肉,漏洞挖掘就是肉在哪里。

这个章节对我来说目前也是一个新领域,在这个章节里面主要关注 fuzz 与代码审计。

如何修改和更新?

git clone [email protected]:hardenedlinux/linux_exploit_development_tutorial.git
cd linux_exploit_development_tutorial
make # preview

如何实践文档代码?

(WIP)

源代码会陆续放到lab-code目录中,其实更倾向于提供一个虚拟机镜像供下载。 ...

版权

这个项目是以 知识共享署名-相同方式共享 3.0 许可协议授权。

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].