Pesquisadores descobrem a família de malware Shelby que abusa do GitHub para comando e controle
A família SHELBY mostra um exemplo preocupante de malware moderno com design modular, sofisticado e com um erro crítico de segurança (exposição do PAT), que pode ser explorado por terceiros ao acessar amostras enviadas a repositórios públicos.

Principais conclusões
- A família de malware SHELBY abusa do GitHub para comando e controle, roubando dados e recuperando comandos
- O design C2 do invasor tem uma falha crítica: qualquer pessoa com o token PAT pode controlar máquinas infectadas, expondo uma vulnerabilidade de segurança significativa
- Código não utilizado e carregamento dinâmico de carga útil sugerem que o malware está em desenvolvimento ativo, indicando que atualizações futuras podem resolver quaisquer problemas com versões contemporâneas
Resumo
Como parte de nossa pesquisa contínua sobre ameaças emergentes, analisamos um possível e-mail de phishing enviado de um endereço de e-mail pertencente a uma empresa de telecomunicações iraquiana e enviado a outros funcionários da mesma empresa.
O e-mail de phishing depende da vítima abrir o Details.zip
arquivo anexado e executar o binário contido, JPerf-3.0.0.exe
. Este binário utiliza o sistema de instalação orientado a script, Inno setup , que contém o aplicativo malicioso:
%AppData%\Local\Microsoft\HTTPApi
:HTTPApi.dll
(SHELBYC2)HTTPService.dll
(CARREGADOR SHELBY)Microsoft.Http.Api.exe
Microsoft.Http.Api.exe.config
O instalado Microsoft.Http.Api.exe
é um executável .NET benigno. Seu propósito principal é carregar lateralmente o malicioso HTTPService.dll
. Uma vez carregado, HTTPService.dll
atua como o carregador, iniciando a comunicação com o GitHub para seu comando e controle (C2).
O carregador recupera um valor específico do C2, que é usado para descriptografar o payload do backdoor, HTTPApi.dll
. Após a descriptografia, o backdoor é carregado na memória como um assembly gerenciado usando reflexão, permitindo que ele seja executado sem gravar no disco e evitando mecanismos de detecção tradicionais.

No momento em que este artigo foi escrito, tanto o backdoor quanto o loader tinham uma baixa taxa de detecção no VirusTotal.


Análise de código SHELBYLOADER
Ofuscação
Tanto o carregador quanto o backdoor são ofuscados com a ferramenta de código aberto Obfuscar , que emprega criptografia de strings como um de seus recursos. Para contornar essa ofuscação, podemos aproveitar o de4dot com parâmetros personalizados. O Obfuscar substitui strings por chamadas para uma função de descriptografia de strings, mas ao fornecer o token dessa função para o de4dot, podemos efetivamente desofuscar o código. Usando os parâmetros --strtyp
( o tipo de descriptografia de strings, no nosso caso delegate
) e --strtok
( o token do método de descriptografia de strings), podemos substituir essas chamadas de função por seus valores de texto simples correspondentes, revelando as strings originais no código.

Detecção de sandbox
O SHELBYLOADER utiliza técnicas de detecção de sandbox para identificar ambientes virtualizados ou monitorados. Uma vez executado, ele envia os resultados de volta para C2. Esses resultados são empacotados como arquivos de log, detalhando se cada método de detecção identificou com sucesso um ambiente de sandbox, por exemplo:

Técnica 1: Consulta WMI para informações do sistema
O malware executa uma consulta WMI ( Select * from Win32_ComputerSystem
) para recuperar detalhes do sistema. Ele então verifica os campos Fabricante e Modelo para indicadores de uma máquina virtual, como “VMware” ou “VirtualBox”.

