INTRODUÇÃO
Durante o período entre 15 e 20 de janeiro, a Morphisec identificou uma campanha significativa direcionada a vários clientes alemães da indústria de manufatura. O pessoal alvo foi redirecionado para sites comprometidos que estavam, e ainda estão, entregando downloaders avançados sem arquivos que eventualmente levam a um cliente Osiris com um mini-Tor empacotado se comunicando com um painel C2 onion Tor.
Após uma investigação adicional e compartilhando alguns dos TTPs com a comunidade, fomos notificados de países-alvo adicionais, como os Estados Unidos e a Coréia, que receberam REvil e outras cargas úteis usando o mesmo mecanismo de entrega descrito no relatório.
Neste blog, vamos passar por cima de todas as etapas da cadeia de ataque na campanha alemã.
INTRODUÇÃO TÉCNICA
A cadeia de ataque é composta por cinco estágios principais;
- Um downloader de Javascript ofuscado de um site comprometido
- Um downloader Javascript de segundo estágio que cuida da persistência
- Um Powershell executado pelo Javascript que leva ao carregamento reflexivo do próximo estágio. Arquivo NET
- Um fileless. Carregador NET mapeado do registro e decodifica para um novo . Executável NET hollower na memória, que é responsável por esvaziar o cavalo de Tróia de Osíris em um processo legítimo do Windows.
- Osíris se conecta ao seu C2 com a ajuda de um pacote mini-Tor.
Figura 1: A cadeia de ataque de Osíris.
ACESSO INICIAL
A vítima recebe um link para um site comprometido que contém um link de download para um arquivo zip malicioso, que contém um arquivo JS. , a página da web e o nome do arquivo se traduzem em “acordo coletivo de remuneração de plantão ig metal”.
O download, bem como o resto da comunicação em cadeia de ataque, estará disponível apenas para um IP localizado na Alemanha.
Figura 2: O site comprometido.
A captura de tela acima é tirada do site comprometido.
FASE 1 – JAVASCRIPT DOWNLOADER
O arquivo JavaScript dentro do arquivo zip:
Figura 3: O arquivo JavaScript.
A captura de tela abaixo é uma visualização formatada do Javascript malicioso:
Figura 4: Uma visualização formatada do JavaScript malicioso
Como visto acima, o código Javascript é composto de código gerado por dicionário e inclui palavras reais para evitar a varredura estática de arquivos usada pelas soluções AV para detecção de ofuscação. É importante notar que, a cada novo download de javascript, o código JS não será exatamente o mesmo, mas terá uma estrutura semelhante.
Para desobscurecer o código incorporado em todos os estágios do Javascript, o seguinte trecho de código pode ser usado:
Figura 5: Desofuscando o JavaScript
Passo 2
A variável “prove” (a string longa ofuscada) na verdade contém o código Javascript ofuscado da próxima etapa incorporado que se desobscursa em:
Figura 6: A variável “prova”.
Observe que, para cada novo download de Javascript, o id exclusivo é representado pelo caminho do registro gerado dentro do “HKCU/<Linhas aleatórias 5>.” A função “criar” é então chamada com a execução do código Javascript na próxima etapa.
Passo 3
Como visto na captura de tela abaixo, o Javascript contém três domínios com os quais o código tenta se comunicar. Vale ressaltar que eles também estão comprometidos (esses domínios mudam a cada dois dias).
Figura 7: Os três domínios comprometidos com os quais o código se comunica.
O parâmetro para ‘pesquisa’ também é exclusivo por download. O script identifica se a máquina está localizada em um domínio gastando a variável de ambiente%USERDNSDOMAIN%. Dependendo do que recebe, ele envia uma solicitação de obtenção diferente para o site comprometido com uma alta possibilidade de um malware diferente.
FASE 2 – PERSISTÊNCIA JAVASCRIPT
O segundo estágio formatado Javascript é entregue apenas para endereços IP alemães. O código já inclui seu próximo estágio. Código NET, que será persistido no registro.
Figura 8: O segundo estágio formatado JavaScript.
Figura 9: O JavaScript executando Powershell de 32 bits
Como visto acima, o código Javascript executará o Powershell de 32 bits usando cmd. Ele identifica a arquitetura do sistema operacional validando a extensão do nome do diretório dos arquivos do programa.
POWERSHELL – CARREGAMENTO REFLEXIVO
O comando Powershell executado carrega reflexivamente o próximo estágio. Executável NET do registro representado por “HKCU:\SOFTWARE\<nome de usuário>1”, mas não antes de aplicar um algoritmo minimalista de substituição de deofuscação no valor do registro :
Figura 10: Carregamento reflexivo do próximo estágio.
Uma simples pesquisa no VirusTotal baseada na função de substituição “chba” levará a versões anteriores do Powershell que dependem de “HKCU:\SOFTWARE\<nome da máquina>1.”
. CARREGADOR LÍQUIDO
Como visto nos estágios anteriores, o . Carregador NET é um código de tamanho pequeno que é gravado no registro pelo segundo estágio Javascript e é carregado na memória pelo terceiro estágio Powershell reflective loader
Figura 11: O . Carregador NET
O . O carregador NET adicionará persistência adicional e será responsável por decodificar a próxima etapa. Variante NET hollower, que está localizada em “HKCU:\SOFTWARE\<nome da máquina>” (sem o 1).
Figura 12: O . Variante de oco NET.
O . O código NET em <nome de usuário> é obviamente muito maior do que o carregador, pois inclui tanto a funcionalidade de escavação quanto o código Osíris.
Figura 13: O . Código NET contendo escavação e Osíris.
Isso. O escavador NET injeta o executável Osiris em um executável legítimo “ImagingDevice” que vem pré-instalado com o Windows como parte do software Windows Photo Viewer.
Figura 14: O . Oco NET injetando Osíris.
OSIRIS TROJAN
Após o esvaziamento, o executável Osiris usa seu componente mini-Tor empacotado para se comunicar com um painel Tor. Como pode ser visto abaixo, o cavalo de Tróia bancário ainda implementa muitas de suas funcionalidades bancárias originais.
Figura 15: O executável Osiris usa um mini-Tor empacotado.
Figura 16: Osíris mantém alguma funcionalidade bancária.
Figura 17: Algumas funcionalidades bancárias em Osíris.
Arquivo de artefato – mini-Tor empacotado.
Figura 18: Um mini-Tor empacotado.
CONCLUSÃO
O cavalo de Tróia de Osíris atacando endereços IP alemães continua o uso histórico do cavalo de Tróia. A plataforma Morphisec bloqueia a Osíris com uma abordagem de negação padrão de confiança zero para a segurança de terminais, alimentada pela defesa de alvo em movimento. Os clientes da Morphisec estão, portanto, protegidos de Osíris, independentemente das técnicas de evasão de defesa que os autores implantem.
IOC:
EC936B6BB7497FFB11577C14A9AB2860EC1DD705DC18225BBDAB5BF57804BDBC – JS
72C5EEB8807A4576340485377CACC582A3CA651C4632DB06903C125BE6692968 – . Módulo NET <username1>
63C62D6086A6CF2FCBB22A16C06EB0BC870CDB2F0BB029390D3BC815C06A6C6B – . Módulo NET <nome de usuário>
2FC970B717486762F6C890F525329962662074EB632F0827C901FB1081CBD98F – Osíris
91F1023142B7BABF6FF75DAD984C2A35BDE61DC9E61F45483F4B65008576D581 – Minitor www.underregnbuen[.]dk/? p=5739 – o site comprometido
hxxp://ylnfkeznzg7o4xjf[.]onion/kpanel/connect.php – Osiris C2
FONTE: MORPHISEC