Códigos maliciosos em PowerShell

O PowerShell é uma ferramenta de linha de comando da Microsoft que permite que os usuários controlem e automatizem tarefas do sistema operacional Windows. Infelizmente, essa ferramenta também pode ser usada por hackers para executar códigos maliciosos, já que o PowerShell tem acesso a APIs do sistema e é capaz de executar comandos remotamente.

Os códigos maliciosos em PowerShell estão se tornando cada vez mais comuns e perigosos, já que muitas vezes são difíceis de detectar e podem se espalhar rapidamente. Esses códigos maliciosos podem realizar uma variedade de atividades maliciosas, incluindo o download e execução de arquivos maliciosos, a coleta de informações do sistema, a escalada de privilégios e a persistência.

O ID T1059.001 é uma sub técnica de ataque classificada pela matriz de adversários do MITRE ATT&CK, e está relacionada ao uso do PowerShell como um interpretador de comandos e scripts maliciosos.

Várias ferramentas de teste ofensivas baseadas em PowerShell estão disponíveis, incluindo Empire, PowerSploit, PoshC2 e PSAttack .

Na página da técnica é possível notar como os grupos APTs usam o PowerShell em suas campanhas de ataque.

  • APT19 usa comandos do PowerShell para executar payloads
  • APT28 baixa e executa scripts do PowerShell e executa comandos do PowerShell.
  • APT29 usa scripts codificados do PowerShell carregados nas instalações do CozyCar para baixar e instalar o SeaDuke. O APT29 também usou o PowerShell para criar novas tarefas em máquinas remotas, identificar definições de configuração, burlar defesas, exfiltrar dados e executar outros comandos.
  • APT3 usa o PowerShell em sistemas de vítimas para baixar e executar cargas úteis após a exploração.
  • APT32 usa ferramentas experimentais em PowerShell, one-liners do PowerShell e carregadores de shellcode para execução.

E muitos outros.

Ofuscação com base64

Esses tipos de comandos codificados em Base64 podem ser usados ​​por hackers para executar comandos maliciosos em um sistema sem serem detectados. Por esse motivo, é importante estar ciente desses tipos de comandos e adotar práticas de segurança adequadas, como limitar o uso do PowerShell a usuários autorizados, monitorar o uso de scripts maliciosos e usar soluções de segurança para detectar e bloquear códigos maliciosos.

A codificação em Base64 é usada para representar dados binários em uma forma de texto ASCII, facilitando a transmissão e armazenamento de dados em diferentes sistemas. No caso de comandos em PowerShell, a codificação em Base64 pode ser usada para ocultar comandos maliciosos, tornando-os mais difíceis de detectar por sistemas de segurança.

Base64 Encoded 

powershell.exe -NoP -NonI -W Hidden -Exec Bypass -Enc 'VwByAGkAdABlAC0ATwB1AHQAcAB1AHQAIAAiAEMAbwBtAGEAbgBkAG8AIABQAGUAcgBpAGcAbwBzAG8AIgA='

O comando acima incluindo o parâmetro -Enc, que é usado para especificar o comando codificado em Base64. Os outros parâmetros, como -NoP, -NonI e -W Hidden, são usados para ocultar a janela do PowerShell e ignorar políticas de execução, tornando a execução do comando mais discreta e potencialmente evitando a detecção por sistemas de segurança.

Base64 Expressions

Invoke-Expression ([System.Text.Encoding]::Unicode.GetString(([convert]::FromBase64String('VwByAGkAdABlAC0ATwB1AHQAcAB1AHQAIAAiAEMAbwBtAGEAbgBkAG8AIABQAGUAcgBpAGcAbwBzAG8AIgA='))))

Invoke-Expression, é usado para executar a expressão que é fornecida como um argumento. Nesse caso, a expressão é a string codificada em Base64, que é convertida em uma matriz de bytes, decodificada em Unicode e executada como um comando do PowerShell.

O valor base64 “VwByAGkAdABlAC0ATwB1AHQAcAB1AHQAIAAiAEMAbwBtAGEAbgBkAG8AIABQAGUAcgBpAGcAbwBzAG8AIgA=” representa o comando em PowerShell “Write-Output “Comando Perigoso”” codificado em Base64.

Para decodificar o valor Base64 é possível usar ferramentas online de decodificação de Base64 ou utilizar o comando Convert.FromBase64String no PowerShell:

$base64 = 'VwByAGkAdABlAC0ATwB1AHQAcAB1AHQAIAAiAEMAbwBtAGEAbgBkAG8AIABQAGUAcgBpAGcAbwBzAG8AIgA='
$bytes = [Convert]::FromBase64String($base64)
$command = [System.Text.Encoding]::Unicode.GetString($bytes)
Write-Host $comman
d

Codificador de base64

$command = ‘Write-Output “Comando Perigoso”‘
$bytes = [System.Text.Encoding]::Unicode.GetBytes($command)
$base64 = [Convert]::ToBase64String($bytes)

Então, como você pode se proteger contra códigos maliciosos em PowerShell?

  1. Implemente a política de segurança do PowerShell

Uma das primeiras coisas que você pode fazer para se proteger contra códigos maliciosos em PowerShell é implementar a política de segurança do PowerShell. Isso ajudará a garantir que o PowerShell esteja sendo usado apenas para fins legítimos e que scripts maliciosos sejam impedidos de serem executados.

  1. Restrinja o uso do PowerShell

Outra maneira de se proteger contra códigos maliciosos em PowerShell é restringir o uso do PowerShell. Isso pode ser feito por meio de políticas de segurança que limitam quem pode usar o PowerShell e como ele pode ser usado.

  1. Utilize soluções de segurança

Utilizar soluções de segurança pode ajudar a detectar e bloquear códigos maliciosos em PowerShell. Essas soluções incluem antivírus, firewalls e sistemas de detecção e prevenção de intrusões.

  1. Monitore o uso do PowerShell

Monitorar o uso do PowerShell em seus sistemas é uma maneira importante de identificar possíveis ameaças e atividades maliciosas. Monitore quem está usando o PowerShell e quais scripts estão sendo executados para identificar atividades suspeitas.

  1. Treine seus usuários

Treinar seus usuários para identificar possíveis ameaças e códigos maliciosos em PowerShell é uma maneira importante de aumentar a segurança de seus sistemas. Inclua treinamentos sobre como identificar códigos maliciosos em PowerShell e o que fazer caso uma ameaça seja identificada.

Em resumo, códigos maliciosos em PowerShell representam uma ameaça séria para sistemas e dados. No entanto, seguindo essas dicas e práticas recomendadas de segurança, você pode reduzir o risco de uma violação de segurança e proteger seus sistemas e dados de possíveis ameaças.

Referencia

Anúncio

Sobre Daniel Donda 549 Artigos
Olá, meu nome é Daniel Donda e sou especialista em cibersegurança, autor de livros, professor e palestrante. Saiba mais

Seja o primeiro a comentar

Faça um comentário

Seu e-mail não será divulgado.


*