Investigando a configuração do Trojan LuminosityLink Remote Access

esta postagem também está disponível em: 日本語 (Japonês)

nas últimas semanas, passei um tempo investigando a configuração incorporada do Trojan LuminosityLink Remote Access (RAT). Para aqueles que não sabem, LuminosityLink é uma família de malware que custa US $40 que pretende ser um utilitário de administração do sistema. No entanto, quando executado, o malware aproveita um keylogger muito agressivo, bem como uma série de outros recursos maliciosos que permitem que um invasor obtenha controle total sobre uma máquina vítima.

LuminosityLink 1

Figura 1 LuminosityLink site

a pedido de um colega de trabalho, foi-me pedido para extrair a configuração de um LuminosityLink exemplo, e enquanto eu poderia simplesmente ter executado o malware em uma área restrita do ambiente e puxou a configuração da memória, que eu escolhi para ver se eu poderia realizar a mesma ação contra o binário estático.Isso me levou a entender como a configuração é criptografada dentro do binário, bem como como analisar essa configuração. Criei um script para executar esta ação contra um exemplo de malware LuminosityLink inalterado, que compartilharei nesta postagem do blog. Além disso, olhei para as cerca de 18.000 amostras LuminosityLink que a Palo Alto Networks coletou ao longo do tempo e, usando esse script, consegui extrair as configurações de 14.700 amostras. (Esses dados podem ser encontrados na seção Apêndice deste post.)

Visão Geral do LuminosityLink

originalmente surgindo em maio de 2015, a popularidade do LuminosityLink tem aumentado, conforme mostrado no gráfico a seguir. Até o momento, a Palo Alto Networks rastreou aproximadamente 50.000 tentativas de infecções do LuminosityLink contra nossos clientes.

 LuminosityLink 2

Figura 2 Gráfico de autofoco de sessões LuminosityLink ao longo do tempo.

LuminosityLink atualmente é vendido por US $40 e pode ser comprado diretamente de seu autor. Este pacote permite que os invasores hospedem um servidor LuminosityLink, bem como gerem binários personalizados, que são ofuscados pelo ConfuserEx 0.4.0. ConfuserEx é um projeto de código aberto que obscurece o subjacente .NET code, tornando muito mais difícil para engenheiros reversos que o descompilam. Isso é importante observar para mais tarde, quando discutimos a determinação de como fazer engenharia reversa do processo de criptografia.

como mencionado anteriormente, várias opções de configuração estão incluídas, como podemos ver na captura de tela a seguir.

LuminosityLink 3

Figura 3-configuração do Cliente opções em LuminosityLink

uma Vez executado, os atacantes estão dada a diversidade de opções, incluindo keylogging, de área de trabalho remota, roubo de senha, e interagindo com um shell no dispositivo.

engenharia reversa a configuração

o primeiro passo na análise da configuração do LuminosityLink é extraí-lo estaticamente. Inicialmente, abri uma amostra limpa do LuminosityLink usando um programa chamado dnSpy para procurar pistas sobre onde a configuração pode ser armazenada. (Como um aparte rápido, eu recomendo o dnSpy, pois ele não só faz um ótimo trabalho de descompilar o binário. net fornecido, mas também vem equipado com um depurador embutido, que é fundamental para resolver problemas como o que estamos enfrentando.)

ao abrir inicialmente um binário de amostra, não esperava muito, pois sabia que a amostra estava ofuscada usando ConfuserEx. No entanto, olhando para os recursos da amostra, vi algumas strings que pareciam promissoras.

LuminosityLink 4

Figura 4 recurso Incorporado seqüências de caracteres em LuminosityLink

Como podemos ver, o malware contém um número de recursos que contém por sua vez, o que parece ser dados codificado em Base64. Os recursos” SMARTLOGS”,” XML “e” CONFIG ” contêm uma grande quantidade de dados, que, neste momento, ainda são desconhecidos. Infelizmente, decodificar essas strings resulta em lixo, o que provavelmente significa que alguma outra forma de criptografia está sendo usada por baixo.

continuei a investigar o código subjacente, que, embora ofuscado, ainda fornece uma ideia de alto nível do que várias classes estão fazendo. Usando namespaces importados, chamadas de API e certas strings não ofuscadas, podemos obter pistas sobre o que está acontecendo dentro do programa. Especificamente, vemos a classe fd() usando o namespace de ‘ System.Seguranca.Criptografia’, que certamente merece investigação, pois suspeitamos que a criptografia seja usada contra as cadeias de recursos referenciadas anteriormente.

LuminosityLink 5

Figura 5 namespace de Criptografia a ser usado por LuminosityLink

