执行不在堆栈上的 shellcode(缓冲区溢出)
execute shellcode not on the stack (buffer overflow)
是否可以不在堆栈上执行您的shellcode?还有另一种执行shellcode的方法吗?提前致谢
是的,这是可能的,但这里有很多话要说。
首先,堆栈上的代码通常无法在许多使用 NX-bit.
的现代设备上执行。
但更一般地说,如果您设法获得所需的权限,则内存的任何部分都可以执行。这可以是堆、RAM、驱动器的任何区域。没关系。
堆栈只是最常见的默认攻击,但 shellcode 也可以利用堆溢出(例如,请参阅 this answer 了解解释)。
一种常见的攻击结构是:
- 利用一些漏洞进入栈、堆、其他一些内存
- 使用 ROP 使那部分内存可执行
- 有一个 shellcode,如果有内存限制,可能是 egg-hunter,它会找到主要的 payload,或者下载一些东西
- 执行主要负载
希望这能回答问题
是否可以不在堆栈上执行您的shellcode?还有另一种执行shellcode的方法吗?提前致谢
是的,这是可能的,但这里有很多话要说。
首先,堆栈上的代码通常无法在许多使用 NX-bit.
的现代设备上执行。但更一般地说,如果您设法获得所需的权限,则内存的任何部分都可以执行。这可以是堆、RAM、驱动器的任何区域。没关系。
堆栈只是最常见的默认攻击,但 shellcode 也可以利用堆溢出(例如,请参阅 this answer 了解解释)。
一种常见的攻击结构是:
- 利用一些漏洞进入栈、堆、其他一些内存
- 使用 ROP 使那部分内存可执行
- 有一个 shellcode,如果有内存限制,可能是 egg-hunter,它会找到主要的 payload,或者下载一些东西
- 执行主要负载
希望这能回答问题