Dicas e truques para forense digital: Como encontrar a moeda da sorte de um intruso

Como você sabe, algumas pessoas jogam moedas em uma fonte ou mar para dar sorte ou para voltar a esse lugar mais tarde.

imagem

Portanto, os ciberataques fazem a mesma coisa - geralmente ocultam alguns pequenos agentes de malware na infraestrutura de TI para manter a possibilidade de voltar novamente.

Você conhece alguns destes métodos:

  • crie uma nova tarefa agendada para executar novamente um beacon de malware periodicamente;
  • crie uma nova chave de execução automática no registro do sistema;
  • crie um novo serviço de sistema com propriedade de inicialização automática;

Mas há mais um método para salvar as permissões de alto privilégio para usar ainda mais a infraestrutura de TI infectada - alterando as permissões do AdminSDholder .

Para entender a parte teórica do AdminSDholder, você pode verificar qualquer artigo da Internet. Como exemplo, tente este .
Em resumo - há um processo executado periodicamente nos Serviços do Active Directory que pode conceder permissões a um Usuário / Grupo para alterar grupos de segurança (por exemplo, Administradores de Domínio, Administradores de Esquema etc.). Para fazer isso, um invasor só precisa adicionar um usuário / grupo à ACL AdminSDHolder.

Portanto, se um invasor tiver permissões suficientes para alterar a ACL do AdminSDHolder, ele poderá criar uma nova conta de usuário e adicionar esse nome à ACL do AdminSDHolder.

No artigo que mencionei acima, você sabe como verificar o AD dessa coisa usando o Powershell.
Mas há outro método usando a regra YARA.

Sempre que alguém altera a ACL AdminSDHolder, um evento específico 4662 sendo criado no log de eventos de Segurança dos Controladores de Domínio:

imagem

Agora podemos usar as informações deste evento para criar uma regra YARA.

Aqui está:

rule adminSDholder { meta: maltype = "LuckyCoin" reference = "https://habr.com/ru/users/volnodumcev/" date = "17.05.2019" description = "YARA rule to find AdminSDholder being changed by a bad guy" strings: $hexEventID={ 36 12 00 00 00 00 00 00 20 80 } $object={ 7b 00 35 00 37 00 35 00 36 00 62 00 36 00 65 00 65 00 2d 00 65 00 62 00 61 00 31 00 2d 00 34 00 30 00 32 00 37 00 2d 00 38 00 32 00 39 00 64 00 2d 00 39 00 31 00 39 00 37 00 33 00 36 00 37 00 35 00 64 00 63 00 35 00 32 00 7d } $operation={ 7b 00 62 00 66 00 39 00 36 00 37 00 61 00 38 00 62 00 2d 00 30 00 64 00 65 00 36 00 2d 00 31 00 31 00 64 00 30 00 2d 00 61 00 32 00 38 00 35 00 2d 00 30 00 30 00 61 00 61 00 30 00 30 00 33 00 30 00 34 00 39 00 65 00 32 } condition: $hexEventID and $object and $operation } 

Portanto, você pode usar esta regra com Rekall / Volatility, como exemplo, para verificar o despejo de memória.

Mais uma vez obrigado pela atenção! Volto em breve com novas coisas boas!

Source: https://habr.com/ru/post/pt452254/


All Articles