Como estamos a investigar mais sobre esta classe, vemos referências para as seguintes classes e funções:

  • MD5CryptoServiceProvider
  • ComputeHash
  • FromBase64String
  • RijndaelManaged

neste ponto, Eu virei para a minha depurador em uma tentativa de ver como essas seqüências foram tratados. Eu defino pontos de interrupção em várias chamadas mencionadas anteriormente. Especificamente, o ponto de interrupção na classe RijndaelManaged produz excelentes resultados.

 LuminosityLink 6

Figura 6 recuperação bem-sucedida da chave AES-128

podemos não apenas verificar se a criptografia AES-128 é usada, mas também verificar se a string de recurso “SMARTLOGS” está sendo usada. Também somos capazes de identificar a string que está sendo usada como a chave, que neste exemplo particular é “\\ecnOnuR\\noisreVtnerruC\\swodniW\\tfosorciM\\erawtfoS”. Uma investigação mais aprofundada revela que esta string é hash usando o algoritmo MD5. Os primeiros 15 bytes deste hash são concatenados com os 16 bytes inteiros do hash, seguidos por um byte nulo. Podemos replicar esse processo de descriptografia em Python, como tal,:

1
2
3
4
5
6
7
8
9
10

def decrypt_data(dados, key_string):
decoded_data = base64.b64decode(dados)
m = hashlib.o md5()
m.atualização(key_string)
md5 = m.digest()
chave = md5+md5+”\x00″
modo = AES.MODE_ECB
iv = ‘\x00’ * 16
e = AES.novo(de chave, de modo, iv)
retorno e.descriptografar(decoded_data)

podemos ainda verificar que isso é correto usando o código acima. No exemplo a seguir, a variável de dados foi definido com codificado em base64 seqüência de caracteres encontrada em SMARTLOGS de recursos”, e o key_string variável tenha sido definida para a inversão de chave de registo mencionada anteriormente.

1
2

>>> imprimir decrypt_data(dados, key_string)
172.16.1.100|11111|backup.dns.com|filename.exe|startup_name|folder_name|data_directory_name|backup_startup.exe|df5e0e1c667c399588b014cb9b4ae7b33c9c0b4cac9d4169f39197e41e9a43a4|BuildID|1idsnb|

Usando tentativa e erro, somos capazes de sucesso mapear cada variável testemunhado na configuração acima. A última variável prova ser bastante interessante, pois cada caractere, exceto ‘1’, mapeia para uma opção de configuração específica. O seguinte mapeamento foi determinado:

  • I: habilite a instalação/inicialização do cliente
  • d: Módulo de persistência do cliente: Proteja o binário do Cliente do Luminosity
  • s : Modo silencioso (Ocultar Luminosidade Janela no PC Cliente)
  • a : Proativa Anti-Malware: a Limpeza de Arquivos Maliciosos e acelerar o PC Cliente
  • n : economia de Energia: Impedir que o Modo de Dormir e desligar o Monitor após 15 minutos de inatividade
  • m : Remove o Arquivo após a Execução (Derreter)
  • v : Anti-as Máquinas Virtuais/Depuração
  • h : Ocultar arquivos e Diretórios
  • b : Cópia de segurança de Inicialização

Usando este conhecimento, podemos analisar a configuração acima, que produz os seguintes resultados.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

Domínio/IP: 172.16.1.100
Porta: 11111
Cópia de segurança de DNS: backup.dns.com
nome do arquivo: nome do arquivo.exe
nome de inicialização: startup_name
nome da pasta: folder_name
nome do Diretório de dados: data_directory_name
Backup Startup Exe: backup_startup.exe
Mutex: df5e0e1c667c399588b014cb9b4ae7b33c9c0b4cac9d4169f39197e41e9a43a4
Build ID: BuildID
Definições:
Ativar a Instalação do Cliente/

Cliente Persistência Módulo: Proteger da Luminosidade do Cliente Binário
Modo Silencioso (Ocultar Luminosidade Janela no PC Cliente)
Proativa Anti-Malware: Limpa Arquivos Maliciosos e acelerar o PC Cliente
Poupança de Energia: Impedir que o Modo de Dormir e desligar o Monitor após 15 minutos de inatividade
Remove o Arquivo após a Execução (Derreter)
Anti-as Máquinas Virtuais/Depuração
Ocultar arquivos e Diretórios
Cópia de segurança de Inicialização

Análise LuminosityLink Configurações em Escala

Usando este conhecimento, é criado um script para analisar a configuração de uma determinada amostra. O script procura strings que parecem ser codificadas com base64 com um comprimento maior que 50 e adota uma abordagem de Força bruta. Embora não seja elegante, ele faz o trabalho com bastante sucesso. O script pode ser baixado na seção Apêndice desta postagem do blog.

