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
pupy — Pupy est un RAT (Outil d'Administration à Distance) open source, multi-plateforme (Windows, Linux, OSX, Android) et multifonction, principalement écrit en python. Il propose un principe d'exécution entièrement en mémoire et laisse une très faible empreinte. Pupy peut communiquer via différents transports, migrer dans des processus (injection réflective), charger du code python distant, des paquets python et des extensions C python depuis la mémoire. | Kitploit
Outils/GitHubGitHub/alessandroz/pupy
Cassage de Mots de PasseEscalade de PrivilègesGénération de PayloadsMécanismes de PersistanceMouvement LatéralExfiltration de DonnéesPost-ExploitationTests d'IntrusionCommandement et ContrôleOutil d'Accès à Distance
GitHubalessandroz/pupy
91342il y a 8 ansVé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 →

pupy

Voir le dépôt

À propos

Pupy est un RAT (Outil d'Administration à Distance) open source, multi-plateforme (Windows, Linux, OSX, Android) et multifonction, principalement écrit en python. Il propose un principe d'exécution entièrement en mémoire et laisse une très faible empreinte. Pupy peut communiquer via différents transports, migrer dans des processus (injection réflective), charger du code python distant, des paquets python et des extensions C python depuis la mémoire.

Partager

Build Status

Pupy

Pupy est un RAT (outil d'administration à distance) et un outil de post-exploitation opensource, multiplateforme (Windows, Linux, OSX, Android), principalement écrit en python. Il dispose d'un principe d'exécution entièrement en mémoire et laisse une très faible empreinte. Pupy peut communiquer via différents transports, migrer dans des processus (injection réflective), charger du code python distant, des paquets python et des extensions C python depuis la mémoire.
Les modules de Pupy peuvent accéder de manière transparente aux objets python distants en utilisant rpyc pour effectuer diverses tâches interactives.
Pupy peut générer des payloads dans de multiples formats comme des exécutables PE, des DLL réflectives, des fichiers python purs, powershell, apk, ... Lorsque vous empaquetez un payload, vous pouvez choisir un launcher (connect, bind, ...), un transport (ssl, http, rsa, obfs3, scramblesuit, ...) et un certain nombre de "scriptlets". Les scriptlets sont des scripts python destinés à être embarqués pour effectuer diverses tâches hors ligne (sans nécessiter de session), comme démarrer un script en arrière-plan, ajouter de la persistance, démarrer un keylogger, détecter un sandbox, ...

Installation

root@kitploit:~
git clone https://github.com/n1nj4sec/pupy.git pupy
cd pupy
git submodule init
git submodule update
pip install -r pupy/requirements.txt

ou Reportez-vous au wiki

Fonctionnalités

  • Multiplateforme (testé sur windows xp, 7, 8, 10, kali linux, ubuntu, osx, android)
  • Sur windows, le payload Pupy peut être compilé en DLL réflective et l'interpréteur python entier est chargé depuis la mémoire. Pupy ne touche pas au disque :)
  • pupy peut aussi être empaqueté dans un seul fichier .py et exécuté sans aucune dépendance autre que la bibliothèque standard python sur tous les OS
    • pycrypto est remplacé par des implémentations aes && rsa en python pur lorsqu'il n'est pas disponible
  • Pupy peut migrer de manière réflective dans d'autres processus
  • Pupy peut importer à distance, depuis la mémoire, des paquets python purs (.py, .pyc) et des extensions C python compilées (.pyd, .so). Les modules python importés ne touchent pas au disque.
  • Pupy est facilement extensible, les modules sont assez simples à écrire, triés par OS et par catégorie.
  • Beaucoup de modules géniaux sont déjà implémentés !
  • Pupy utilise rpyc et un module peut accéder directement aux objets python sur le client distant
    • Nous pouvons aussi accéder interactivement aux objets distants depuis le shell pupy et vous obtenez même l'auto-complétion des attributs distants !
  • Les transports de communication sont modulaires, empilables et géniaux. Vous pourriez exfiltrer des données en utilisant HTTP sur HTTP sur AES sur XOR. Ou n'importe quelle combinaison des transports disponibles !
  • Pupy peut communiquer en utilisant les transports enfichables d'obfsproxy
  • Tous les modules non interactifs peuvent être envoyés sur plusieurs hôtes en une seule commande
  • Les commandes et scripts exécutés sur les hôtes distants sont interruptibles
  • Auto-complétion pour les commandes et arguments
  • Une configuration personnalisée peut être définie : alias de commandes, modules exécutés automatiquement à la connexion, ...
  • Des shells python interactifs avec auto-complétion sur l'interpréteur python distant entièrement en mémoire peuvent être ouverts
  • Des shells interactifs (cmd.exe, /bin/bash, ...) peuvent être ouverts à distance. Les shells distants sur les clients Unix & windows ont un vrai tty avec tous les signaux clavier fonctionnant correctement, comme un shell ssh
  • Pupy peut exécuter un exe PE à distance et depuis la mémoire (cf. ex avec mimikatz)
  • Pupy peut générer des payloads dans divers formats : apk,lin_x86,lin_x64,so_x86,so_x64,exe_x86,exe_x64,dll_x86,dll_x64,py,pyinst,py_oneliner,ps1,ps1_oneliner,rubber_ducky
  • Pupy peut être déployé en mémoire, à partir d'une seule ligne de commande en utilisant les one-liners python ou powershell de pupygen.py.

Transports implémentés

Tous les transports de pupy sont empilables. Cela signifie qu'en créant une conf de transport personnalisée (pupy/network/transport/<transport_name>/conf.py), vous pouvez faire ressembler votre session pupy à n'importe quoi. Par exemple, vous pourriez empiler HTTP sur HTTP sur base64 sur HTTP sur AES sur obfs3 :o)

  • rsa
    • Une couche avec authentification et chiffrement utilisant RSA et AES256, souvent empilée avec d'autres couches
  • aes
    • couche utilisant une clé AES256 statique
  • ssl (le défaut)
    • transport TCP enveloppé avec SSL
  • ssl_rsa
    • identique à ssl mais empilé avec une couche rsa
  • http
    • couche faisant ressembler le trafic à du trafic HTTP. HTTP est empilé avec une couche rsa
  • obfs3
    • Un protocole pour empêcher un tiers de dire quel protocole est utilisé en se basant sur le contenu des messages
    • obfs3 est empilé avec une couche rsa pour une meilleure sécurité
  • scramblesuit
    • Un protocole réseau polymorphe pour contourner la censure
    • scramblesuit est empilé avec une couche rsa pour une meilleure sécurité
  • udp
    • couche rsa mais sur UDP (peut être bugué, elle ne gère pas encore la perte de paquets)
  • other
    • Les autres couches n'ont pas vraiment d'intérêt et sont fournies comme exemples de code : (dummy, base64, XOR, ...)

Launchers implémentés (pas à jour, cf. ./pupygen.py -h)

Les launchers permettent à pupy d'exécuter des actions personnalisées avant de démarrer la connexion inverse

  • connect
    • Se connecte simplement en retour
  • bind
    • Lie le payload au lieu d'une connexion inverse
  • auto_proxy
    • Récupère une liste de proxys SOCKS/HTTP possibles et essaie chacun d'eux. Les méthodes de récupération de proxys sont : registre, requêtes WPAD, paramètres gnome, variable d'environnement HTTP_PROXY

Modules implémentés (pas à jour)

Toutes les plateformes :

  • exécution de commandes
  • download
  • upload
  • shell python interactif avec auto-complétion
  • shell interactif (cmd.exe, powershell.exe, /bin/sh, /bin/bash, ...)
    • l'allocation de tty est bien prise en charge à la fois sur windows et *nix. Cela ressemble simplement à un shell ssh
  • exécution de shellcode
  • persistance
  • proxy socks5
  • redirection de ports locale et distante
  • capture d'écran
  • keylogger
  • exécution depuis la mémoire du génial outil de collecte d'identifiants LaZagne !
  • outils de sniff, netcreds
  • migration de processus (windows & linux, pas encore osx)
  • ...
  • beaucoup d'autres outils (client upnp, divers outils de recon/pivot utilisant impacket à distance, ...)

Spécifique à Windows :

  • migrate
    • l'injection entre architectures de processus fonctionne aussi (x86->x64 et x64->x86)
  • exécution en mémoire d'exe PE à la fois x86 et x64 !
    • fonctionne très bien avec mimitakz :-)
  • capture depuis la webcam
  • enregistreur de microphone
  • mouselogger :
    • prend de petites captures d'écran autour de la souris à chaque clic et les renvoie au serveur
  • manipulation de jetons
  • getsystem
  • creddump
  • des tonnes de scripts powershell utiles
  • ...

Spécifique à Android

  • Synthèse vocale pour Android pour dire des choses à voix haute
  • captures depuis la webcam (caméra avant & caméra arrière)
  • traceur GPS !

Documentation

Reportez-vous au wiki

Quelques captures d'écran (pas à jour)

Section captures d'écran sur le wiki

FAQ

Est-ce que le serveur fonctionne sur windows ?

Le serveur Pupy fonctionne mieux sur linux. Le serveur sur windows n'a pas vraiment été testé et il y a probablement beaucoup de bugs. J'essaie de coder de la manière la plus portable possible mais je ne trouve pas toujours le temps de tout corriger. Si vous trouvez le courage de patcher le code non portable, j'accepterai volontiers les pull requests ! :)

Je n'arrive pas à l'installer, comment ça marche ?

Jetez un œil à la section Installation dans le wiki

J'ai l'erreur suivante au lancement de pupy.sh : ImportError: No module named creddump.win32.domcachedump

Suivez les étapes d'installation dans le wiki, vous avez manqué l'initialisation/mise à jour des sous-modules git

J'ai l'erreur suivante lors de l'utilisation de pupygen : IOError: [Errno 2] No such file or directory: '/full-path/pupy-master/pupy/payload_templates/pupyx86.exe'

Suivez les étapes d'installation dans le wiki, vous avez manqué l'initialisation/mise à jour des sous-modules git

J'ai une autre erreur à l'installation

Suivez les étapes d'installation dans le wiki (oui je sais)

Hé, j'adore pupy et je me demandais si je pouvais vous offrir une bière !

Bien sûr ! merci !
Via pledgie :Cliquez ici pour apporter votre soutien à : projets de sécurité opensource https://github.com/n1nj4sec et faire un don sur pledgie.com !
Via BTC : 12BKKN81RodiG9vxJn34Me9ky19ArqNQxC

hey c4n y0u add a DDOS module plzz?

Non.

Contact

par e-mail : [email protected]
sur Twitter : Suivez-moi sur twitter

Si certains d'entre vous veulent participer au développement de pupy, n'hésitez pas ! Toute aide est grandement appréciée et j'examinerai chaque pull request.
Ce projet est un développement personnel, veuillez respecter sa philosophie et ne l'utilisez pas à des fins malveillantes !

Remerciements spéciaux

Remerciements spéciaux à tous les contributeurs qui m'aident à améliorer pupy et à en faire un outil encore meilleur ! :)

Télécharger l’outil
  • Des "scriptlets" peuvent être embarqués dans les payloads générés pour effectuer certaines tâches "hors ligne" sans nécessiter de connectivité réseau (ex : démarrer un keylogger, ajouter de la persistance, exécuter un script python personnalisé, check_vm ...)
  • des tonnes d'autres fonctionnalités, consultez les modules implémentés