繁体   English   中英

执行不在栈上的shellcode(缓冲区溢出)

[英]execute shellcode not on the stack (buffer overflow)

是否可以执行不在堆栈中的 shellcode? 有没有另一种方式来执行shellcode? 提前致谢

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

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

但更一般地说,如果您设法获得所需的权限,则可以使内存的任何部分都可以执行。 这可以是堆、RAM、驱动器的任何区域。 这并不重要。

堆栈只是最常见的默认攻击,但例如,shellcode 也可以利用堆溢出(请参阅此答案以获取解释)。

一种常见的攻击结构是:

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

希望这能回答问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM