One Gadget
Last updated
Last updated
学习并练习 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习并练习 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)
One Gadget 允许获取一个 shell,而不是使用 system 和 "/bin/sh"。One Gadget 将在 libc 库中找到一种方法来使用一个 地址 获取 shell (execve("/bin/sh")
)。
然而,通常会有一些限制条件,最常见且易于避免的是 [rsp+0x30] == NULL
。由于您控制 RSP 中的值,只需发送更多的 NULL 值即可避免这个限制条件。
要找到One Gadget指示的地址,您需要添加libc
加载的基地址。
One Gadget对于任意写入执行技术非常有帮助,可能会简化ROP链,因为您只需要调用一个地址(并满足要求)。
github存储库提到该工具支持ARM64,但在Kali 2023.3的libc中运行时找不到任何gadget。
来自github存储库:受OneGadget启发,这个工具是用Python编写的,并使用angr来测试执行execve('/bin/sh', NULL, NULL)
的gadget的约束条件。
如果您已经尝试过One Gadget中的所有gadget,Angry Gadget提供了更多带有复杂约束条件的gadget供尝试!
学习并练习AWS Hacking:HackTricks 培训 AWS 红队专家 (ARTE) 学习并练习GCP Hacking: HackTricks 培训 GCP 红队专家 (GRTE)