All Projects → io12 → Pwninit

io12 / Pwninit

Licence: mit
pwninit - automate starting binary exploit challenges

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Pwninit

Pwn2exploit
all mine papers, pwn & exploit
Stars: ✭ 289 (+127.56%)
Mutual labels:  binary, exploit, pwn
HatVenom
HatVenom is a HatSploit native powerful payload generation tool that provides support for all common platforms and architectures.
Stars: ✭ 84 (-33.86%)
Mutual labels:  exploit, binary, elf
pwnscripts
Very simple script(s) to hasten binary exploit creation
Stars: ✭ 66 (-48.03%)
Mutual labels:  exploit, pwn
how-to-exploit-a-double-free
How to exploit a double free vulnerability in 2021. Use After Free for Dummies
Stars: ✭ 1,165 (+817.32%)
Mutual labels:  binary, pwn
E9patch
A powerful static binary rewriting tool
Stars: ✭ 317 (+149.61%)
Mutual labels:  binary, elf
goelftools
Library for parsing ELF files written in pure Go.
Stars: ✭ 26 (-79.53%)
Mutual labels:  pwn, elf
C-Experiments
Experiments on C/C++ Exploits
Stars: ✭ 19 (-85.04%)
Mutual labels:  exploit, elf
Exploits
Real world and CTFs exploiting web/binary POCs.
Stars: ✭ 69 (-45.67%)
Mutual labels:  exploit, pwn
exploiting
Exploiting challenges in Linux and Windows
Stars: ✭ 122 (-3.94%)
Mutual labels:  exploit, pwn
Rop Tool
A tool to help you write binary exploits
Stars: ✭ 590 (+364.57%)
Mutual labels:  elf, exploit
Hyperpwn
A hyper plugin to provide a flexible GDB GUI with the help of GEF, pwndbg or peda
Stars: ✭ 387 (+204.72%)
Mutual labels:  exploit, pwn
Shellen
🌸 Interactive shellcoding environment to easily craft shellcodes
Stars: ✭ 799 (+529.13%)
Mutual labels:  exploit, pwn
ELFDump
ELFDump is a C parser for ELF64 object files.
Stars: ✭ 15 (-88.19%)
Mutual labels:  binary, elf
FastPwn
CTF中Pwn的快速利用模板(包含awd pwn)
Stars: ✭ 18 (-85.83%)
Mutual labels:  exploit, pwn
CTF
CTF binary exploit code
Stars: ✭ 37 (-70.87%)
Mutual labels:  exploit, pwn
One gadget
The best tool for finding one gadget RCE in libc.so.6
Stars: ✭ 1,306 (+928.35%)
Mutual labels:  exploit, pwn
extrude
🕵️ Analyse binaries for missing security features, information disclosure and more...
Stars: ✭ 51 (-59.84%)
Mutual labels:  binary, elf
ghidra2dwarf
🐉 Export ghidra decompiled code to dwarf sections inside ELF binary
Stars: ✭ 135 (+6.3%)
Mutual labels:  pwn, elf
Gef
GEF (GDB Enhanced Features) - a modern experience for GDB with advanced debugging features for exploit developers & reverse engineers ☢
Stars: ✭ 4,197 (+3204.72%)
Mutual labels:  exploit, pwn
Write Ups
📚 VoidHack CTF write-ups
Stars: ✭ 45 (-64.57%)
Mutual labels:  exploit, pwn

Deploy Status

pwninit

A tool for automating starting binary exploit challenges

Features

  • Set challenge binary to be executable
  • Download a linker (ld-linux.so.*) that can segfaultlessly LD_PRELOAD the provided libc
  • Download debug symbols and unstrip the libc
  • Fill in a template pwntools solve script

Usage

Short version

Run pwninit

Long version

Run pwninit in a directory with the relevant files and it will detect which ones are the binary, libc, and linker. If the detection is wrong, you can specify the locations with --bin, --libc, and --ld.

Custom solve.py template

If you don't like the default template, you can use your own. Just specify --template-path <path>. Check template.py for the template format. The names of the exe, libc, and ld bindings can be customized with --template-bin-name, --template-libc-name, and --template-ld-name.

Persisting custom solve.py

You can make pwninit load your custom template automatically by adding an alias to your ~/.bashrc.

Example
alias pwninit='pwninit --template-path ~/.config/pwninit-template.py --template-bin-name e'

Install

Arch Linux

Install pwninit or pwninit-bin from the AUR.

Download

You can download non-GMO statically-linked musl binaries from the releases page.

Using cargo

cargo install pwninit

The binary will be placed in ~/.cargo/bin.

Note that openssl, liblzma, and pkg-config are required for the build.

Example

$ ls
hunter  libc.so.6  readme

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

fetching linker
unstripping libc
setting ./ld-2.23.so executable
writing solve.py stub

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

solve.py:

#!/usr/bin/env python3

from pwn import *

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

context.binary = exe


def conn():
    if args.LOCAL:
        return process([ld.path, exe.path], env={"LD_PRELOAD": libc.path})
    else:
        return remote("addr", 1337)


def main():
    r = conn()

    # good luck pwning :)

    r.interactive()


if __name__ == "__main__":
    main()
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].