
Introdução
Em um recente caso de resposta a incidentes no Brasil, encontramos um novo tipo de software capaz de desativar soluções antivírus (AV), que vem circulando ativamente desde pelo menos outubro de 2024. Esse artefato malicioso usa de forma indevida o driver ThrottleStop.sys
, entregue juntamente com o malware, para encerrar vários processos de antivírus e reduzir as defesas do sistema como parte de uma técnica conhecida como BYOVD (Bring Your Own Vulnerable Driver). Softwares que desativam AV e exploram diferentes drivers vulneráveis são um problema conhecido. Recentemente, notamos um aumento nos ciberataques envolvendo esse tipo de malware.
É importante ressaltar que os produtos da Kaspersky, como o Kaspersky Endpoint Security (KES), têm mecanismos de autodefesa integrados que impedem a alteração ou o encerramento de processos em memória, a exclusão de arquivos do aplicativo no disco rígido e as alterações nas entradas do registro do sistema. Esses mecanismos combatem efetivamente o software descrito neste artigo.
No caso que analisamos, o cliente procurou nossa ajuda após identificar que seus sistemas haviam sido criptografados por um ransomware. O adversário obteve acesso ao sistema inicial, um servidor SMTP, por meio de uma credencial RDP válida. Em seguida, ele extraiu as credenciais de outros usuários com o Mimikatz e realizou movimentação via pass the hash com as ferramentas Invoke-WMIExec.ps1
e Invoke-SMBExec.ps1
. O atacante alcançou seu objetivo ao desativar o AV em várias máquinas e servidores da rede, além de executar uma variante do ransomware MedusaLocker.
Neste artigo, forneceremos detalhes sobre o ataque e uma análise do software que desativa AVs em si. Por fim, descreveremos TTPs (Táticas, Técnicas e Procedimentos) empregados pelos atacantes.
Os produtos da Kaspersky detectam as ameaças identificadas neste incidente como:
- Trojan-Ransom.Win32.PaidMeme.* (variante do MedusaLocker)
- Win64.KillAV.* (malware capaz de desativar as defesas do sistema)
Visão geral do incidente
O ataque começou com o uso de credenciais válidas obtidas pelos atacantes de uma conta administrativa. Os adversários conseguiram se conectar a um servidor de e-mail, via RDP, a partir da Bélgica. Em seguida, com o uso do Mimikatz, os atacantes extraíram o hash NTLM de outro usuário. Depois, eles utilizaram os seguintes comandos da suíte PowerShell Invoke-TheHash para executar ataques de pass the hash na tentativa de criar usuários em outras máquinas.
1 2 3 |
Invoke-WMIExec -Target "<IP>" -Domain "<DOMÍNIO>" -Username "<USUÁRIO>" -Hash "<HASH>" -Command "net user User1 Password1! /ad" -verbose Invoke-SMBExec -Target "<IP>" -Domain "<DOMÍNIO>" -Username "<USUÁRIO>" -Hash "<HASH>" -Command "net user User2 Password1! /ad" -verbose Invoke-SMBExec -Target "<IP>" -Domain "<DOMÍNIO>" -Username "<USUÁRIO>" -Hash "<HASH>" -Command "net localgroup Administrators User1 /ad" -verbose |
Um detalhe interessante é que o atacante não quis criar o mesmo nome de usuário em todas as máquinas. Em vez disso, ele optou pela adição de um número sequencial ao final de cada nome de usuário (por exemplo, Usuário1, Usuário2, Usuário3 etc.). No entanto, a senha era a mesma para todos os usuários criados.
Vários artefatos, inclusive o software que encerra AVs, foram criados na pasta C:\Users\Administrator\Music no servidor de e-mail
. Esses artefatos foram posteriormente inseridos em outras máquinas juntamente com o ransomware (haz8.exe), mas desta vez em C:\Users\UserN\Pictures
. Inicialmente, o Windows Defender conseguiu conter a ameaça de ransomware, em algumas máquinas, logo após a inserção, mas os atacantes foram capazes de encerrar a proteção do Defender.
A figura abaixo fornece uma visão geral do incidente. Conseguimos extrair evidências para determinar o fluxo de trabalho dos atacantes e os artefatos envolvidos. Felizmente, os sistemas analisados ainda continham informações importantes, mas, nem sempre esse é o caso.

