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)
(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+icaclspara contornar controles de acesso. -
Uso indevido de
icaclspode 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.)