
Pupy es un framework de C2 y post-explotación de código abierto, multiplataforma (Windows, Linux, OSX, Android), escrito en Python y C.
pip3 install pipx
pipx ensurepath
pipx install git+https://github.com/n1nj4sec/pupy@nextgen
pupysh
Si deseas información más detallada, consulta la wiki
git clone https://github.com/n1nj4sec/pupy
cd pupy
git checkout nextgen
git submodule init
git submodule update
pip install venv
python3 -m venv pupyvenv
source pupyvenv/bin/activate
pip install -r requirements.txt
ejecuta pupysh desde la instalación de desarrollo :
source pupyenv/bin/activate
python3 -m pupy.cli
Pupy es una herramienta C2 y de post-explotación multiplataforma y multifunción, principalmente escrita en Python. Cuenta con una guía de ejecución completamente en memoria y deja una huella muy baja. Pupy puede comunicarse utilizando múltiples transportes, migrar a procesos mediante inyección reflectiva y cargar código Python remoto, paquetes Python y extensiones C de Python desde la memoria.
La carga útil para Windows puede cargar todo el intérprete de Python desde la memoria usando una DLL reflectiva.
Se puede empaquetar en un solo archivo .py y ejecutarse sin dependencias distintas a la biblioteca estándar de Python en todos los sistemas operativos.
Migrar de forma reflectiva a otros procesos.
Importar remotamente paquetes Python puros (.py, .pyc) y extensiones C de Python compiladas (.pyd, .so) desde la memoria.
Fácilmente extensible, los módulos son simples de escribir y están organizados por sistema operativo y categoría.
Los módulos pueden acceder directamente a objetos Python en el cliente remoto usando rpyc.
Acceder a objetos remotos de forma interactiva desde el shell de Pupy y obtener autocompletado de atributos remotos.
Los transportes de comunicación son modulares y apilables. Exfiltrar datos usando HTTP sobre HTTP sobre AES sobre XOR, o cualquier combinación de los transportes disponibles.
Comunicarse usando transportes conectables de obfsproxy.
Ejecutar comandos no interactivos en varios hosts a la vez.
Los comandos y scripts que se ejecutan en hosts remotos son interrumpibles.
Autocompletado para comandos y argumentos.
Se puede definir configuración personalizada: alias de comandos, módulos que se ejecutan automáticamente al conectar, etc.
Abrir shells Python interactivas con autocompletado en el intérprete Python remoto completamente en memoria.
Se pueden abrir shells interactivas (cmd.exe, /bin/bash, etc.) de forma remota.
Ejecutar ejecutables PE de forma remota y desde la memoria.
Generar cargas útiles en varios formatos:
Desplegar en memoria desde una sola línea de comandos usando one-liners de Python o Powershell.
Incrustar «scriptlets» en las cargas útiles generadas para realizar algunas tareas «sin conexión» sin necesidad de conectividad de red (por ejemplo: iniciar keylogger, añadir persistencia, ejecutar script Python personalizado, check_vm, etc.)
Múltiples plataformas objetivo:
Toda la documentación se puede encontrar en la wiki.
¿Funciona el servidor en Windows?
Pupy no ha sido probado en Windows. Teóricamente, debería funcionar en cualquier plataforma que soporte Docker y Docker Compose. Sin embargo, necesitarás adaptar las instrucciones de instalación de Docker Compose para la plataforma Windows.
No puedo instalar Pupy. La instalación falla.
Si no sigues estos pasos, tu issue será cerrado.
Las cargas útiles y módulos de Android y/o Mac OSX no funcionan.
Pupy tiene soporte limitado para Android y OSX. Estas plataformas pueden no estar bien mantenidas y pueden fallar de forma intermitente. Algunos módulos (ej. keylogger) pueden faltar para estas plataformas.
Si alguno de ustedes quiere participar en el desarrollo de Pupy, ¡no duden! Toda ayuda es muy apreciada y todas las solicitudes de extracción serán revisadas.
También hay una pequeña nota sobre el desarrollo. Por favor, ejecute flake8 antes de hacer cualquier commit. El archivo con la configuración está aquí.
| Plataforma | Información de Contacto |
|---|---|
| [email protected] | |
| https://twitter.com/n1nj4sec |
Este proyecto es un desarrollo personal, por favor respeta su filosofía y no lo uses con fines maliciosos.
Un agradecimiento especial a todos los colaboradores y seguidores que ayudan a mejorar Pupy y lo convierten en una mejor herramienta! :)
| Formato | Arquitectura | Nombre Corto |
|---|
| ~~ Paquete Android ~~ | x86 & ARMv7 | apk |
| Binario Linux | x86 | lin_x86 |
| Binario Linux | x64 | lin_x64 |
| Objeto Compartido Linux | x86 | so_x86 |
| Objeto Compartido Linux | x64 | so_x64 |
| Ejecutable PE Windows | x86 | exe_x86 |
| Ejecutable PE Windows | x64 | exe_x64 |
| DLL Windows | x86 | dll_x86 |
| DLL Windows | x64 | dll_x64 |
| Script Python | x86 & x64 | py |
| Oneliner Python | x86 & x64 | py_oneliner |
| Powershell | x86 & x64 | ps1 |
| Oneliner Powershell | x86 & x64 | ps1_oneliner |
| Plataforma | Estado de Soporte |
|---|
| Windows XP | ~~ Compatible ~~ Python dejó de tener soporte |
| Windows 7 | ~~ Compatible ~~ Python dejó de tener soporte |
| Windows 8 | Compatible |
| Windows 10 | Compatible |
| Linux | Compatible |
| Mac OSX | Soporte Limitado |
| Android | Soporte Limitado |