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 对于 任意写入 2 执行技术 是 极大的帮助,并且可能 简化 ROP 链,因为您只需调用一个地址(并满足要求)。
github 仓库提到 ARM64 受该工具支持,但在 Kali 2023.3 的 libc 中运行时 找不到任何 gadget。
来自 github 仓库:受 OneGadget 启发,该工具用 python 编写,并使用 angr 测试执行 execve('/bin/sh', NULL, NULL)
的 gadget 的约束
如果您已经用完了 OneGadget 的 gadget,Angry Gadget 提供了更多复杂约束的选择!
学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)