
Uma coleção de amostras e material relacionado à injeção de processos.
Uma coleção abrangente de técnicas de injeção de processos para Linux, demonstrando vários métodos de injeção de código em processos em execução. Estes exemplos destinam-se a fins educacionais, pesquisa de segurança e compreensão da manipulação de processos Linux de baixo nível.
A injeção de processos é uma técnica usada para executar código no contexto de outro processo. Embora frequentemente associada a malware, essas técnicas também são valiosas para:
Diretório: ptrace/
O método clássico de injeção de processos que usa a chamada de sistema ptrace() para escrever diretamente shellcode na memória de um processo e redirecionar a execução.
Principais Características:
Caso de Uso: Compreender o controle de processos de baixo nível e a injeção direta de código
Diretório: ld_preload/
Interposição de funções usando a variável de ambiente LD_PRELOAD para carregar uma biblioteca maliciosa antes de quaisquer outras bibliotecas.
Principais Características:
Caso de Uso: Hook de funções, monitoramento de API, modificação de comportamento
Diretório: proc_mem/
Escrita direta na memória através da interface de filesystem /proc/<pid>/mem, combinada com ptrace para controle do processo.
Principais Características:
Caso de Uso: Injeção rápida em massa na memória, contornando as limitações tradicionais do ptrace
Diretório: dlopen_inject/
Técnica sofisticada que força um processo em execução a carregar uma biblioteca compartilhada ao sequestrar a execução para chamar dlopen().
Principais Características:
Caso de Uso: Injeção persistente avançada, manipulação de bibliotecas em tempo de execução
# Build ptrace injection
cd ptrace && make all
# Build LD_PRELOAD injection
cd ../ld_preload && make all
# Build /proc/mem injection
cd ../proc_mem && make all
# Build dlopen injection
cd ../dlopen_inject && make all
Cada técnica segue um padrão semelhante:
Inicie o processo vítima:
cd <technique>/victim-process
./sample
Anote o PID exibido
Execute a injeção:
cd <technique>
sudo ./<injector> <PID> [additional args]
Observe os resultados: Verifique a saída do processo vítima para ver a execução do código injetado
Consulte os arquivos README individuais para instruções específicas de cada técnica.
Yama ptrace_scope: Restrinja o ptrace a usuários privilegiados
echo 1 | sudo tee /proc/sys/kernel/yama/ptrace_scope
SELinux/AppArmor: Controles de acesso obrigatórios
Monitoramento: Use auditd para registrar tentativas de ptrace e injeção de processos
auditctl -a exit,always -F arch=b64 -S ptrace
Verificação de Integridade em Tempo de Execução: Verifique periodicamente a memória dos processos
Assinatura de Código: Verifique assinaturas de bibliotecas
/proc/<pid>/maps para regiões de memória ou bibliotecas inesperadaslsof, pmap e utilitários de monitoramento de processosIMPORTANTE: Essas técnicas devem ser usadas apenas em contextos autorizados:
Este repositório é apenas para fins educacionais e de pesquisa. Os autores não são responsáveis pelo uso indevido dessas técnicas. Sempre obtenha autorização adequada antes de testar em qualquer sistema.
Erros de permissão negada:
sudo/proc/sys/kernel/yama/ptrace_scopeInjeção falha silenciosamente:
Falhas de segmentação:
Consulte os READMEs de cada técnica para orientações específicas de solução de problemas.
Contribuições são bem-vindas! Adições potenciais:
man 2 ptrace - Chamada de sistema para rastreamento de processosman 5 proc - Documentação do filesystem /procman 3 dlopen - Carregamento dinâmico de bibliotecasConsulte LICENSE.txt para obter detalhes.
Este software é fornecido "como está" para fins educacionais. Use com responsabilidade e ética. Sempre obtenha autorização adequada antes de testar técnicas de segurança em qualquer sistema que não seja seu.
| Técnica | Complexidade | Furtividade | Persistência | Velocidade | Funciona em Processo em Execução |
|---|
| ptrace | Média | Baixa | Não | Média | Sim |
| LD_PRELOAD | Baixa | Muito Baixa | Não | Rápida | Não |
| /proc/mem | Média | Baixa | Não | Rápida | Sim |
| dlopen | Alta | Média | Sim | Média | Sim |