在 libc.so.6 中查找一个 gadget RCE 的最佳工具
在解决 CTF pwn 任务时,我们通常希望获得一个 gadget RCE: 一个单一地址
然后,它跳转到调用 execve("/bin/sh", NULL, NULL)。
这个插件会为您找到这些信息,这样您就不必每次都通过 objdump 或 IDA Pro 进行搜索。
时间:微笑:
将其指向一个 libc -- one_gadget /path/to/libc -- 然后享受魔力 :laughing:
在 RubyGems.org 上可用!
$ gem install one_gadgetOneGadget 以象征性的方式执行每个候选地址周围的代码,以确定 gadget 如何工作。 gadget 通过从每个 exec/posix_spawn 调用开始,沿着条件分支的双向路径进行遍历,来进行搜索。当 gadget 只能通过某个分支被访问时,该决策会显示为额外的约束,例如 x2 == 0x1。 关于我如何开发此工具的文章可以在 我的博客 中找到。
约束条件只有在完整的情况下才有价值,因此此仓库中提供的工具通过运行来进行验证。Aletheia在活动进程中加载 libc,精确执行工具的约束条件要求,对它们未提及的每个寄存器和页进行毒化,跳转到偏移量,并要求真实的 /bin/sh 返回并列出根目录。如果工具的约束条件列表缺少某些内容,则会在该处失败,而不是通过运气通过,这就是如何发现多个缺失的约束条件的原因。
………这颗宝石包含了最有可能被要求的库函数 - gli
暂无开放 Issues,或尚未同步最近议题。