linux下的文件保护机制
linux下的文件保护机制
ASLR
- 地址空间布局随机
- 这玩意是操作系统负责的主要包括
- 栈地址随机化
- LIBS/MMAP随机化(程序每次执行动态库都被加载到不同的内存位置,也就是libc和mmap区域的地址)
- EXEC(PIE)随机化(程序每次执行都将加载到不同的内存位置,我们通过ida查看到的.text。ASLR不开启pie是无效的)
- BRK随机化(linux系统中brk和mmap这两个系统调用用来分配内存。当brk ASLR关闭的时候,start_brk和brk都是指向bss段的尾部的;当brk ASLR开启的时候,start_brk和brk初始位置是bss段的尾部加一个随机的偏移.)
- VDSO随机化--虚拟动态共享库
- linux 随机化的三个等级
- 没有随机化。即关闭ASLR。
- 保留的随机化。共享库、栈、mmap()分配的内存空间以及VDSO将被随机化。
- 完全的随机化。在1的基础上,通过 brk()分配的内存空间也将被随机化。
- ret2libc 就是指,在没有ASLR的情况下让程序跳转到一个已经存在的系统函数的漏洞利用方式
RELRO
- 让加载器将重定位表中加载时解析的符号标记为只读,这减少了GOT覆写攻击的面积。
- RELRO有三种方式
- 彻底关闭 got表可从写
- Partial RELRO(部分RELRO)GOT表是可写的
- FULL RELRO 的话GOT表是只读的。
Stack
- 栈保护,主要是在esp前面有8位或者16位的随机数,在函数调用结束时会提前检测是否被破环
NX--数据执行保护
- 其实就是堆栈不可执行。我们不能在堆栈里写入shellcode
PIE--.text段随机化
- 从Ubuntu 17.10和Fedora 23开始为所有的架构都启用了PIE。
附件列表
白茶清欢无别事,我在等风也等你。

浙公网安备 33010602011771号