Cadastre-se

RedTeam - Windows - 03/10/2025

Como alguns ransomwares abusam do icacls.exe durante um ataque

O icacls.exe é um utilitário nativo do Windows usado para exibir, modificar, fazer backup e restaurar permissões de arquivos e pastas. Ele substituiu ferramentas mais antigas como o cacls e xcacls, oferecendo mais opções e suporte a ACLs (Access Control Lists) modernas.

Principais funções do icacls

  • Exibir permissões: Mostra as permissões NTFS aplicadas a arquivos e diretórios.

  • Definir permissões: Permite conceder, negar ou remover permissões para usuários e grupos.

  • Herança: Controla se um arquivo ou pasta herda permissões do diretório pai.

  • Backup e restauração: Exporta as ACLs de um diretório/arquivo para um arquivo texto e permite restaurar depois.

  • Reset: Pode redefinir permissões de arquivos/pastas para o padrão herdado

Alguns dos parâmetros do icacls comumente explorados por malwares são /deny e /grant. Em várias campanhas, o malware também abusa do takeown (utilitário usado para assumir a propriedade de um arquivo) em combinação com icacls /reset para obter controle sobre serviços ou arquivos específicos.

Objetivos observados quando malwares executam icacls

  • Impedir que o próprio arquivo seja removido.

  • Garantir acesso total a um arquivo/pasta para evitar problemas durante o processo de criptografia (por exemplo, WannaCry, REvil).

  • Alterar privilégios de acesso de um determinado grupo de usuários sobre um arquivo/pasta.

  • Obter controle sobre determinados serviços do sistema.


Exemplos (comandos e propósito)

Impedir exclusão do arquivo (ex.: STOP Ransom)
icacls <arquivo> /deny S-1-1-0:(OI)(CI)(DE,DC)
(nega permissão de exclusão para Everyone no arquivo)

Garantir que nada interrompa o processo de criptografia (ex.: WannaCry & REvil)
icacls “C:\*” /grant Everyone:F /T /C /Q
(concede Controle Total a Everyone recursivamente — uso típico em payloads de ransomware para evitar erros durante a criptografia)

Stealer / loader (ex.: possíveis loaders como Ave Maria)
icacls “C:\ProgramData\{S91RLWPZ-SX2K-ISZN-IG1O-726R3DHAEBYB}” /inheritance:e /deny “Users:(R,REA,RA,RD)”
(ativa herança e nega leituras/execução ao grupo Users para impedir acesso legítimo)

Existem variações semelhantes que negam o acesso de grupos específicos à pasta alvo.

Tomar controle de um serviço (ex.: BitPaymer)
takeown.exe /F <nome_do_serviço>
icacls.exe <nome_do_serviço> /reset
(assume a propriedade e reseta ACLs para ganhar controle sobre o recurso)

Garantir execução por um grupo com privilégios elevados (ex.: ServHelper)

takeown.exe /A /F rfxvmt.dll
icacls.exe rfxvmt.dll /inheritance:d
icacls.exe rfxvmt.dll /setowner "NT SERVICE\TrustedInstaller"
icacls.exe rfxvmt.dll /grant "NT SERVICE\TrustedInstaller:F"
icacls.exe rfxvmt.dll /remove “NT AUTHORITY\SYSTEM”
icacls.exe rfxvmt.dll /grant “NT AUTHORITY\SYSTEM:RX”

(altera herança, dono e permissões para elevar o contexto de execução do arquivo)

Remover acesso ao SmartScreen (script completo observado em operações do REvil)
icacls “%systemroot%\System32\smartscreen.exe” /inheritance:r /remove *S-1-5-32-544 *S-1-5-11 *S-1-5-32-545 *S-1-5-18
(remove entradas de ACLs de grupos/contas específicos, potencialmente desabilitando verificações de segurança)


Observações

  • Esses comandos normalmente exigem privilégios administrativos; malwares frequentemente combinam takeown + icacls para contornar controles de acesso.

  • Uso indevido de icacls pode quebrar a segurança do sistema; em investigação de incidentes, preserve evidências antes de alterar ACLs.

  • Existem muitas variações desses padrões (negações, concessões, reset, alteração de dono, ativação/desativação de herança) usadas conforme o objetivo do atacante.

Mapeamento rápido de SIDs comuns

  • S-1-1-0 — Everyone

  • S-1-5-32-544 — Administrators

  • S-1-5-11 — Authenticated Users

  • S-1-5-32-545 — Users

  • S-1-5-18 — Local System

(Para a lista completa de SIDs e correspondências, consulte a documentação Microsoft ou uma referência atualizada.)