Fluxo de incidentes
Esse tipo de ataque destaca a importância da segurança em camadas. Embora a organização tivesse um antivírus instalado, os atacantes conseguiram usar uma conta válida para carregar um artefato indetectável que contornou a defesa. Esses ataques podem ser evitados por meio de práticas de segurança simples, como políticas de senhas robustas e a desativação do acesso RDP via endereços IPs públicos.
A análise do malware
Para desativar as defesas do sistema, os atacantes usaram dois artefatos: ThrottleBlood.sys
e All.exe
. O primeiro é um driver legítimo originalmente chamado ThrottleStop.sys
, desenvolvido pela TechPowerUp e usado pelo aplicativo ThrottleStop. O aplicativo foi desenvolvido para monitorar e corrigir problemas de limitação da CPU, cujo uso é feito, principalmente, por gamers. O driver envolvido no incidente tem um certificado válido assinado em 2020-10-06 20:34:00 UTC, conforme indicado abaixo:
1 2 3 4 5 6 7 8 |
Status: The file is signed and the signature was verified Serial number: 0a fc 69 77 2a e1 ea 9a 28 57 31 b6 aa 45 23 c6 Issuer: DigiCert EV Code Signing CA Subject: TechPowerUp LLC TS Serial number: 03 01 9a 02 3a ff 58 b1 6b d6 d5 ea e6 17 f0 66 TS Issuer: DigiCert Assured ID CA-1 TS Subject: DigiCert Timestamp Responder Date Signed: 2020-10-06 20:34:00 UTC |
Hash | Value |
MD5 | 6bc8e3505d9f51368ddf323acb6abc49 |
SHA-1 | 82ed942a52cdcf120a8919730e00ba37619661a3 |
SHA-256 | 16f83f056177c4ec24c7e99d01ca9d9d6713bd0497eeedb777a3ffefa99c97f0 |
Quando carregado, o driver cria um dispositivo virtual em .\\.\\ThrottleStop
, que é um canal de comunicação entre o user mode e o kernel mode.

Visão geral da comunicação do driver ThrottleStop
A comunicação com o driver é realizada por meio de chamadas IOCTL, especificamente com o uso da função Win32 DeviceIoControl
. Essa função permite o uso de códigos IOCTL para solicitar várias operações do driver. O driver expõe duas funções IOCTL vulneráveis: uma que permite a leitura da memória e outra que permite a gravação nela. Ambas as funções usam endereços físicos. É importante ressaltar que qualquer usuário com privilégios administrativos consegue acessar essas funções, o que constitui a vulnerabilidade principal.
O driver utiliza a função MmMapIoSpace
para executar o acesso à memória física. Essa API no nível do kernel mapeia um endereço físico especificado para o espaço de endereço virtual, especificamente dentro da região MMIO (I/O mapeada na memória). Esse mapeamento permite que leituras e gravações na memória virtual afetem diretamente a memória física correspondente. Esse tipo de vulnerabilidade é bem conhecida em drivers de kernel e tem sido explorada há anos, não apenas por atacantes, mas também por trapaceiros (game cheaters) que buscam acesso à memória de baixo nível. A vulnerabilidade no ThrottleStop.sys foi atribuída como CVE-2025-7771. De acordo com nossas informações, o fornecedor está preparando um patch para solucionar o problema. Por enquanto, recomendamos que as soluções de segurança monitorem a presença desse driver vulnerável, com o objetivo de impedir sua exploração por EDR-killers como o apresentado neste artigo.
O segundo artefato, All.exe, é o software que desativa AVs propriamente dito. Nossa análise começou com uma inspeção básica do arquivo.
Hash | Value |
MD5 | a88daa62751c212b7579a57f1f4ae8f8 |
SHA-1 | c0979ec20b87084317d1bfa50405f7149c3b5c5f |
SHA-256 | 7a311b584497e8133cd85950fec6132904dd5b02388a9feed3f5e057fb891d09 |
Primeiramente, inspecionamos suas propriedades. Ao procurar pelas strings relevantes, notamos um padrão: vários nomes de processos de antivírus dentro do binário. A imagem a seguir apresenta um trecho de nossa consulta.