Técnica 2: Enumeração de Processos
O malware verifica os processos em execução em busca de serviços conhecidos relacionados à virtualização, incluindo:
vmsrvc
vmtools
xenservice
vboxservice
vboxtray
A presença desses processos informa ao malware que ele pode estar sendo executado em um ambiente virtualizado.
Técnica 3: Verificações do sistema de arquivos
O malware procura a existência de arquivos de driver específicos comumente associados ao software de virtualização, como:
C:\Windows\System32\drivers\VBoxMouse.sys
C:\Windows\System32\drivers\VBoxGuest.sys
C:\Windows\System32\drivers\vmhgfs.sys
C:\Windows\System32\drivers\vmci.sys
Técnica 4: Análise do tamanho do disco
O malware verifica o tamanho do C:
volume. Se o tamanho for menor que 50 GB, ele pode inferir que o ambiente é parte de uma sandbox, pois muitas máquinas virtuais são configuradas com tamanhos de disco menores para fins de teste.

Técnica 5: Verificação do Processo Parental
O malware examina seu processo pai. Se o processo pai não for explorer.exe
, pode indicar execução dentro de um ambiente de análise automatizado em vez de um cenário típico controlado pelo usuário.

Técnica 6: Detecção de desvio do tempo de sono
O malware emprega verificações de tempo para detectar se suas funções de sono ou atraso estão sendo aceleradas, uma técnica comum usada por sandboxes para acelerar a análise. Desvios significativos nos tempos de sono esperados podem revelar um ambiente de sandbox.

Técnica 7: Consulta WMI para controlador de vídeo
O malware executa uma consulta WMI (SELECT * FROM Win32_VideoController) para recuperar informações sobre o controlador de vídeo do sistema. Ele então compara o nome do controlador de vídeo com valores conhecidos associados a máquinas virtuais: virtual
or vmware
or vbox
.

Funcionalidade principal
O código do carregador do malware começa inicializando diversas variáveis dentro de seu construtor de classe principal. Essas variáveis incluem:
- Um nome de conta GitHub
- Um nome de repositório privado
- Um Token de Acesso Pessoal (PAT) para autenticação e acesso ao repositório
Além disso, o malware configura dois temporizadores, que são usados para acionar ações específicas em intervalos predefinidos.

Um dos timers é configurado para disparar um método específico 125 segundos após a execução. Quando invocado, esse método estabelece persistência no sistema infectado adicionando uma nova entrada à chave do Registro do Windows SOFTWARE\Microsoft\Windows\CurrentVersion\Run
. Uma vez que o método é disparado e o mecanismo de persistência é executado com sucesso, o timer é impedido de disparar mais.

Este método usa uma variável inteira para indicar o resultado de sua operação. A tabela a seguir descreve cada valor possível e seu significado:
EU IA | Descrição |
---|---|
1 | Persistência definida com sucesso |
2 | Persistência já definida |
8 | Não é possível adicionar uma entrada na chave |
9 | Binário não encontrado no disco |
Esse valor inteiro é reportado ao C2 durante seu primeiro registro no C2, permitindo que os invasores monitorem o sucesso ou a falha do mecanismo de persistência no sistema infectado.
O segundo temporizador é configurado para disparar um método responsável por carregar o backdoor, que é executado 65 segundos após o malware iniciar. Primeiro, o malware gera um hash MD5 com base em uma combinação de informações específicas do sistema. Os dados usados para criar o hash são formatados da seguinte forma, com cada componente separado por uma barra( /
):
- O número de processadores disponíveis no sistema.
- O nome da máquina (nome do host).
- O nome de domínio associado à conta de usuário.
- O nome de usuário do usuário conectado no momento.
- O número total de unidades lógicas presentes no sistema.

Um subconjunto desse hash é então extraído e usado como um identificador único para a máquina infectada. Esse identificador serve como uma maneira para os invasores rastrearem e gerenciarem sistemas comprometidos dentro de sua infraestrutura.
Após gerar o identificador exclusivo, o malware envia um novo commit para o repositório myToken usando uma solicitação HTTPS. O commit inclui um diretório nomeado após o identificador exclusivo, que contém um arquivo chamado Info.txt
. Este arquivo armazena as seguintes informações sobre o sistema infectado:
- O nome de domínio associado à conta de usuário.
- O nome de usuário do usuário conectado no momento.
- O log dos resultados da detecção de sandbox detalhando quais técnicas foram bem-sucedidas ou falharam.
- O sinalizador de persistência (conforme descrito na tabela acima) indica o resultado do mecanismo de persistência.
- A data e hora atuais do evento de sinalização

