Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
pwninit — 通过修补 ELF 二进制文件、获取匹配的链接器、还原已剥离的 libc 以及生成 pwntools 解题脚本,自动化搭建二进制利用挑战。 | Kitploit
工具/GitHubGitHub/io12/pwninit
漏洞利用逆向工程脚本与自动化CTF二进制利用
GitHubio12/pwninit

pwninit

通过修补 ELF 二进制文件、获取匹配的链接器、还原已剥离的 libc 以及生成 pwntools 解题脚本,自动化搭建二进制利用挑战。

查看仓库
1.1k7927天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Checks Status Deploy Status

pwninit

用于自动化启动二进制利用挑战的工具

功能

  • 将挑战二进制文件设置为可执行
  • 下载一个能够无段错误地加载所提供的 libc 的链接器(ld-linux.so.*)
  • 下载调试符号并还原 libc
  • 使用 patchelf 修补二进制文件,以使用所提供的 libc 对应的正确 RPATH 和解释器
  • 填充一个模板化的 pwntools 解题脚本

用法

简短版

运行 pwninit

详细版

在包含相关文件的目录中运行 pwninit,它会自动检测哪些文件是二进制文件、libc 和链接器。如果检测有误,你可以使用 --bin、--libc 和 --ld 来指定位置。

自定义 solve.py 模板

如果你不喜欢默认模板,可以使用自己的模板。只需指定 --template-path <path>。查看 template.py 以了解模板格式。exe、libc 和 ld 绑定的名称可以通过 --template-bin-name、--template-libc-name 和 --template-ld-name 自定义。

持久化自定义 solve.py

你可以通过在 ~/.bashrc 中添加别名,让 pwninit 自动加载你的自定义模板。

示例
root@kitploit:~
alias pwninit='pwninit --template-path ~/.config/pwninit-template.py --template-bin-name e'

安装

Arch Linux

从 AUR 安装 pwninit 或 pwninit-bin。

下载

你可以从 releases 页面 下载静态链接的 musl 二进制文件。

使用 cargo

运行

root@kitploit:~
cargo install pwninit

这会将二进制文件安装到 ~/.cargo/bin。

请注意,构建需要 openssl、liblzma 和 pkg-config。

示例

root@kitploit:~
$ ls
hunter  libc.so.6  readme

$ pwninit
bin: ./hunter
libc: ./libc.so.6

setting ./hunter executable
fetching linker
https://launchpad.net/ubuntu/+archive/primary/+files//libc6_2.23-0ubuntu10_i386.deb
unstripping libc
https://launchpad.net/ubuntu/+archive/primary/+files//libc6-dbg_2.23-0ubuntu10_i386.deb
setting ./ld-2.23.so executable
copying ./hunter to ./hunter_patched
running patchelf on ./hunter_patched
writing solve.py stub

$ ls
hunter	hunter_patched	ld-2.23.so  libc.so.6  readme  solve.py

solve.py:

root@kitploit:~
#!/usr/bin/env python3

from pwn import *

exe = ELF("./hunter_patched")
libc = ELF("./libc.so.6")
ld = ELF("./ld-2.23.so")

context.binary = exe


def conn():
    if args.LOCAL:
        r = process([exe.path])
        if args.GDB:
            gdb.attach(r)
    else:
        r = remote("addr", 1337)

    return r


def main():
    r = conn()

    # good luck pwning :)

    r.interactive()


if __name__ == "__main__":
    main()
下载工具