
Pupy é um framework de C2 e pós-exploração de código aberto, multiplataforma (Windows, Linux, OSX, Android), escrito em Python e C.
pip3 install pipx
pipx ensurepath
pipx install git+https://github.com/n1nj4sec/pupy@nextgen
pupysh
Se quiser informações mais detalhadas Consulte a 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
execute pupysh a partir da instalação de desenvolvimento:
source pupyenv/bin/activate
python3 -m pupy.cli
Pupy é uma ferramenta C2 (Comando e Controle) e pós-exploração multiplataforma e multifuncional, escrita principalmente em Python. Ela possui uma diretriz de execução totalmente em memória e deixa uma pegada muito baixa. Pupy pode se comunicar usando múltiplos transportes, migrar para processos usando injeção reflexiva e carregar código Python remoto, pacotes Python e extensões C Python a partir da memória.
O payload do Windows pode carregar todo o interpretador Python da memória usando uma DLL reflexiva.
Pode ser empacotado em um único arquivo .py e executado sem quaisquer dependências além da biblioteca padrão do Python em todos os SOs.
Migrar reflexivamente para outros processos.
Importar remotamente pacotes Python puros (.py, .pyc) e extensões C Python compiladas (.pyd, .so) da memória.
Facilmente extensível, os módulos são simples de escrever e são organizados por SO e categoria.
Os módulos podem acessar diretamente objetos Python no cliente remoto usando rpyc.
Acessar objetos remotos interativamente pelo shell do pupy e obter autocompletar de atributos remotos.
Os transportes de comunicação são modulares e empilháveis. Exfiltrar dados usando HTTP sobre HTTP sobre AES sobre XOR, ou qualquer combinação dos transportes disponíveis.
Comunicar usando obfsproxy transportes plugáveis.
Executar comandos não interativos em vários hosts ao mesmo tempo.
Comandos e scripts em execução em hosts remotos são interrompíveis.
Autocompletar para comandos e argumentos.
Configuração personalizada pode ser definida: aliases de comandos, módulos executados automaticamente na conexão, etc.
Abrir shells Python interativos com autocompletar no interpretador Python remoto totalmente em memória.
Shells interativos (cmd.exe, /bin/bash, etc.) podem ser abertos remotamente.
Executar executável PE remotamente e a partir da memória.
Gerar payloads em vários formatos:
Implantar na memória a partir de uma única linha de comando usando oneliners Python ou Powershell.
Incorporar "scriptlets" nos payloads gerados para realizar algumas tarefas "offline" sem necessidade de conectividade de rede (ex.: iniciar keylogger, adicionar persistência, executar script Python customizado, check_vm, etc.)
Múltiplas Plataformas Alvo:
Toda a documentação pode ser encontrada na wiki.
O servidor funciona no Windows?
Pupy não foi testado no Windows. Teoricamente, deve funcionar em qualquer plataforma que suporte Docker e Docker Compose. No entanto, será necessário adaptar as instruções de instalação do Docker Compose para a plataforma Windows.
Não consigo instalar o Pupy. A instalação falha.
Se você não seguir esses passos, sua issue será fechada.
Os payloads e módulos do Android e/ou Mac OSX não funcionam.
Pupy tem suporte limitado para Android e OSX. Estas plataformas podem não ser bem mantidas e podem quebrar intermitentemente. Alguns módulos (ex.: keylogger) podem estar ausentes para estas plataformas.
Se alguns de vocês quiserem participar do desenvolvimento do pupy, não hesitem! Toda ajuda é muito apreciada e todos os pull requests serão revisados.
Há também uma pequena nota sobre desenvolvimento. Por favor, execute flake8 antes de fazer qualquer commit. O arquivo com a configuração está aqui.
| Plataforma | Informação de Contato |
|---|---|
| [email protected] | |
| https://twitter.com/n1nj4sec |
Este projeto é um desenvolvimento pessoal, por favor respeite sua filosofia e não o use para propósitos malignos!
Agradecimentos especiais a todos os contribuidores e apoiadores que ajudam a melhorar o pupy e torná-lo uma ferramenta melhor! :)
| Formato | Arquitetura | Nome Curto |
|---|
| ~~ Pacote Android ~~ | x86 & ARMv7 | apk |
| Binário Linux | x86 | lin_x86 |
| Binário Linux | x64 | lin_x64 |
| Objeto Compartilhado Linux | x86 | so_x86 |
| Objeto Compartilhado Linux | x64 | so_x64 |
| Executável PE do Windows | x86 | exe_x86 |
| Executável PE do Windows | x64 | exe_x64 |
| DLL do Windows | x86 | dll_x86 |
| DLL do 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 | Status de Suporte |
|---|
| Windows XP | ~~ Suportado ~~ suporte do Python encerrado |
| Windows 7 | ~~ Suportado ~~ suporte do Python encerrado |
| Windows 8 | Suportado |
| Windows 10 | Suportado |
| Linux | Suportado |
| Mac OSX | Suporte Limitado |
| Android | Suporte Limitado |