Abuso de Ferramentas Legítimas de Baixo Nível para Ajudar Ransomware a Evitar Detecção por Antivírus
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
O artigo explica como operadores de ransomware abusam de utilitários de baixo nível legítimos, como Process Hacker, IOBit Unlocker, PowerRun e ferramentas semelhantes, para enfraquecer o antivírus e a proteção de endpoint. Ao usarem indevidamente esses binários assinados, os atacantes podem obter privilégios de SYSTEM ou até de kernel, roubar credenciais e preparar o ambiente para a implantação de ransomware. O artigo destaca como a neutralização de AV evoluiu de scripts básicos para conjuntos de capacidades integradas dentro das ofertas modernas de Ransomware-como-um-Serviço. Também faz referência a grupos de ransomware do mundo real que adotaram esses métodos.
Investigação
A investigação descreve um padrão de intrusão em duas etapas no qual os adversários primeiro usam ferramentas de baixo nível para elevar privilégios e evadir antivírus, depois passam para roubo de credenciais, adulteração de kernel e execução da carga útil de ransomware. A atividade das ferramentas é mapeada para técnicas do MITRE ATT&CK, incluindo T1548.002, T1562.001 e T1003.001. Exemplos de casos conectam essas utilidades a operações de ransomware, como LockBit 3.0, Phobos, MedusaLocker e outras.
Mitigação
Mitigações recomendadas incluem a aplicação de listas de permissões de aplicativos, observando terminações de processos em larga escala, auditando alterações no registro que afetam as configurações de antivírus e limitando a execução de utilitários administrativos apenas a contas aprovadas. Plataformas de proteção de endpoint também devem fortalecer os controles de autoproteção para resistir ao encerramento forçado de processos e serviços de segurança.
Resposta
Quando esse comportamento for detectado, as organizações devem alertar sobre a terminação suspeita de processos de AV ou EDR, isolar o host impactado, preservar evidências forenses de alterações no registro e arquivos, e investigar qualquer acesso ao LSASS relacionado a roubo de credenciais. A resposta a incidentes deve seguir a cadeia de eliminação observada rapidamente o suficiente para conter a intrusão antes que a criptografia de ransomware comece.
“graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#cccccc classDef operator fill:#ff9900 %% Action nodes action_initial_access["<b>Action</b> – <b>T1566.001 Phishing: Spearphishing Attachment</b><br/><b>Description</b>: Adversary sends a malicious email attachment that, when opened, drops a bootstrap loader.<br/><b>Technique ID</b>: T1566.001"] class action_initial_access action action_priv_esc["<b>Action</b> – <b>T1548.002 Bypass User Account Control</b><br/><b>Description</b>: Exploit legitimate utilities to bypass UAC and obtain SYSTEM or kernel privileges.<br/><b>Technique ID</b>: T1548.002"] class action_priv_esc action action_defense_evasion["<b>Action</b> – <b>T1562 Impair Defenses</b><br/><b>Description</b>: Terminate or unload antivirus and EDR components to evade detection.<br/><b>Technique ID</b>: T1562"] class action_defense_evasion action action_credential_access["<b>Action</b> – <b>T1003 OS Credential Dumping</b><br/><b>Description</b>: Dump cached credentials from memory using tools such as Mimikatz.<br/><b>Technique ID</b>: T1003"] class action_credential_access action action_persistence["<b>Action</b> – <b>T1112 Modify Registry</b><br/><b>Description</b>: Delete or modify registry keys that launch AV components for persistence removal.<br/><b>Technique ID</b>: T1112"] class action_persistence action action_indicator_removal["<b>Action</b> – <b>T1070.004 File Deletion</b><br/><b>Description</b>: Remove AV logs and other forensic artifacts from disk.<br/><b>Technique ID</b>: T1070.004"] class action_indicator_removal action action_impact["<b>Action</b> – <b>T1486 Data Encrypted for Impact</b><br/><b>Description</b>: Encrypt user files with ransomware payload after gaining SYSTEM rights.<br/><b>Technique ID</b>: T1486"] class action_impact action %% Tool nodes tool_powerrun["<b>Tool</b> – <b>Name</b>: PowerRun<br/><b>Purpose</b>: Execute binaries with elevated privileges"] class tool_powerrun tool tool_wke["<b>Tool</b> – <b>Name</b>: Windows Kernel Explorer (WKE)<br/><b>Purpose</b>: Obtain kernelu2011level execution"] class tool_wke tool tool_ydark["<b>Tool</b> – <b>Name</b>: YDArk<br/><b>Purpose</b>: Elevate to SYSTEM"] class tool_ydark tool tool_process_hacker["<b>Tool</b> – <b>Name</b>: Process Hacker<br/><b>Purpose</b>: Terminate security processes"] class tool_process_hacker tool tool_iobit["<b>Tool</b> – <b>Name</b>: IOBit Unlocker<br/><b>Purpose</b>: Stop AV services"] class tool_iobit tool tool_aukills["<b>Tool</b> – <b>Name</b>: AuKill / ProcessKO<br/><b>Purpose</b>: Kill specific AV processes"] class tool_aukills tool tool_mimikatz["<b>Tool</b> – <b>Name</b>: Mimikatz<br/><b>Purpose</b>: Dump Windows credentials"] class tool_mimikatz tool tool_unlock_it["<b>Tool</b> – <b>Name</b>: Unlock_IT<br/><b>Purpose</b>: Delete AV registry keys and logs"] class tool_unlock_it tool tool_atool["<b>Tool</b> – <b>Name</b>: Atool_ExperModel<br/><b>Purpose</b>: Remove AV startup keys"] class tool_atool tool %% Operator node (optional) op_and1(("AND")) class op_and1 operator %% Flow connections action_initial_access –>|leads_to| action_priv_esc action_priv_esc –>|leads_to| action_defense_evasion action_defense_evasion –>|leads_to| action_credential_access action_credential_access –>|leads_to| action_persistence action_persistence –>|leads_to| action_indicator_removal action_indicator_removal –>|leads_to| action_impact %% Tool usage connections action_priv_esc –>|uses| tool_powerrun action_priv_esc –>|uses| tool_wke action_priv_esc –>|uses| tool_ydark action_defense_evasion –>|uses| tool_process_hacker action_defense_evasion –>|uses| tool_iobit action_defense_evasion –>|uses| tool_aukills action_credential_access –>|uses| tool_mimikatz action_persistence –>|uses| tool_unlock_it action_persistence –>|uses| tool_atool action_indicator_removal –>|uses| tool_unlock_it “
Fluxo de Ataque
Detecções
Possível Abuso da Utilidade IObitUnlocker (via process_creation)
Visualizar
Execução Suspeita de Taskkill (via linha de comando)
Visualizar
Possíveis Argumentos do Mimikatz Detectados (via linha de comando)
Visualizar
Possível Tentativa de Execução do Utilitário TDSSKiller (via linha de comando)
Visualizar
Manipulação do Serviço HRSword para Neutralização de Antivírus [Sistema Windows]
Visualizar
Detecção de Táticas de Evasão de Ransomware Usando Ferramentas de Baixo Nível [Criação de Processo Windows]
Visualizar
Execução de Simulação
Pré-requisito: O Verificação Pré‑voo de Telemetria & Ponto de Referência deve ter passado.
-
Narrativa de Ataque & Comandos:
O adversário obteve direitos administrativos no host da vítima e deseja neutralizar a proteção de endpoint antes de implantar cargas úteis de ransomware. Usando o utilitário legítimo HRSword.exe, eles emitem um comando que interrompe o serviço de antivírus (
avservice) e desativa seu reinício automático, garantindo que o defensor não possa recuperar o serviço durante a janela de ataque. O comando é executado diretamente em um console do PowerShell para gerar um evento claro de criação de processo do Sysmon que corresponde à regra de detecção. -
Script de Teste de Regressão:
<# Simulação do uso do HRSword.exe para parar um serviço de AV e desativar seu reinício. Este script deve ser executado com privilégios elevados (Administrador). #> # Variáveis $hrswordPath = "$env:ProgramFilesHRSwordHRSword.exe" $serviceName = "avservice" # Garantir que HRSword.exe exista (criar um mock se não) if (-Not (Test-Path $hrswordPath)) { Write-Host "Criando mock HRSword.exe para simulação..." # Criar um executável dummy (uma cópia do cmd.exe) apenas para fins de registro Copy-Item "$env:windirSystem32cmd.exe" $hrswordPath -Force } # Executar a linha de comando exata que a regra Sigma analisa $command = "& `"$hrswordPath`" /service stop $serviceName /disable" Write-Host "Executando: $command" Invoke-Expression $command # Opcional: Registrar um evento personalizado para indicar a conclusão (ajuda a verificar de ponta a ponta) Write-EventLog -LogName Application -Source "HRSwordSimulation" -EventId 3000 -EntryType Information -Message "Simulação de parada do serviço HRSword concluída." -
Comandos de Limpeza:
<# Restaurar o serviço de AV ao estado original e remover o executável mock. #> # Reiniciar o serviço de AV (se existir) $serviceName = "avservice" if (Get-Service -Name $serviceName -ErrorAction SilentlyContinue) { Write-Host "Reiniciando o serviço $serviceName ..." Start-Service -Name $serviceName -ErrorAction SilentlyContinue } # Remover o mock HRSword.exe (se foi criado) $hrswordPath = "$env:ProgramFilesHRSwordHRSword.exe" if (Test-Path $hrswordPath) { Write-Host "Removendo mock HRSword.exe ..." Remove-Item $hrswordPath -Force } # Limpar a entrada de log de evento personalizado Get-EventLog -LogName Application -Source "HRSwordSimulation" -After (Get-Date).AddMinutes(-10) | Remove-EventLog