Linux保护技术绕过小结
发布日期:2021-05-14 08:36:39 浏览次数:23 分类:精选文章

本文共 1719 字,大约阅读时间需要 5 分钟。

Linux内存布局与保护技术解析

内存布局是现代操作系统的重要组成部分,它决定了程序内存的使用方式和保护机制。这一知识点对于逆向工程和漏洞挖掘具有重要意义。本文将从基础到高级技术,深入解析Linux内存布局和相关保护机制的绕过方法。

一、内存布局基础

Linux系统的内存布局主要由以下几个部分组成:

  • .text 汇编代码

    存储程序的汇编指令,主要用于文 Constant Memory.

  • .data 有初始化的数据

    存储全局变量和其他初始化的数据段.

  • .bss 无初始化的数据

    存储未初始化的全局变量和静态数据.

  • heap 堆

    在程序运行时动态分配的内存区域.

  • shared object 共享对象区域

    包括动态链接库文件(如libc.so等)和其他共享对象.

  • stack 栈

    用于存储程序运行时的局部变量和返回地址.

  • kernel-area 内核区域

    用于存储内核代码和内核数据.

  • 随着years's发展,内存布局中的细节不断丰富,但核心 remained是通过mmap()和sbrk()等接口管理内存段.


    二、绕过保护技术

    1. NX(DEP)保护

    NX(Non-Executable Memory Protection,内存不可执行保护)是一种通过内存保护单元(MMU)在页粒度上设置不可执行属性的技术。该保护 mechanism通过将数据页设置为不可执行,因此在频送攻击成功后转移至数据页面时,会导致访问不可执行段,从而触发异常。

    NX防护:

    • 默认开启:默认情况下,Linux内核会启用NX保护.
    • 关闭方式:可通过executive stack protection选项关闭部分段.

    NX攻击:

  • RET2Text:通过ret2text漏洞控制程序执行已有的文本段。
  • RET2Syscall:利用syscall指令进行系统调用操作。
  • 2. ASLR(Address Space Layout Randomization)

    ASLR通过随机化地址段,使得程序各加载地址不固定。这样的保护机制可以有效防止已知地址 SPACE R randomized.

    ASLR绕过:

  • GOT Leak

    通过泄露Global Offset Table(GOT)中的地址,计算libc加载地址。

  • RET2PLT

    利用程序看起来的函数栈上的GOT段中的函数地址.

  • GOT Overwrite

    在运行中重写GOT表中的某些地址,最终实现对系统程序的控制.

  • ASLR实战示例:

    通过获取__libc_start_main地址,计算libc的基地址,再确定system()->的地址.

    3. PIE(Position Independent Everywhere)

    PIE是通过在编译阶段随机化代码段,data段和bss段的地址space的技术。这样每次加载都有不同的地址空间布局.

    PIE绕过:

  • Partial Write技术
    开启PIE保护后,由于内存按页加载,只能修改某些低位地址,进而完成控制流绕过.
  • RET2VDSO/RET2SYSwsCall
    利用vsyscall的固定的地址进行攻击或控制流.
  • 4. Stack Canary

    Stack canary(栈守护者)是一种保护技术,通过在栈中存储一个随机值并验证其完整性,防止栈溢出攻击.

    Stack Canary绕过:

  • Brute Force爆破
    逐步尝试修改栈顶部值,使其绕过验证.
  • Master Canary Forge
    修改栈中的TLS(线程本地存储)值,从而显著提高漏洞利用率.
  • 5. RELRO(Relocation Read Only)

    RELRO通过设置重定位表段为只读,阻止GOT中的地址被恶意修改.

    RELRO绕过:

  • RET2DLResolve
    利用动态链接器的重定位函数,伪造目标函数地址信息,成功绕过RELRO.
  • Function Table Overflow
    通过覆盖函数表中的某些函数地址,绕过防护机制.

  • 三、总结

    通过以上技术的深入理解与应用,可以有效地绕过Linux系统的内存保护机制。从基础的内存布局到高级的绕过技术,每一步都要求攻防队员对系统运行机制有深刻的掌握。

    上一篇:ANGR简介
    下一篇:龙芯云初体验指南

    发表评论

    最新留言

    能坚持,总会有不一样的收获!
    [***.219.124.196]2025年04月05日 14时53分33秒