# T1070.009 - Clear Persistence
> [!info] Técnica MITRE ATT&CK
> **ID:** T1070.009 | **Tática:** Defense Evasion | **Plataformas:** Windows, Linux, macOS, ESXi
> Adversários removem mecanismos de persistência previamente estabelecidos após completar seus objetivos, dificultando análise forense e compreensão do escopo do comprometimento.
## Descrição
A técnica **T1070.009 - Clear Persistence** é uma subtécnica de [[t1070-indicator-removal|T1070 - Indicator Removal]], dentro da tática de **Defense Evasion**. Ela descreve a prática de adversários que, após concluir seus objetivos em um sistema comprometido - ou quando detectam que podem ser descobertos - deliberadamente removem os mecanismos de persistência que estabeleceram durante a operação.
A persistência é um ativo valioso para os adversários: permite reacesso ao sistema mesmo após reboots, mudanças de credenciais ou limpeza superficial. No entanto, os artefatos de persistência são frequentemente os **indicadores mais concretos** que os times de resposta a incidentes encontram durante uma investigação forense. Chaves de registro suspeitas, tarefas agendadas anômalas, serviços com nomes incomuns e arquivos de inicialização modificados são pontos de partida clássicos de forensics.
Ao remover esses artefatos antes de ser detectado - ou imediatamente após executar a fase final da operação - o adversário:
1. **Reduz o escopo forense:** Analistas não conseguem determinar como e quando o adversário manteve acesso
2. **Dificulta a timeline da intrusão:** A ausência de artefatos de persistência impede reconstruir o histórico completo de acesso
3. **Prejudica a detecção de reinfecção:** Sem entender o vetor de persistência original, defensores podem não bloquear adequadamente o caminho de retorno
4. **Limpa evidências de outros TTPs:** A remoção de scripts ou executáveis usados para persistência também elimina amostras de malware que poderiam ser analisadas
Essa técnica está intimamente relacionada com outras técnicas de remoção de indicadores como [[t1070-001-clear-windows-event-logs|T1070.001 - Clear Windows Event Logs]], [[t1112-modify-registry|T1112 - Modify Registry]] (para limpeza de chaves), e [[t1136-create-account|T1136 - Creaté Account]] (contas criadas para persistência que são depois deletadas).
**Técnica pai:** [[t1070-indicator-removal|T1070 - Indicator Removal]]
---
## Como Funciona
A limpeza de persistência varia significativamente conforme o sistema operacional e o tipo de mecanismo de persistência que foi utilizado. Um adversário maduro conhece exatamente quais artefatos criou e os remove sistematicamente.
### Windows - Chaves de Registro
O Windows Registry é o mecanismo de persistência mais comum no Windows. As chaves mais frequentemente abusadas e depois removidas incluem:
```powershell
# Remoção de chaves de Run/RunOnce
Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run" -Name "MaliciousEntry"
Remove-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Run" -Name "ServiceUpdaté"
# Remoção de chaves de inicialização
Remove-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\MalService" -Recurse
# Via reg.exe (mais comum em scripts de ataque)
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "MalEntry" /f
reg delete "HKLM\SYSTEM\CurrentControlSet\Services\backdoor" /f
```
### Windows - Tarefas Agendadas
Tarefas agendadas são populares por sua persistência robusta e capacidade de execução privilegiada:
```cmd
# Remoção via schtasks
schtasks /delete /tn "WindowsUpdateHelper" /f
schtasks /delete /tn "\Microsoft\Windows\Defrag\ScheduledDefrag2" /f
# Via PowerShell
Unregister-ScheduledTask -TaskName "SystemHealthMonitor" -Confirm:$false
# Remoção do arquivo XML da tarefa (bypassa schtasks se acesso direto ao FS)
del "C:\Windows\System32\Tasks\WindowsUpdateHelper"
```
### Windows - Serviços
Serviços maliciosos instalados para persistência:
```cmd
# Parar e remover serviço
sc stop MaliciousService
sc delete MaliciousService
# Via PowerShell
Stop-Service -Name "SvcBackdoor" -Force
Remove-Service -Name "SvcBackdoor"
# Remover o executável do serviço
del /f /q "C:\Windows\System32\svchost_helper.exe"
```
### Windows - Pasta de Inicialização e Outros
```powershell
# Remover arquivos da pasta Startup
Remove-Item "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup\malware.lnk"
Remove-Item "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\updater.bat"
# Remover DLL maliciosa registrada via COM hijacking
reg delete "HKCU\Software\Classes\CLSID\{GUID-MALICIOSO}" /f
# Limpar WMI subscriptions (persistência avançada)
Get-WMIObject -Namespace root\subscription -Class __EventFilter | Where-Object {$_.Name -like "*Malware*"} | Remove-WmiObject
Get-WMIObject -Namespace root\subscription -Class __EventConsumer | Where-Object {$_.Name -like "*Malware*"} | Remove-WmiObject
```
### Linux - Serviços Systemd e Cron
```bash
# Remover serviço systemd malicioso
systemctl stop malicious-daemon.service
systemctl disable malicious-daemon.service
rm /etc/systemd/system/malicious-daemon.service
systemctl daemon-reload
# Remover entradas de cron
crontab -r # Remove todo o crontab do usuário atual (drástico)
# Ou remover entrada específica:
crontab -l | grep -v "malicious_script.sh" | crontab -
# Remover arquivos em /etc/cron.d/
rm /etc/cron.d/system-updaté-helper
# Remover entradas em /etc/rc.local
sed -i '/malicious_command/d' /etc/rc.local
```
### Linux/macOS - Modificações de Shell
```bash
# Remover código de inicialização injetado em perfis de shell
sed -i '/# UPDATE_HELPER/,/# END_UPDATE/d' ~/.bashrc
sed -i '/eval $(base64 -d/d' ~/.profile
sed -i '/curl.*C2_SERVER/d' ~/.zshrc
# macOS - Remover LaunchAgent/LaunchDaemon
launchctl unload ~/Library/LaunchAgents/com.apple.updater.plist
rm ~/Library/LaunchAgents/com.apple.updater.plist
launchctl unload /Library/LaunchDaemons/com.system.helper.plist
rm /Library/LaunchDaemons/com.system.helper.plist
```
### ESXi - Persistência em Hypervisor
```bash
# Remover VM oculta da inicialização (relacionado a T1564.006)
sed -i '/hidden-vm/d' /etc/rc.local.d/local.sh
# Remover backdoor do VIB (VMware Installation Bundle)
esxcli software vib remove -n malicious-vib
# Remover chaves SSH não autorizadas
sed -i '/attacker_pubkey/d' /etc/ssh/keys-root/authorized_keys
```
### Limpeza de Contas Criadas para Persistência
Quando [[t1136-create-account|T1136 - Creaté Account]] foi usado para estabelecer persistência:
```cmd
# Windows - Remover conta criada
net user backdoor_admin /delete
# Linux - Remover conta criada
userdel -r attacker_user
# Remover da sudoers
sed -i '/attacker_user/d' /etc/sudoers
```
---
## Attack Flow
```mermaid
graph TB
A([Comprometimento Inicial]) --> B[Estabelecimento de<br/>Mecanismo de Persistência]
B --> C{Tipo de Persistência\nEstabelecida}
C -->|Windows Registry| D[Chaves Run/RunOnce<br/>Servicos/COM Hijacking]
C -->|Tarefas Agendadas| E[schtasks /WMI Events<br/>/Logon Scripts]
C -->|Conta de Usuario| F[Conta Backdoor<br/>Local ou AD]
C -->|Arquivos Sistema| G[Startup Folder<br/>rc.local/crontab/LaunchAgent]
C -->|ESXi| H[VIB malicioso<br/>rc.local.d/VM oculta]
D --> I[Execução dos<br/>Objetivos da Operação]
E --> I
F --> I
G --> I
H --> I
I --> J{Gatilho para\nLimpeza}
J -->|Objetivos concluídos| K[Limpeza Planejada<br/>Fase de Saída]
J -->|Detecção iminente| L[Limpeza Reativa<br/>Apagar Rastros]
J -->|Novo implante ativo| M[Remover persitência<br/>anterior por segurança]
K --> N[Identificar Artefatos<br/>de Persistência Criados]
L --> N
M --> N
N --> O{Plataforma}
O -->|Windows| P[reg delete<br/>schtasks /delete<br/>sc delete<br/>Remover arquivos Startup]
O -->|Linux/macOS| Q[Editar rc.local/crontab<br/>Remover LaunchAgent<br/>Desabilitar serviço]
O -->|ESXi| R[Remover VIB<br/>Limpar rc.local.d<br/>Remover SSH keys]
O -->|Contas| S[net user /delete<br/>userdel<br/>Remover de sudoers]
P --> T[Verificar Remoção<br/>Completa]
Q --> T
R --> T
S --> T
T --> U{Outros Indicadores\nde Comprometimento?}
U -->|Sim| V[Limpar Logs<br/>T1070.001 Clear Event Logs]
U -->|Não| W[Operação Concluída<br/>Forensics Dificultada]
V --> W
```
---
## Exemplos de Uso
### SUNBURST - Operação SolarWinds
O [[s0559-sunburst|SUNBURST]] é o backdoor usado pelo grupo [[g0016-apt29|APT29]] (Cozy Bear, atribuído ao SVR russo) na operação de supply chain contra a SolarWinds Orion, descoberta em dezembro de 2020. Um dos aspectos mais sofisticados do SUNBURST foi seu comportamento de limpeza de persistência como medida de segurança operacional (OPSEC).
**Comportamento documentado:**
- O SUNBURST incluía código para remover sua própria persistência quando detectava a presença de ferramentas de segurança ou análise no ambiente
- Quando identificava processos de EDR ou ferramentas de análise de malware em execução, executava rotinas de auto-limpeza antes de ser detectado
- A persistência era estabelecida como um serviço Windows; sua remoção eliminava o vetor de persistência dos logs do SCM
Essa abordagem de "se detectado, limpe e saia" é característica de operações de espionagem de nação-estado que priorizam não ser atribuídos sobre a continuidade do acesso.
### PlugX - Limpeza Pós-Operação
O [[s0013-plugx|PlugX]] é um RAT (Remote Access Trojan) amplamente utilizado por grupos APT chineses, incluindo **APT41**, **Mustang Panda** e outros. Em diversas campanhas documentadas, operadores do PlugX removeram componentes de persistência após completar a coleta de dados de interesse.
**Padrão observado em campanhas LATAM:**
- PlugX frequentemente persiste via chave de registro Run e sideloading de DLL
- Após exfiltrar documentos de interesse, operadores enviavam comandos de uninstall que removiam a chave de registro e deletavam os arquivos do implante
- A remoção dificultou a análise forense em vários incidentes, onde respondentes encontraram apenas vestígios de execução nos event logs sem os artefatos de persistência
### Kapeka - Grupo Sandworm
O [[s1190-kapeka|Kapeka]] é um backdoor descoberto em 2024, atribuído ao grupo [[g0034-sandworm|Sandworm]] (GRU, Rússia), usado em ataques contra países do Leste Europeu e infraestrutura crítica. O Kapeka demonstrou capacidades de remoção de persistência como parte de seu lifecycle operacional.
**Características:**
- O Kapeka instalava-se como uma tarefa agendada disfarçada de tarefa do Windows Updaté
- Incluía comandos C2 para deletar a tarefa agendada e remover o executável principal
- Após receber o comando de "retire", o Kapeka executava a limpeza completa e encerrava operação
### njRAT - Crime Cibernético no Brasil
O [[s0385-njrat|njRAT]] (também conhecido como Bladabindi) é um RAT de origem árabe amplamente usado por grupos criminosos de nível menos sofisticado, incluindo operadores no Brasil. Apesar de ser menos avançado que APTs de nação-estado, versões mais recentes do njRAT incluem funcionalidade de auto-remoção.
**Contexto no Brasil:**
- O njRAT é frequentemente distribuído em campanhas de phishing com temas de NFe fiscal, boletos e intimações judiciais - vetores altamente eficazes no Brasil
- Versões mais recentes incluem um "módulo de desinstalação" que o operador pode acionar remotamente
- Quando acionado, remove a chave de registro Run, deleta o executável e encerra o processo - dificultando o trabalho de respondentes de incidente
### Bazar - Remoção Antes de Ransomware Deployment
O [[s0534-bazar|Bazar]] (BazarLoader/BazarBackdoor) foi um implante inicial usado por grupos afiliados ao TrickBot/Conti para reconhecimento pré-ransomware. Um padrão documentado mostrava que operadores removiam o implante Bazar logo antes de implantar o ransomware final:
1. Bazar mantinha acesso por semanas para reconhecimento e movimento lateral
2. Imediatamente antes do deploy do ransomware, os operadores removiam o Bazar
3. Isso concentrava evidências forenses no evento do ransomware, obscurecendo o período de permanência anterior
---
## Detecção
A detecção de limpeza de persistência é inerentemente desafiadora: os artefatos que seriam evidência do ataque estão sendo removidos. A estratégia eficaz envolve **detectar o ato de remoção**, não a persistência em si.
### Estrategias Gerais
| Sinal | Evento | Ferramenta |
|-------|--------|-----------|
| Deleção de chave Run | EID 4657 (Registry value deleted) | Windows Security Log |
| Remoção de tarefa | EID 4699 (Scheduled task deleted) | Windows Security Log |
| Remoção de serviço | EID 7036 + SCM EID 4657 | System Log + Security |
| Deleção de conta | EID 4726 (User account deleted) | Windows Security Log |
| Comandos de deleção | Processo com `reg delete`, `schtasks /delete`, `sc delete` | Sysmon EID 1 |
| Modificação de crontab | `/var/spool/cron` write + deletions | auditd |
| Remoção de LaunchAgent | `launchctl unload` + file deletion | macOS Unified Log |
### Regra Sigma - Remoção de Chave de Run Registry
```yaml
title: Suspicious Registry Run Key Deletion
id: 4e8d1c73-2a9f-4b55-c3e7-af8b1d204c88
status: stable
description: >
Detecta deleção de chaves de registro nas hives de Run/RunOnce/RunServices,
que são mecanismos comuns de persistência - sua remoção pode indicar limpeza
de artefatos de persistência pós-comprometimento.
references:
- https://attack.mitre.org/techniques/T1070/009/
- https://attack.mitre.org/techniques/T1547/001/
author: RunkIntel
daté: 2026-03-25
tags:
- attack.defense_evasion
- attack.t1070.009
logsource:
product: windows
service: security
detection:
selection:
EventID: 4657
ObjectName|contains:
- '\SOFTWARE\Microsoft\Windows\CurrentVersion\Run'
- '\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce'
- '\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon'
- '\SYSTEM\CurrentControlSet\Services'
OperationType: '%%1540' # Registry value deleted
condition: selection
falsepositives:
- Desinstalação legítima de software
- Administração de sistemas removendo entradas de startup
level: medium
```
### Regra Sigma - Remoção de Tarefa Agendada
```yaml
title: Scheduled Task Deleted After Short Lifetime
id: 2b7c9e41-5f3d-4a88-b6e2-dc9f3a172e55
status: experimental
description: >
Detecta tarefas agendadas deletadas pouco tempo após sua criação -
padrão associado à limpeza de persistência pós-operação ou remoção
de implante após execução.
references:
- https://attack.mitre.org/techniques/T1070/009/
author: RunkIntel
daté: 2026-03-25
tags:
- attack.defense_evasion
- attack.t1070.009
logsource:
product: windows
service: security
detection:
selection:
EventID: 4699 # A scheduled task was deleted
filter_known_system:
TaskName|startswith:
- '\Microsoft\Windows\'
condition: selection and not filter_known_system
falsepositives:
- Desinstalação de software com tarefas agendadas temporárias
- Scripts de automação que criam e deletam tarefas programaticamente
level: medium
```
### Regra Sigma - Exclusão de Serviço Windows via sc.exe
```yaml
title: Windows Service Deleted via sc.exe Command
id: 8f1e4b26-9c7a-4d33-a2f8-be3d1c985f44
status: stable
description: >
Detecta execução de sc.exe com o argumento delete - pode indicar remoção
de serviço malicioso como parte de limpeza de persistência pós-comprometimento.
Correlacionar com criação recente de serviço pelo mesmo nome.
references:
- https://attack.mitre.org/techniques/T1070/009/
- https://attack.mitre.org/techniques/T1543/003/
author: RunkIntel
daté: 2026-03-25
tags:
- attack.defense_evasion
- attack.t1070.009
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith: '\sc.exe'
CommandLine|contains: 'delete'
filter_known_services:
CommandLine|contains:
- 'VSS'
- 'wbengine'
condition: selection and not filter_known_services
falsepositives:
- Administração legítima de serviços
- Scripts de desinstalação de software
level: low
```
---
## Mitigação
| ID | Mitigação | Descrição | Prioridade |
|----|-----------|-----------|-----------|
| M1022 | [[m1022-restrict-file-and-directory-permissions\|M1022 - Restrict File and Directory Permissions]] | Restringir permissões de escrita em locais de persistência comuns. Proteger arquivos como `/etc/cron.d/`, `/etc/rc.local`, `/etc/systemd/system/` com permissões restritas. No Windows, considerar ACLs restritas em pastas de Startup. Isso não impede a remoção por um adversário com privilégios adequados, mas reduz a capacidade de modificação inicial. | Média |
| M1029 | [[m1029-remote-data-storage\|M1029 - Remote Data Storage]] | Encaminhar logs de auditoria de registry, criação/deleção de tarefas agendadas e modificações de serviços para um SIEM remoto imutável em tempo real. Se os logs existem apenas localmente, o adversário pode limpá-los antes que sejam coletados. Logs remotos garantem que o ato de criar E remover persistência sejá registrado, mesmo que os artefatos sejam apagados do host. | Alta |
**Controles complementares críticos:**
- **Log forwarding em tempo real:** Toda criação e deleção de serviços, tarefas agendadas e chaves de registro Run devem ser enviadas ao SIEM imediatamente. Um adversário sofisticado pode limpar os event logs locais, mas não consegue apagar o que já foi encaminhado.
- **Baselines de persistência:** Manter inventário baseline de todos os mecanismos de persistência legítimos no ambiente (serviços, tarefas agendadas, chaves Run) permite detectar tanto criações anômalas quanto remoções anômalas.
- **Correlação temporal:** Alertar quando um mecanismo de persistência é criado E removido em curto intervalo de tempo - isso é incomum em operações legítimas mas comum em cleanup pós-ataque.
- **Monitoramento de integridade de arquivos (FIM):** Para ambientes Linux/macOS/ESXi, monitorar modificações em arquivos de inicialização (`/etc/cron.d/`, `/etc/rc.local`, `/etc/systemd/system/`, LaunchAgents, `rc.local.d/` em ESXi).
---
## Contexto Brasil/LATAM
### Implicações Forenses para Respondentes Brasileiros
A limpeza de persistência é uma das razões pelas quais determinar o **tempo de permanência** (dwell time) de um adversário é tão desafiadora em resposta a incidentes no Brasil. Sem os artefatos de persistência, a timeline de comprometimento fica com lacunas significativas.
**Cenários comuns no Brasil:**
1. **Ransomware com Bazar/Cobalt Strike pré-deploy:** Vários incidentes de ransomware documentados em empresas brasileiras seguiram o padrão de acesso inicial → persistência com implante leve → reconhecimento prolongado (semanas/meses) → remoção do implante inicial → deploy de ransomware. O DFIR post-ransom frequentemente encontrava apenas os artefatos do próprio ransomware, sem evidência do período de acesso anterior.
2. **Trojans bancários brasileiros e auto-remoção:** Grupos que operam [[s0531-grandoreiro|Grandoreiro]], [[mekotio|Mekotio]] e similares realizam campanhas baseadas em execução de transações fraudulentas durante uma única sessão ativa. Após completar as transações, versões mais recentes desses malwares executam rotinas de auto-remoção que deletam o executável e as chaves de registro, dificultando a análise da amostra e a identificação do vetor inicial.
3. **APTs em infraestrutura crítica brasileira:** Campanhas documentadas contra Petrobras, Eletrobras e outros setores de infraestrutura crítica mostram uso de implantes sofisticados com capacidades de limpeza de persistência, especialmente próximo a eventos de alto risco (investigações, auditorias, mudanças de governo).
### Considerações para Times de IR no Brasil
**Antes de iniciar o DFIR:**
- Capture imagens de disco antes de qualquer intervenção - artefatos de registro e filesystem ainda podem estar presentes
- Priorize captura de logs de SIEM e SYSLOG remotos, pois o adversário pode ter limpado logs locais
- Verificar shadow copies (VSS) no Windows - podem conter versões anteriores de artefatos de persistência antes da limpeza
**Fontes alternativas de evidência quando persistência foi removida:**
- Windows Prefetch: arquivo de prefetch para executáveis maliciosos persiste mesmo após deleção do executável
- Windows NTFS MFT: deleção de arquivo deixa rastros no MFT e em journal entries ($UsnJrnl)
- Windows Registry HiveLogs: deleção de chaves de registro pode ser rastreada via transaction logs das hives
- Linux: `/var/log/auth.log`, `/var/log/syslog`, journald para comandos de modificação de crontab/systemd
---
## Referências
- [MITRE ATT&CK - T1070.009](https://attack.mitre.org/techniques/T1070/009/)
- [Mandiant - SUNBURST Backdoor Analysis](https://www.mandiant.com/resources/blog/sunburst-additional-technical-details)
- [WithSecure - Kapeka Backdoor Analysis](https://labs.withsecure.com/publications/kapeka)
- [Proofpoint - BazarLoader Technical Analysis](https://www.proofpoint.com/us/blog/threat-insight/bazarloader-and-the-spookiest-halloween-campaign)
- [Securelist - PlugX campaigns LATAM](https://securelist.com/plugx-samples/)
- [[s0559-sunburst|SUNBURST]] - APT29, limpeza de persistência automática
- [[s0013-plugx|PlugX]] - RAT chinês com capacidade de uninstall remoto
- [[s1190-kapeka|Kapeka]] - Sandworm backdoor com lifecycle gerenciado
- [[s0385-njrat|njRAT]] - RAT com módulo de auto-remoção, usado no Brasil
- [[s0534-bazar|Bazar]] - Loader removido antes do deploy de ransomware
- [[g0016-apt29|APT29]] - Grupo que usa essa técnica extensivamente (SolarWinds)
- [[t1070-indicator-removal|T1070 - Indicator Removal]] - técnica pai
- [[t1070-001-clear-windows-event-logs|T1070.001 - Clear Windows Event Logs]] - frequentemente combinada
- [[t1547-001-registry-run-keys|T1547.001 - Registry Run Keys]] - mecanismo de persistência frequentemente limpo
- [[t1136-create-account|T1136 - Creaté Account]] - contas criadas como persistência e depois deletadas
---
*Fonte: [MITRE ATT&CK - T1070.009](https://attack.mitre.org/techniques/T1070/009/)*