【问题标题】:execute shellcode not on the stack (buffer overflow)执行不在堆栈上的 shellcode(缓冲区溢出)
【发布时间】:2020-03-04 21:04:41
【问题描述】:

是否可以不在堆栈上执行您的 shellcode?有没有另一种方式来执行shellcode?在此先感谢

【问题讨论】:

    标签: c gcc buffer-overflow shellcode


    【解决方案1】:

    是的,有可能,但这里有很多话要说。

    首先,堆栈上的代码通常无法在许多使用NX-bit 的现代设备上执行。

    但更一般地说,如果您设法获得所需的权限,则可以使内存的任何部分成为可执行文件。这可以是堆、RAM、驱动器的任何区域。没关系。

    堆栈只是最常见的默认攻击,但例如,shellcode 也可以利用堆溢出(有关说明,请参阅this answer)。

    一种常见的攻击结构是:

    1. 利用一些漏洞进入堆栈、堆和其他一些内存
    2. 使用 ROP 使该部分内存可执行
    3. 有一个shellcode,如果有内存限制,可能是egg-hunter,它会找到主要的payload,或者下载一些东西
    4. 执行主要负载

    希望这能回答问题

    【讨论】:

      猜你喜欢
      • 2021-12-03
      • 1970-01-01
      • 1970-01-01
      • 2017-02-23
      • 1970-01-01
      • 1970-01-01
      • 2018-04-19
      • 2010-11-11
      • 1970-01-01
      相关资源
      最近更新 更多