Nomes de AVs dentro do binário
Conseguimos mapear todos os processos para os quais o malware tenta encerrar. A tabela abaixo indica cada um deles, juntamente com o fornecedor correspondente. Como podemos notar, o artefato tenta eliminar os principais produtos de AV do mercado.
Nomes de processos | Fornecedor |
AvastSvc.exe, AvLaunch.exe, aswToolsSvc.exe, afwServ.exe, wsc_proxy.exe, bccavsvc.exe | Avast |
AVGSvc.exe, AVGUI.exe, avgsvca.exe, avgToolsSvc.exe | Tecnologias AVG (Avast) |
bdlived2.exe, bdredline.exe, bdregsvr2.exe, bdservicehost.exe, bdemsrv.exe, bdlserv.exe, BDLogger.exe, BDAvScanner.exe, BDFileServer.exe, BDFsTray.exe, Arrakis3.exe, BDScheduler.exe, BDStatistics.exe, npemclient3.exe, epconsole.exe, ephost.exe, EPIntegrationService.exe, EPProtectedService.exe, EPSecurityService.exe, EPUpdateService.exe | BitDefender |
CSFalconContainer.exe, CSFalconService.exe, CSFalconUI.exe | CrowdStrike |
egui.exe, eguiProxy.exe, ERAAgent.exe, efwd.exe, ekrn.exe | ESET |
avp.exe, avpsus.exe, avpui.exe, kavfs.exe, kavfswh.exe, kavfswp.exe, klcsldcl.exe, klnagent.exe, klwtblfs.exe, vapm.exe | Kaspersky |
mfevtps.exe | McAfee (Trelix) |
MsMpEng.exe, MsMpSvc.exe, MSASCui.exe, MSASCuiL.exe, SecurityHealthService.exe, SecurityHealthSystray.exe | Microsoft |
QHPISVR.EXE, QUHLPSVC.EXE, SAPISSVC.EXE | Quick Heal Technologies |
ccSvcHst.exe, ccApp.exe, rtvscan.exe, SepMasterService.exe, sepWscSvc64.exe, smc.exe, SmcGui.exe, snac.exe, SymCorpUI.exe, SymWSC.exe, webextbridge.exe, WscStub.exe | Symantec (Broadcom) |
PSANHost.exe, pselamsvc.exe, PSUAMain.exe, PSUAService.exe | Panda Security (WatchGuard) |
SentinelAgent.exe, SentinelAgentWorker.exe, SentinelHelperService.exe, SentinelServiceHost.exe, SentinelStaticEngine.exe, SentinelStaticEngineScanner.exe, SentinelUI.exe | SentinelOne |
SophosFileScanner.exe, SophosFIMService.exe, SophosFS.exe, SophosHealth.exe, SophosNetFilter.exe, SophosNtpService.exe, hmpalert.exe, McsAgent.exe, McsClient.exe, SEDService.exe | Sophos |
Quando o binário é executado, primeiramente, ele carrega o driver ThrottleBlood.sys com o uso de métodos da API do Service Control Manager (SCM), como OpenSCManagerA()
e StartServiceW()
.

Processo de carregamento do driver ThrottleStop/ThrottleBlood
O software que desativa o AV precisa do driver ThrottleStop para utilizar funções do kernel e permitir a execução de rotinas dele a partir do user mode. Para invocar essas funções do kernel com o uso das propriedades primitivas de leitura/gravação vulneráveis do driver, primeiramente, o malware recupera o endereço base do kernel, carregado no momento, além dos endereços das funções de destino a serem substituídas. Isso é possível com o uso da função não documentada NtQuerySystemInformation
do Win32.