O malware primeiro tenta enviar um commit para o repositório sem usar um proxy. Se essa tentativa inicial falhar, ele volta a usar o proxy configurado pelo sistema para sua comunicação.
Após o primeiro beacon e o registro bem-sucedido da vítima, o malware tenta acessar o mesmo diretório do repositório GitHub que ele criou anteriormente e baixar um arquivo chamado License.txt
(não observamos nenhuma instabilidade no intervalo de verificação, mas o servidor conseguiu lidar com isso). Se presente, esse arquivo contém um valor de 48 bytes, que é usado para gerar uma chave de descriptografia AES. Esse arquivo é carregado pelo backend do invasor somente após a validação de que o malware não está sendo executado em um ambiente sandbox. Isso garante que apenas infecções validadas recebam a chave e escalem a cadeia de execução para o backdoor.

O malware gera uma chave AES e um vetor de inicialização (IV) a partir do conteúdo de License.txt
. Ele primeiro faz o hash do valor de 48 bytes usando SHA256, então usa o hash resultante como a chave e os primeiros 16 bytes como o IV.

Ele prossegue para descriptografar o arquivo HTTPApi.dll
, que contém o payload do backdoor. Após a descriptografia, o malware usa o Assembly.Load
método para carregar reflexivamente o backdoor na memória. Essa técnica permite que o malware execute o backdoor descriptografado diretamente, sem gravá-lo no disco.

Mecanismo de chaveamento baseado em DNS
Outra variante do SHELBYLOADER usa uma abordagem diferente para registro e recuperação da sequência de bytes usada para gerar a chave AES e IV.
Primeiro, o malware executa os mesmos métodos anti-sandboxing, criando uma sequência de 1
ou 0
dependendo se um sandbox é detectado para cada técnica.
Para seu registro C2, o malware cria um subdomínio arthurshelby.click
com três partes: o primeiro subdomínio é uma string estática ( s
), o segundo subdomínio é o identificador exclusivo codificado em Base32 e o terceiro subdomínio é uma string concatenada no formato DomainName\HostName >> Anti-Sandboxing Results >> Persistence Flag
codificado em base32.
Por exemplo, um domínio completo pode parecers.grldiyrsmvsggojzmi4wmyi.inevyrcfknfvit2qfvcvinjriffe6ib6hyqdambqgaydambahy7cama.arthurshelby.click

Depois disso, o malware executa várias consultas DNS para subdomínios de arthurshelby.click
. Os endereços IP retornados dessas consultas são concatenados em uma sequência de bytes, que é então usada para gerar a chave AES para descriptografar o backdoor, seguindo o mesmo processo descrito anteriormente.
Os subdomínios seguem este formato:
- O primeiro subdomínio é
l<index>
, onde o índice corresponde à ordem das chamadas DNS (por exemplo,l1
,l2
, etc.), garantindo que a sequência de bytes seja montada corretamente. - O segundo subdomínio é o identificador exclusivo codificado em Base32.

Análise de código SHELBYC2
O backdoor começa regenerando o mesmo identificador exclusivo criado pelo carregador. Ele faz isso calculando um hash MD5 da string exata específica do sistema usada anteriormente. O backdoor então cria um Mutex para garantir que apenas uma instância do malware seja executada na máquina infectada. O Mutex é nomeado adicionando a string Global\GHS
ao identificador exclusivo.

Após 65 segundos, o backdoor executa um método que coleta as seguintes informações do sistema:
- identidade do usuário atual
- versão do sistema operacional
- o ID do processo do malware
- nome da máquina
- diretório de trabalho atual
Curiosamente, essas informações coletadas não são usadas localmente nem exfiltradas para o servidor C2. Isso sugere que o código pode ser um código morto deixado para trás durante o desenvolvimento ou que o malware ainda está em desenvolvimento ativo, com planos potenciais para utilizar esses dados em versões futuras.