passando pelo repositório de amostras da Palo Alto Networks, encontramos cerca de 18.000 arquivos marcados como LuminosityLink. Para essas 18.000 amostras, aplicamos nosso script de extração e análise de configuração estática e recuperamos com sucesso cerca de 4.500 configurações. As amostras restantes foram embaladas além da rotina de ofuscação ConfuserEx integrada e, como tal, as strings de configuração raw não estavam presentes.

essas amostras foram executadas por meio de uma instância local da Sandbox de Cuco de código aberto, onde os lixões do processo foram extraídos. O mesmo script foi aplicado a esses depósitos de processo, onde pudemos obter mais 10.200 configurações, deixando-nos com um total de 14.700 configurações de Luminositilink analisadas.

como as amostras foram processadas, outras chaves foram descobertas para serem usadas pelo autor. As três cordas adicionais a seguir foram usadas para gerar as chaves para amostras LuminosityLink.

  • este conf’IG não contém nada de útil. Pare de agir como se você fosse legal descriptografando-o.
  • recursos.SMARTLOGS
  • especifique uma senha

parece que o autor de LuminosityLink não é sem senso de humor. Além disso, como analisamos amostras mais antigas, descobriu-se que a configuração fez uma mudança em algum momento entre fevereiro e junho deste ano. Menos opções estavam disponíveis na configuração de amostras mais antigas. O script fornecido explica essas diferenças e várias chaves usadas.

usando os dados agregados das 14.700 configurações, as seguintes estatísticas de alto nível foram retiradas:

LuminosityLink 7

Figure 7 Prevalence of enabled settings in LuminosityLink configurations

Top C2 TLDs/IP Addresses

  • ddnsnet
  • duckdnsorg
  • no-ipbiz
  • chickenkillercom
  • no-iporg
  • mooocom
  • fishdnscom
  • no-ipinfo
  • ignorelistcom
  • freednssu

Top Build IDs

  • HOME
  • Client
  • crtx1
  • M4CHINATION
  • CSGO
  • NEW
  • Slave
  • CAPO
  • Youtube
  • PROJECT.D

Top Executable Names

  • sysmon.exe
  • client.exe
  • helper.exe
  • repair.exe
  • winlogon.exe
  • svchost.exe
  • Luminosity.exe
  • WinCOMHost.exe
  • chrome.exe
  • windowsbootapp.exe

principais Portas

  • 6318
  • 1400
  • 1604
  • 1337
  • 3175
  • 22028
  • 9045
  • 2122
  • 100
  • 9999

A analisados dados de configuração, fornecido em formato de arquivo CSV, é ser livremente disponibilizados para a comunidade de segurança na esperança de que as proteções serão criados contra essa ameaça.

Conclusão

LuminosityLink, enquanto comercializado como um utilitário de administração de sistemas, é um formidável keylogger e backdoor utilizado por um grande número de criminosos. Até o momento, a Palo Alto Networks testemunhou mais de 50.000 tentativas de infecções por LuminosityLink, abrangendo 18.000 amostras únicas. O malware é barato e prontamente disponível para o público, tornando isso uma ameaça perigosa para organizações e indivíduos.

por amostras LuminosityLink de engenharia reversa, fomos capazes de extrair estaticamente e analisar a configuração incorporada, que por sua vez fornece informações valiosas sobre com quais hosts e portas o malware está configurado para se comunicar. Ele também fornece informações sobre proteções configuradas configuradas dentro do executável, bem como informações de instalação.

Palo Alto Networks clientes estão protegidos contra esta ameaça das seguintes formas:

Um Autofoco tag pode ser usada para controlar esta família de malware

  • Todos os LuminosityLink amostras são devidamente marcado como mal-intencionado em um Incêndio
  • identificados Todos os domínios são sinalizadas como malicioso
  • o tráfego de Rede está devidamente identificado e bloqueado como ameaça ID #14460 (LumonosityLinkRAT.Comando Gen e tráfego de controle)

Apêndice

um script de extração e análise para amostras LuminosityLink pode ser encontrado aqui.

um script a ser usado para analisar strings de configuração simples pode ser encontrado aqui.

um arquivo CSV contendo todos os dados de configuração extraídos do conjunto de amostras Palo Alto Networks pode ser encontrado aqui.

Receba atualizações de
Palo Alto
redes!

Inscreva-se para receber as últimas notícias, inteligência de ameaças cibernéticas e pesquisas de nós

ao enviar este formulário, você concorda com nossos Termos de uso e reconhece nossa Declaração de Privacidade.

Write a Comment

O seu endereço de email não será publicado.