O que contorno-de-proteção-binária faz?
Manual de contorno de proteção binária. Use ao identificar e contornar proteções ASLR, PIE, NX/DEP, stack canary, RELRO, FORTIFY_SOURCE, CET e MTE em binários ELF para viabilizar exploração.
Visão Geral
Este manual fornece um guia passo a passo para identificar e contornar as principais proteções de segurança em binários ELF (Executable and Linkable Format) no Linux. Ele cobre proteções como:
- ASLR (Address Space Layout Randomization)
- PIE (Position Independent Executable)
- NX/DEP (No-Execute / Data Execution Prevention)
- Stack Canary
- RELRO (Relocation Read-Only)
- FORTIFY_SOURCE
- CET (Control-flow Enforcement Technology)
- MTE (Memory Tagging Extension)
Como Usar
- Identifique as proteções ativas no binário alvo usando ferramentas como
checksecoureadelf -l. - Analise o binário com objdump, ghidra ou radare2 para entender a estrutura e vulnerabilidades.
- Aplique técnicas de bypass apropriadas para cada proteção identificada.
- Teste a exploração controladamente para validar o bypass.
Técnicas de Bypass
ASLR
- Leak de endereço para obter base de bibliotecas ou execução.
- Uso de ROP (Return-Oriented Programming) com gadgets estáticos.
PIE
- Leak de endereço do próprio binário (ex.: via format string).
- Sobrescrita de entrada GOT para redirecionar fluxo.
NX/DEP
- ROP para executar código sem pilha executável.
- mprotect() para tornar região executável.
Stack Canary
- Leak do canário via overflow controlado.
- Bruteforce byte a byte (em alguns cenários com fork).
RELRO
- Parcial: sobrescrever GOT (exceto entradas protegidas).
- Completo: atacar outros alvos (ex.: heap, variáveis globais).
FORTIFY_SOURCE
- Evitar funções fortificadas usando chamadas diretas.
- Buscar funções não fortificadas no binário.
CET
- Somente bypass parcial em hardware sem suporte.
- Uso de ROP indireto ou manipulação de sombra de pilha.
MTE
- Ainda experimental; técnicas incluem leak de tag e alinhamento de endereços.
Exemplo de Comando
Verificar proteções com checksec:
checksec --file=./vulneravel
Analisar seção GOT:
readelf -r ./vulneravel
Notas
- Nem todas as técnicas funcionam em todos os cenários; adapte conforme o binário.
- Essas técnicas devem ser usadas apenas para fins educacionais ou em ambientes autorizados.