Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
pwninit — Automatise la configuration de challenges d'exploitation binaire en patchant les binaires ELF, en récupérant les linkers correspondants, en restaurant les symboles de la libc et en générant des scripts de résolution pwntools. | Kitploit
Outils/GitHubGitHub/io12/pwninit
ExploitationRétro-ingénierieScripting et AutomatisationCTFExploitation de Binaires
GitHubio12/pwninit

pwninit

Automatise la configuration de challenges d'exploitation binaire en patchant les binaires ELF, en récupérant les linkers correspondants, en restaurant les symboles de la libc et en générant des scripts de résolution pwntools.

Voir le dépôt
1.1k79il y a 27 joursVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Checks Status Deploy Status

pwninit

Un outil pour automatiser le démarrage de défis d'exploitation binaire

Fonctionnalités

  • Rendre le binaire du défi exécutable
  • Télécharger un linker (ld-linux.so.*) capable de charger la libc fournie sans segfault
  • Télécharger les symboles de débogage et dé-stripper la libc
  • Patcher le binaire avec patchelf pour utiliser le RPATH et l'interpréteur corrects pour la libc fournie
  • Remplir un script de résolution modèle pwntools

Utilisation

Version courte

Exécutez pwninit

Version détaillée

Exécutez pwninit dans un répertoire contenant les fichiers concernés et il détectera lesquels sont le binaire, la libc et le linker. Si la détection est incorrecte, vous pouvez spécifier les emplacements avec --bin, --libc et --ld.

Modèle solve.py personnalisé

Si vous n'aimez pas le modèle par défaut, vous pouvez utiliser le vôtre. Spécifiez simplement --template-path <path>. Consultez template.py pour le format du modèle. Les noms des liaisons exe, libc et ld peuvent être personnalisés avec --template-bin-name, --template-libc-name et --template-ld-name.

Persistance du solve.py personnalisé

Vous pouvez faire en sorte que pwninit charge automatiquement votre modèle personnalisé en ajoutant un alias à votre ~/.bashrc.

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

Installation

Arch Linux

Installez pwninit ou pwninit-bin depuis l'AUR.

Téléchargement

Vous pouvez télécharger les binaires musl liés statiquement depuis la page des versions.

Avec cargo

Exécutez

root@kitploit:~
cargo install pwninit

Ceci place le binaire dans ~/.cargo/bin.

Notez que openssl, liblzma et pkg-config sont requis pour la compilation.

Exemple

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()
Télécharger l’outil