
emp3r0r v4.15.0
Malha de Gossip C2 com Autocura e Descoberta Assistida de Pares, Execução BOF Multiplataforma e Agentes Programáveis.
emp3r0r
Um C2 auto-recuperável, somente em memória, para Linux e Windows — agentes que sobrevivem a links quebrados, nunca tocam o disco e fazem script através da API Win32.
O que é o emp3r0r?
emp3r0r é um framework de pós-exploração e C2 construído para ambientes Linux e Windows onde stealth e resiliência não são opcionais. Em vez de assumir uma conexão confiável de volta a um servidor, os agentes formam uma malha auto-recuperável que continua funcionando quando os links quebram. Em vez de pedir Python ou PowerShell ao alvo, eles executam tudo em memória. E em vez de limitar você aos truques de uma única plataforma, o emp3r0r executa BOFs do Windows, objetos Linux e scripts Starlark — tudo sem arquivos, tudo em processo.
Destaques Principais e Recursos Únicos
🐍 Agentes Programáveis (Motor Starlark Embutido e Proxy da API Win32)
Cada agente carrega seu próprio motor de scripting, então você pode adicionar nova lógica de pós-exploração sem compilar ou enviar binários.
- Scripts rodam inteiramente em memória — sem necessidade de Python, Bash ou PowerShell no alvo, e sem interpretadores de comando sendo iniciados.
- Um conjunto completo de APIs embutidas cobre I/O de arquivos, HTTP, execução de comandos e mais, diretamente do código do script.
- No Windows, scripts podem chamar funções nativas do Win32 diretamente — o agente faz proxy direto para as DLLs do sistema.
- Módulos são arquivos Starlark simples com um pequeno manifesto JSON, então adicionar os seus próprios é fácil e sem arquivos.
Por que isso importa: escrever e estender a funcionalidade do agente se torna tão simples quanto editar um script, sem nenhum dos vestígios de deixar um interpretador ou um novo binário no alvo.
🔐 Fixação de Identidade Criptográfica TOFU
Os agentes vinculam sua identidade a uma chave criptográfica na primeira vez que falam com você — e esse vínculo nunca muda.
- Re-registro com credenciais diferentes é tratado como impostor e rejeitado.
- Remover um agente é uma decisão explícita do operador, não algo que uma chave roubada possa fazer silenciosamente.
Por que isso importa: sequestro de sessão e clonagem de agente simplesmente não acontecem; cada agente com quem você fala é aquele que você registrou.
🔒 Sigilo Direto Perfeito (PFS)
Todo link C2 e de peer usa chaves ECDH efêmeras com chaves de criptografia derivadas da sessão.
Por que isso importa: mesmo que uma chave de longo prazo seja comprometida depois, ela não pode ser usada para descriptografar tráfego que já passou.
🕸️ Rede Mesh de Gossip P2P Autônoma
Os agentes se descobrem e retransmitem tráfego através de uma malha de gossip, então a operação não desmorona quando um link ou um servidor desaparece.
- Peers se conectam via mTLS 1.3 camuflado ou UDP confiável (KCP), com cada salto criptografado.
- O tráfego contorna relays mortos automaticamente — sem cirurgia manual de proxy no meio da operação.
- Segmentos sem acesso direto ao C2 continuam alcançáveis através de seus vizinhos.
Por que isso importa: a rede faz o pivoting por você. Corte um link, perca uma máquina ou bloqueie o C2 — os agentes se redirecionam sozinhos.
📂 Sistema de Arquivos P2P
Arquivos se movem entre agentes diretamente, não apenas através do C2.
- As transferências usam túneis peer-to-peer criptografados, então redes internas não viram gargalo no seu servidor.
- Arquivos são armazenados em cache na memória do agente como blobs criptografados e servidos aos peers sob demanda.
- Se nenhum peer tem um arquivo, o agente o busca do C2 automaticamente.
Por que isso importa: a entrega é rápida e majoritariamente invisível ao canal C2 — ideal para ambientes com restrição de egress.
📡 Listeners Multi-Protocolo e Stagers Plugáveis
Colocar um agente para dentro é tratado com a mesma seriedade que mantê-lo vivo.
- Listeners HTTP, TCP e UDP com enquadramento confiável e perfis HTTP personalizáveis.
- Um stager de aproximadamente 2KB construído sobre syscalls diretas do Linux — sem libc, sem toolchain no alvo.
- Transportes de stager plugáveis e packers auto-descompactáveis permitem misturar o acesso inicial em qualquer canal que seu alvo permita, e derrotar a correspondência de assinaturas estáticas no processo.
- O código do stage e do agente respeita a disciplina de leitura/escrita/execução — nunca RWX.
Por que isso importa: acesso inicial pequeno, adaptável e higiênico em memória significa que você pode pousar em hosts que de outra forma estariam fora de alcance.
🧩 Suporte Nativo Cross-Platform a BOF e PICO (COFF, ELF e PICO)
Execute módulos C compilados em processo em qualquer plataforma:
- Binários COFF/BOF do Windows com empacotamento de argumentos tipados.
- Objetos relocáveis ELF do Linux carregados diretamente na memória do agente.
- Módulos PICO do Crystal-Kit com spoofing de callstack SilentMoonwalk.
- Kerbeus-BOF, Remote-OPs e uma suíte de Consciência Situacional vêm prontos para uso.
Por que isso importa: BOFs são tão bons quanto seu loader — o emp3r0r os executa em processo sem novo processo e sem deixar rastro, tanto no Linux quanto no Windows.
🧬 Carregador de Biblioteca em Memória (memmod)
Bibliotecas nativas são mapeadas no próprio espaço de endereçamento do agente e chamadas ali — sem LoadLibrary, sem dlopen, sem arquivo jamais tocando o disco.
memmodcarrega DLLs PE no Windows e.soELF no Linux, tratando relocações, imports e chamadas de export em processo.- Ele se baseia em trabalho upstream comprovado: o loader PE
memmoddo WireGuard e o loader ELF e maquinário de chamadas do Sliver C2 / sliverarmory/reflektor. memdepsfica acima dele: uma dependência declarada é resolvida do memfs criptografado/C2, mapeada apenas para a operação que precisa dela, e desmapeada no retorno.
Por que isso importa: estender o agente com código nativo não requer um novo binário, um serviço de loader ou um arquivo no disco.
🐧 Módulos Linux e eBPF
Módulos Linux são scripts Starlark que podem alcançar até o kernel. O agente mapeia libbpf sob demanda e expõe sua API a scripts como builtins apoiados em Go, então um módulo pode enumerar, anexar e destruir objetos eBPF sem compilador e sem processo filho.