One Gadget

从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)

支持HackTricks的其他方式:

基本信息

One Gadget 允许在不使用system和**"/bin/sh"的情况下获得一个shell。One Gadget将在libc库中找到一种方法来使用只需一个地址就能获得shell (execve("/bin/sh"))。 然而,通常会有一些限制条件,最常见且易于避免的是像 [rsp+0x30] == NULL 这样的情况。由于您可以控制RSP**中的值,因此您只需发送更多的NULL值即可避免这种限制。

ONE_GADGET = libc.address + 0x4526a
rop2 = base + p64(ONE_GADGET) + "\x00"*100

要找到One Gadget指示的地址,您需要添加libc加载的基地址

One Gadget对于任意写入执行技术非常有帮助,可能会简化ROP链,因为您只需要调用一个地址(并满足要求)。

ARM64

github仓库提到该工具支持ARM64,但在Kali 2023.3的libc中运行时找不到任何gadget

Angry Gadget

来自github仓库:受OneGadget启发,这个工具用Python编写,并使用angr来测试执行execve('/bin/sh', NULL, NULL)的gadget的约束条件。如果您已经尝试过One Gadget中的所有gadget,Angry Gadget提供了更多带有复杂约束条件的gadget供尝试!

pip install angry_gadget

angry_gadget.py examples/libc6_2.23-0ubuntu10_amd64.so
从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)

其他支持HackTricks的方式:

最后更新于