Coleta de endereços de base do Kernel
Fornecer a flag SystemModuleInformation
permite que a função retorne a lista de módulos e drivers carregados no sistema atual. O kernel do Windows é referido como ntoskrnl.exe
. O endereço base é sempre diferente devido ao KASLR (Kernel Address Space Layout Randomization).
Para executar operações de leitura/gravação
com o uso do MmMapIoSpace
, primeiramente, o sistema deve determinar o endereço físico usado pelo kernel. Isso é feito com o uso de uma técnica chamada SuperFetch
, compactada no projeto superfetch de código aberto, disponível no GitHub. Esse projeto facilita a tradução de endereços virtuais para endereços físicos por meio de uma biblioteca C++ composta exclusivamente de arquivos de cabeçalho.

Cálculo do endereço físico
A biblioteca C++ superfetch usa a função NtQuerySystemInformation
, especificamente com o uso da consulta SystemSuperfetchInformation
. Essa consulta retorna todos os intervalos de memória atuais e suas páginas. Com essas informações, a biblioteca superfetch pode traduzir com êxito qualquer endereço virtual do kernel para o respectivo endereço físico.
Chamada de funções do kernel
Agora que o endereço base físico foi coletado, o malware deve escolher uma função do kernel que pode ser chamada indiretamente por uma chamada do sistema (via user mode). A syscall escolhida é NtAddAtom
, que raramente é usada, e pode ser facilmente chamada por meio da ntdll.dll
.

Coleção de endereços NtAddAtom
Ao carregar o ntoskrnl.exe
com a função LoadLibrary
, o malware, entre outras coisas, pode descobrir facilmente o offset da função NtAddAtom
, e assim, determinar o endereço de kernel ao adicionar o endereço base atual e o offset. O endereço físico é obtido da mesma forma que a base do kernel. Com os endereços físicos e o driver carregados, o malware pode explorar os códigos IOCTL vulneráveis para ler e gravar a memória física da função NtAddAtom
.

Injeção de código do Kernel usando o driver com vulnerabilidade
Para chamar qualquer função do kernel, o malware escreve um pequeno shellcode que salta para um endereço de destino dentro do kernel. Esse endereço de destino pode ser qualquer função de kernel desejada. Após a conclusão da função, o malware restaura o código do kernel original para evitar falhas no sistema.

Diagrama de injeção de código do kernel
Rotina principal do software que desativa processos
Tendo obtido todas as informações necessárias, o malware inicia um loop para localizar os processos de destino com o uso das chamadas de API Process32FirstW()
e Process32NextW
. Como mencionamos anteriormente, a lista de softwares de segurança alvos como MsMpEng.exe (Windows Defender), é hardcoded no malware.

Correspondência encontrada com MsMpEng.exe
O malware verifica todos os processos em execução e os compara com a lista hardcoded. Caso haja alguma correspondência, ele encerrará o processo com o uso do driver vulnerável. Isso é feito por meio de chamadas às funções de kernel PsLookupProcessById
e PsTerminateProcess
.
Caso um processo seja encerrado, uma mensagem indicativa, juntamente com o nome do processo, serão exibidos no console, conforme ilustrado na imagem a seguir. Isso evidencia que o malware possui capacidades de debugging.

O MsMpEng.exe foi encerrado
Como a maioria dos programas de antivírus disponíveis atualmente, o Windows Defender tentará reiniciar o serviço para proteger a máquina. No entanto, o loop principal do programa continuará a identificar e encerrar o processo de AV associado.

