# 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/)*