O malware então carrega o timestamp atual para um arquivo chamado Vivante.txt no repositório myGit dentro de seu diretório exclusivo (nomeado usando o identificador exclusivo do sistema). Esse timestamp serve como o último horário de beacon, permitindo que os invasores monitorem a atividade do malware e confirmem que o sistema infectado ainda está ativo. A palavra “Vivante” se traduz em “vivo” em francês, o que reflete o papel do arquivo como um indicador de pulsação para a máquina comprometida.
Em seguida, o malware tenta baixar o arquivo Command.txt
, que contém uma lista de comandos emitidos pelo operador para execução no sistema infectado.
Se Command.txt
não contiver comandos, o malware verifica se há comandos em outro arquivo chamado Broadcast.txt
. Ao contrário de Command.txt
, esse arquivo está localizado fora do diretório do malware e é usado para transmitir comandos para todos os sistemas infectados simultaneamente. Essa abordagem permite que o invasor execute operações simultaneamente em várias máquinas comprometidas, agilizando o controle em larga escala.
Tabela de manipulação de comandos:
Os comandos no Command.txt
arquivo podem ser comandos manipulados ou comandos do sistema executados com o Powershell. A seguir está uma descrição de cada comando manipulado.
/download
Este comando baixa um arquivo de um repositório GitHub para a máquina infectada. Ele requer dois parâmetros:
- O nome do arquivo armazenado no repositório GitHub.
- O caminho onde o arquivo será salvo na máquina infectada.

/carregar
Este comando carrega um arquivo da máquina infectada para o repositório GitHub. Ele pega um parâmetro: o caminho do arquivo a ser carregado.

/dlextrair
Este comando baixa um arquivo zip do repositório GitHub (semelhante ao /download
), extrai seu conteúdo e o salva em um diretório especificado na máquina.

/evocar
Este comando é usado para carregar um binário .NET reflexivamente; ele usa dois parâmetros: o primeiro parâmetro é o caminho de um binário .NET criptografado com AES baixado anteriormente para a máquina infectada, o segundo parâmetro é um valor usado para derivar o AES e o IV, semelhante a como o carregador carrega o backdoor.
Este comando carrega reflexivamente um binário .NET similar a como o SHELBYLOADER carrega o backdoor. Ele requer dois parâmetros:
- O caminho para um binário .NET criptografado em AES baixado anteriormente para a máquina infectada.
- Um valor usado para derivar a chave AES e IV.

Comandos do sistema
Qualquer comando que não comece com um dos acima é tratado como um comando do PowerShell e executado adequadamente.

Comunicação
O malware não usa a ferramenta Git no backend para enviar commits. Em vez disso, ele cria solicitações HTTP para interagir com o GitHub. Ele envia um commit para o repositório usando um objeto JSON com a seguinte estrutura:
{
"message": "Commit message",
"content": "<base64 encoded content>",
"sha": "<hash>"
}
O malware define cabeçalhos HTTP específicos para a solicitação, incluindo:
- Aceitar:
application/vnd.github.v3+json
- Tipo de conteúdo:
application/json
- Autorização:
token <PAT_token>
- Agente do usuário:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36

A solicitação é enviada ao ponto de extremidade da API do GitHub, construído da seguinte maneira:
https://api.github.com/repos/<owner>/<repo>/contents/<unique identifier>/<file>
O Personal Access Token (PAT) necessário para acessar o repositório privado está embutido no binário. Isso permite que o malware autentique e execute ações no repositório sem usar a cadeia de ferramentas padrão do Git.