O Defender tenta reiniciar, mas é encerrado novamente
Regra YARA
De acordo com nossa análise da amostra, desenvolvemos a seguinte regra YARA para detectar a ameaça em tempo real. A regra considera o tipo de arquivo, as strings relevantes (a maioria das quais está relacionada a processos de AV) e as importações da função de biblioteca.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import "pe" rule AVKiller_MmMapIoSpace { meta: description = "Rule to detect the AV Killer" author = "Kaspersky" copyright = "Kaspersky" version = "1.0" last_modified = "2025-05-14" hash = "a88daa62751c212b7579a57f1f4ae8f8" strings: $shellcode_template = {4? BA 00 00 40 75 00 65 48 8B} $ntoskrnl = "ntoskrnl.exe" $NtAddAtom = "NtAddAtom" $ioctl_mem_write = {9C 64 00 80} $ioctl_mem_read = {98 64 00 80} condition: pe.is_pe and pe.imports("kernel32.dll", "DeviceIoControl") and all of them } |
Vítimas
De acordo com nossa telemetria e informações coletadas de feeds públicos de inteligência contra ameaças, os adversários usam esse artefato desde pelo menos outubro de 2024. A maioria das vítimas afetadas está na Rússia, Bielorrússia, Cazaquistão, Ucrânia e Brasil.
Atribuição
Este malware foi usado recentemente em um ataque no Brasil para execução do ransomware MedusaLocker na infraestrutura de uma empresa. No entanto, esse tipo de malware é comum entre vários agentes de ameaças, inclusive vários grupos de ransomware e afiliados.
Conclusão e recomendações
Este incidente deixa lições valiosas. Em primeiro lugar: deve-se para proteger os servidores contra ataques de força bruta e restringir a exposição pública de protocolos de acesso remoto. Se a vítima tivesse limitado o acesso RDP e aplicado políticas de senha robustas, a violação inicial poderia ter sido evitada. Em segundo lugar: este incidente ressalta a necessidade da segurança em camadas. O malware foi capaz de desativar as defesas do sistema e permitir que os atacantes se movessem lateralmente pelas máquinas com facilidade. Para mitigar essas ameaças, os administradores do sistema devem implementar os seguintes mecanismos:
- Lista de permissão de aplicativos e aplicação estrita do acesso com privilégios mínimos.
- Segmentação e isolamento da rede para conter violações e limitar a movimentação lateral.
- Autenticação multifator (MFA) para todos os canais de acesso
- Gerenciamento regular de patches e verificação automatizada de vulnerabilidades.
- Sistemas de detecção e prevenção de intrusão (IDS/IPS) para identificar comportamentos anômalos.
- Ferramentas de detecção e resposta de endpoint (EDR) para monitoramento e correção em tempo
- Registro, monitoramento e alertas abrangentes para garantir a detecção rápida de incidentes.
- Avaliações de segurança periódicas e testes de intrusão para validar a eficácia dos controles.
Recentemente, notamos um aumento nos ataques envolvendo vários tipos de software que desativam AVs. Os serviços de proteção contra ameaças devem implementar mecanismos de autodefesa para evitar esses ataques. Isso inclui proteger os arquivos do aplicativo contra modificações não autorizadas, monitorar processos de memória e atualizar regularmente as regras de detecção nos dispositivos dos clientes.
Táticas, técnicas e procedimentos
As TTPs identificadas em nossa análise do malware estão listadas abaixo.
Tática | Técnica | ID |
Discovery | Process Discovery | T1057 |
Defense Evasion | Impair Defenses: Disable or Modify Tools | T1562.001 |
Defense Evasion | Impair Defenses: Indicator Blocking | T1562.006 |
Privilege Escalation | Create or Modify System Process: Windows Service | T1543.003 |
Impact | Service Stop | T1489 |
Indicadores de comprometimento
Driver vulnerável ThrottleBlood.sys
82ed942a52cdcf120a8919730e00ba37619661a3
Malware observado no incidente
f02daf614109f39babdcb6f8841dd6981e929d70 (haz8.exe)
c0979ec20b87084317d1bfa50405f7149c3b5c5f (All.exe)
Outras variantes do malware analisado
eff7919d5de737d9a64f7528e86e3666051a49aa
0a15be464a603b1eebc61744dc60510ce169e135
d5a050c73346f01fc9ad767d345ed36c221baac2
987834891cea821bcd3ce1f6d3e549282d38b8d3
86a2a93a31e0151888c52dbbc8e33a7a3f4357db
dcaed7526cda644a23da542d01017d48d97c9533
Driver de destruição: Como um driver legítimo está sendo usado para encerrar processos de antivírus (AV)