Pupy è uno script opensource, multipiattaforma (Windows, Linux, OSX, Android). Un tool di amministrazione remota multi funzione RAT (Remote Administration Tool) e strumento di post-sfruttamento scritto principalmente in Python. È dotato di una linea di esecuzione all-in-memory e lascia una traccia praticamente nulla. Pupy può comunicare utilizzando vari mezzi di trasporto, la migrazione nei processi (reflective injection), puó caricare a distanza il codice Python, pacchetti python e estensioni C dalla memoria python.
I moduli Pupy possono accedere agli oggetti Python remoti utilizzando rpyc per diverse attività interattive.
Pupy può caricare sorgenti in diversi formati come eseguibili PE, DLL riflettenti, file Python puri, PowerShell, APK, ... Quando si imacchetta un Payload, è possibile scegliere un launcher (connect, bind, ...), un tipo di trasporto (SSL , http, rsa, obfs3, scramblesuit, ...) e di un numero di "scriptlet". Le Scriptlets sono script python destinati ad essere incorporati per eseguire diverse operazioni in linea (senza la necessità di una sessione), come l'avvio di uno script in vabckground, aggiungendo la persistenza, a partire da un keylogger e rilevando una sandbox.
Pupy funziona in linea di comando ed é necessario installare la macchina python nel vostro sistema operativo.
Link a Pupy in GitHub