A maneira como o malware é configurado significa que qualquer um com o PAT (Personal Access Token) pode teoricamente buscar comandos enviados pelo invasor e acessar saídas de comando de qualquer máquina da vítima. Isso ocorre porque o token PAT é incorporado no binário e pode ser usado por qualquer um que o obtenha.
Conclusão da família SHELBY
Embora a infraestrutura C2 tenha sido projetada de forma exótica, o invasor ignorou os riscos e implicações significativos dessa abordagem.
Acreditamos que usar esse malware, seja por uma equipe vermelha autorizada ou um ator malicioso, constituiria negligência. Ele permite que qualquer vítima transforme o PAT incorporado em uma arma e assuma o controle de todas as infecções ativas. Além disso, se uma vítima fizer upload de amostras para plataformas como VirusTotal ou MalwareBazaar, qualquer terceiro poderá acessar dados relacionados à infecção ou assumir o controle das infecções inteiramente.
Análise de campanha REF8685
O Elastic Security Labs descobriu o REF8685 por meio de coleta e análise de rotina de fontes de dados de terceiros. Ao estudar a intrusão do REF8685, identificamos um carregador e um implante C2 que determinamos serem novos, o que nos levou a lançar esta análise detalhada de malware e intrusão.
As cargas maliciosas foram entregues a uma telecom sediada no Iraque por meio de um e-mail de phishing altamente direcionado enviado de dentro da organização visada. O texto do e-mail é uma discussão entre engenheiros sobre as especificações técnicas do gerenciamento da rede. Com base no conteúdo e no contexto do e-mail, não é provável que essa isca tenha sido criada externamente, indicando o comprometimento de endpoints de engenheiros, servidores de e-mail ou ambos.
Dears,
We would appreciate it if you would check the following alarms on Core Network many (ASSOCIATION) have been flapped.
Problem Text
*** ALARM 620 A1/APT "ARHLRF2SPX1.9IP"U 250213 1406
M3UA DESTINATION INACCESSIBLE
DEST SPID
2-1936 ARSMSC1
END
Problem Text
*** ALARM 974 A1/APT "ARHLRF1SPX1.9IP"U 250213 1406
M3UA DESTINATION INACCESSIBLE
DEST SPID
2-1936 ARSMSC1
END
…
Este e-mail contém uma chamada para ação para abordar alarmes de rede e um anexo compactado chamado details.zip
. Dentro desse arquivo zip há um arquivo de texto contendo os logs endereçados no e-mail e um executável do Windows ( JPerf-3.0.0.exe
), que inicia a cadeia de execução, resultando na entrega do implante SHELBYC2, fornecendo acesso remoto ao ambiente.
Embora não observado na intrusão REF8685, deve-se notar que o VirusTotal mostra que JPerf-3.0.0.exe
( feb5d225fa38efe2a627ddfbe9654bf59c171ac0742cd565b7a5f22b45a4cc3a ) foi incluído em um arquivo compactado separado ( JPerf-3.0.0.zip
) e também enviado do Iraque. Não está claro se isso é da mesma vítima ou de outra nesta campanha. Uma pesquisa de similaridade de arquivo também identifica um segundo implante nomeado Setup.exe
com um arquivo compactado adicional ( 5c384109d3e578a0107e8518bcb91cd63f6926f0c0d0e01525d34a734445685c ).
A análise desses arquivos ( JPerf-3.0.0.exe
e Setup.exe
) revelou o uso do GitHub para C2
e mecanismos de recuperação de chaves AES (mais sobre isso nas seções de análise de malware). As contas do Github ( arthurshellby
e johnshelllby
) usadas para o malware REF8685 eram maliciosas e foram encerradas pelo Github.
Vale destacar que Arthur e John Shelby são personagens da série de televisão britânica de drama policial Peaky Blinders . O programa esteve em produção de 2013 a 2022.
O domínio arthurshelby[.]click
apontava para 2.56.126[.]151
, um servidor hospedado pela Stark Industries (AS44477). Este provedor de hospedagem VPS foi usado para serviços de proxy em outros ataques cibernéticos de larga escala. Este servidor tem resoluções sobrepostas para:
arthurshelby[.]click
[REDACTED]telecom[.]digital
speed-test[.]click
[REDACTED]airport[.]cloud
[REDACTED]airport[.]pro
![Cronograma de resolução de DNS para 2.56.126[.]151](https://www.elastic.co/security-labs/_next/image?url=%2Fsecurity-labs%2Fassets%2Fimages%2Fthe-shelby-strategy%2Fimage19.png&w=3840&q=90)
O arquivo compactado e os domínios C2 de uma das amostras SHELBYLOADER são nomeados em homenagem à [REDACTED] Telecom, uma empresa de telecomunicações sediada no Iraque. O mapa de cobertura da [REDACTED] se concentra na região do Curdistão iraquiano no norte e leste do país.
“Sharjaairport” indica uma provável terceira vítima visada. O Aeroporto Internacional [REDIGIDO] ([REDIGIDO]) é um aeroporto internacional especializado em frete aéreo nos Emirados Árabes Unidos. Fica a 14,5 milhas (23,3 km) do Aeroporto Internacional de Dubai (DXB).
![Cronograma de resolução de DNS para [REDIGIDO]aeroporto[.]nuvem](https://www.elastic.co/security-labs/_next/image?url=%2Fsecurity-labs%2Fassets%2Fimages%2Fthe-shelby-strategy%2Fimage29.png&w=3840&q=90)
[REDACTED]airport[.]cloud
resolvido para um novo servidor, 2.56.126[.]157
, por um dia em 21 de janeiro de 2025. Depois, ele apontou para o Google DNS, o servidor legítimo [REDIGIDO] do Aeroporto e, finalmente, um endereço de estacionamento Namecheap. O 2.56.126[.]157
servidor, Stark Industries (AS44477) hospedado, também hospeda [REDACTED]-connect[.]online
, [REDIGIDO] é o código do aeroporto para o Aeroporto Internacional [REDIGIDO].
O domínio [REDACTED]airport[.]cloud
tem um subdomínio portal.[REDACTED]airport[.]cloud
que apontou brevemente para 2.56.126[.]188
de 23 a 25 de janeiro de 2025. Ele então direcionou o tráfego para 172.86.68[.]55
até o momento da redação deste artigo.
Os pivôs de hash de banner revelam uma combinação adicional de servidor-domínio: 195.16.74[.]138
, [REDACTED]-meeting[.]online
.
O 172.86.68[.].55
servidor também hospeda o mail.[REDACTED]tell[.]com
, um aparente domínio de phishing que tem como alvo nossa vítima original.
![Cronograma de resolução de DNS para 172.86.68[.].55](https://www.elastic.co/security-labs/_next/image?url=%2Fsecurity-labs%2Fassets%2Fimages%2Fthe-shelby-strategy%2Fimage11.png&w=3840&q=90)
Uma página de login da web foi hospedada em hxxps://portal.[REDACTED]airport[.]cloud/Login
( VirusTotal ).
Avaliamos que os invasores transformaram esses dois subdomínios em armas para obter credenciais de login na nuvem. Depois que essas credenciais foram protegidas (no caso da [REDIGIDO] Telecom), os invasores acessaram o e-mail na nuvem da vítima e criaram um phishing altamente direcionado transformando em armas threads de e-mail internos em andamento.
Esse e-mail interno transformado em arma foi usado para re-phishing e chegar aos endpoints das vítimas.
Todos os domínios associados a esta campanha utilizaram certificações ZeroSSL e estavam na infraestrutura da Stark Industries.
O modelo Diamond de análise de intrusão
O Elastic Security Labs utiliza o Diamond Model para descrever relacionamentos de alto nível entre adversários, capacidades, infraestrutura e vítimas de intrusões. Enquanto o Diamond Model é mais comumente usado com intrusões únicas, e alavancando Activity Threading (seção 8) como uma maneira de criar relacionamentos entre incidentes, uma abordagem centrada no adversário (seção 7.1.4) permite um único diamante, embora desorganizado.

REF8685 e MITRE ATT&CK
A Elastic usa a estrutura MITRE ATT&CK para documentar táticas, técnicas e procedimentos comuns que ameaças persistentes avançadas usam contra redes corporativas.
Táticas
Táticas representam o porquê de uma técnica ou subtécnica. É o objetivo tático do adversário: a razão para executar uma ação.
Técnicas
Técnicas representam como um adversário atinge um objetivo tático executando uma ação.
- Carregamento de código reflexivo
- Phishing
- Arquivos ou informações ofuscadas
- Interpretador de comando e script
- Exfiltração sobre o canal C2
Regra YARA
A Elastic Security criou regras YARA para identificar essa atividade. Abaixo estão as regras YARA para identificar os malwares SHELBYC2 e SHELBYLOADER:
rule Windows_Trojan_ShelbyLoader {
meta:
author = "Elastic Security"
creation_date = "2025-03-11"
last_modified = "2025-03-25"
os = "Windows"
arch = "x86"
category_type = "Trojan"
family = "ShelbyLoader"
threat_name = "Windows.Trojan.ShelbyLoader"
license = "Elastic License v2"
strings:
$a0 = "[WARN] Unusual parent process detected: "
$a1 = "[ERROR] Exception in CheckParentProcess:" fullword
$a2 = "[INFO] Sandbox Not Detected by CheckParentProcess" fullword
$b0 = { 22 63 6F 6E 74 65 6E 74 22 3A 20 22 2E 2B 3F 22 }
$b1 = { 22 73 68 61 22 3A 20 22 2E 2B 3F 22 }
$b2 = "Persist ID: " fullword
$b3 = "https://api.github.com/repos/" fullword
condition:
all of ($a*) or all of ($b*)
}
rule Windows_Trojan_ShelbyC2 {
meta:
author = "Elastic Security"
creation_date = "2025-03-11"
last_modified = "2025-03-25"
os = "Windows"
arch = "x86"
category_type = "Trojan"
family = "ShelbyC2"
threat_name = "Windows.Trojan.ShelbyC2"
license = "Elastic License v2"
strings:
$a0 = "File Uploaded Successfully" fullword
$a1 = "/dlextract" fullword
$a2 = "/evoke" fullword
$a4 = { 22 73 68 61 22 3A 20 22 2E 2B 3F 22 }
$a5 = { 22 2C 22 73 68 61 22 3A 22 }
condition:
all of them
}
Observações
Todos os observáveis também estão disponíveis para download nos formatos ECS e STIX em um pacote zip combinado.
Os seguintes observáveis foram discutidos nesta pesquisa.
Observável | Tipo | Nome | Referência |
---|---|---|---|
0e25efeb4e3304815f9e51c1d9bd3a2e2a23ece3a32f0b47f829536f71ead17a | SHA-256 | details.zip | Arquivo zip de isca |
feb5d225fa38efe2a627ddfbe9654bf59c171ac0742cd565b7a5f22b45a4cc3a | SHA-256 | JPerf-3.0.0.exe | |
0354862d83a61c8e69adc3e65f6e5c921523eff829ef1b169e4f0f143b04091f | SHA-256 | HTTPService.dll | CARREGADOR SHELBY |
fb8d4c24bcfd853edb15c5c4096723b239f03255f17cec42f2d881f5f31b6025 | SHA-256 | HTTPApi.dll | SHELBYC2 |
472e685e7994f51bbb259be9c61f01b8b8f35d20030f03215ce205993dbad7f5 | SHA-256 | JPerf-3.0.0.zip | Arquivo zip de isca |
5c384109d3e578a0107e8518bcb91cd63f6926f0c0d0e01525d34a734445685c | SHA-256 | Setup.exe | |
e51c6f0fbc5a7e0b03a0d6e1e1d26ab566d606b551c785bf882e9a02f04c862b | SHA-256 | Arquivo zip de isca | |
github[.]com/johnshelllby | URL | Nome da conta GitHub – C2 | |
github[.]com/arturshellby | URL | Nome da conta GitHub – C2 | |
arthurshelby[.]click | nome de domínio | Domínio DNS | |
speed-test[.]click | nome de domínio | ||
2.56.126[.]151 | IPv4 | ||
2.56.126[.]157 | IPv4 | ||
2.56.126[.]188 | IPv4 | ||
172.86.68[.]55 | IPv4 | ||
195.16.74[.]138 | IPv4 |