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 随机化的三个等级
    1. 没有随机化。即关闭ASLR。
    2. 保留的随机化。共享库、栈、mmap()分配的内存空间以及VDSO将被随机化。
    3. 完全的随机化。在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。




附件列表

     

    posted @ 2020-05-17 11:23  zlisang  阅读(538)  评论(0)    收藏  举报