Operação INJ3CTOR3 abusa de servidores Asterisk para monetizar chamadas VoIP

Campanha explorou falha de bypass de autenticação no Sangoma FreePBX para assumir painéis administrativos, instalar web shells em PHP e usar extensões SIP comprometidas em chamadas tarifadas.

ComponenteServidores SIP/VoIP com Sangoma FreePBX gerenciando Asterisk, incluindo instâncias vulneráveis do FreePBX Framework.
VetorVarredura de sistemas SIP expostos, identificação de versões vulneráveis e exploração de CVE-2019-19006 por manipulação do parâmetro de senha como elemento de array no fluxo de login.
ImpactoBypass de autenticação com sessão administrativa, execução de ação via módulo administrativo, upload de web shells em PHP, leitura de arquivos de configuração do Asterisk e abuso de extensões para chamadas de saída.
PrioridadeCorrigir o FreePBX contra CVE-2019-19006, restringir exposição administrativa, auditar web shells, revisar arquivos de configuração acessados e verificar chamadas anômalas por prefixo, destino e extensão.
ArtefatosUso observado de SIPvicious, módulo svmap, módulo asterisk-cli, web shells PHP codificados em base64, referências a rr.php, yokyok, config.php, /etc/amportal.conf e /etc/asterisk/sip_additional.conf.
MonetizaçãoAcesso VoIP comprometido foi usado para testar prefixos de chamada e gerar tráfego para números de tarifa premium internacional, com lucro dependente do volume e duração das ligações.
Resumo técnico

A operação INJ3CTOR3 descreve uma campanha voltada a servidores SIP e ambientes Asterisk administrados por Sangoma FreePBX. O fluxo observado começa com descoberta de sistemas VoIP expostos, avança para exploração de uma falha de bypass de autenticação no painel FreePBX e termina com persistência por web shells em PHP. O objetivo operacional não é apenas obter acesso ao servidor, mas transformar a capacidade legítima de originar chamadas em uma fonte de monetização. Essa característica torna a detecção mais difícil, porque o tráfego de voz e as chamadas de saída fazem parte da função normal de um PBX, ainda que o padrão de uso passe a favorecer números, prefixos e rotas controlados pelo operador da intrusão.

A vulnerabilidade central é CVE-2019-19006, publicada em novembro de 2019 e associada ao fluxo de autenticação do FreePBX Framework. Em versões vulneráveis, a função de login cria uma sessão para o usuário informado antes de invalidá-la quando a senha não corresponde ao valor armazenado. Como o parâmetro de senha não recebe validação adequada durante o processamento, o envio desse parâmetro em formato de array provoca falha antes da remoção da sessão. O resultado prático é a retenção de uma sessão válida para o usuário escolhido, inclusive admin, sem necessidade de conhecer a senha real. A partir dessa sessão, o atacante passa a operar dentro do contexto administrativo do FreePBX.

Fluxo técnico

A cadeia começa com varredura de sistemas SIP. O conjunto SIPvicious, conhecido em auditorias de VoIP, aparece no fluxo por meio do módulo svmap, usado para localizar dispositivos e levantar informações relevantes, como versões e indícios de FreePBX vulnerável. Depois da identificação do alvo, a exploração de CVE-2019-19006 permite acesso administrativo ao painel. A campanha não depende do valor da senha enviada, porque a condição explorada está na forma como o parâmetro é tratado pelo servidor. O dado relevante para defesa é que tentativas de login com estrutura anômala no parâmetro de senha, associadas a sessões administrativas inesperadas, podem indicar exploração ou teste da falha.

Com a sessão administrativa obtida, o operador utiliza funcionalidade disponível no painel para acionar o módulo asterisk-cli e executar uma ação no sistema comprometido. Em seguida, é carregado um web shell PHP inicial, codificado em base64. Esse primeiro artefato funciona como ponto de apoio para ler arquivos de gerenciamento do Asterisk, incluindo /etc/amportal.conf e /etc/asterisk/sip_additional.conf. Esses arquivos podem conter credenciais do banco de dados do FreePBX e senhas de extensões SIP. O acesso a essas informações amplia o controle sobre o ambiente, porque permite mapear extensões, autenticação interna e configuração de chamadas sem depender apenas da sessão web inicial.

Após a etapa inicial, a campanha baixa arquivos PHP adicionais também codificados em base64 a partir de serviço público de colagem de texto. Um deles decodifica para um web shell protegido por senha e com capacidade de recuperar credenciais do banco interno do Asterisk e da interface REST. Outro inclui validação por endereço IP de origem e responde com falso erro HTTP 403 para acessos não autorizados, reduzindo a exposição casual do artefato. Também foi observada alteração em .htaccess para permitir acesso alternativo a config.php, criando rotas menos óbvias para interagir com componentes do servidor comprometido.

Superfície afetada

A superfície principal é formada por servidores Sangoma FreePBX que administram Asterisk e permanecem acessíveis pela rede com versões vulneráveis ao bypass de autenticação. O risco aumenta quando a interface administrativa está exposta à internet, quando o painel aceita tentativas de login de origens amplas e quando arquivos sensíveis do Asterisk ficam legíveis pelo usuário ou processo alcançado após a exploração. O impacto também depende da configuração de chamadas de saída, permissões por extensão, rotas internacionais e controles de tarifação aplicados pelo ambiente de telefonia.

O efeito técnico confirmado inclui controle administrativo do FreePBX, upload de web shells, leitura de arquivos de configuração e uso das extensões para chamadas. O abuso observado testa prefixos de saída e tenta alcançar números específicos, possivelmente para descobrir rotas funcionais até números controlados pelo operador. A monetização aparece no uso de números de tarifa premium internacional, nos quais o proprietário do número recebe pagamento por minuto. Em larga escala, múltiplos PBXs comprometidos podem gerar volume suficiente para transformar uma falha de administração VoIP em fraude de telecomunicações.

  • Painéis FreePBX acessíveis pela internet e sem correção para CVE-2019-19006.
  • Servidores Asterisk com rotas de saída permissivas, especialmente para chamadas internacionais ou destinos de tarifa premium.
  • Arquivos /etc/amportal.conf e /etc/asterisk/sip_additional.conf contendo credenciais ou senhas de extensões reutilizáveis pelo invasor.
  • Ambientes que não correlacionam autenticação web, criação de arquivos PHP, alterações de .htaccess e picos de chamadas por extensão.
Hunting e telemetria

A investigação defensiva deve correlacionar três planos: aplicação web, sistema operacional e telefonia. No plano web, procure tentativas de autenticação com parâmetros de senha em estrutura inesperada, sessões administrativas criadas após falhas aparentes de login e requisições para rotas administrativas do FreePBX a partir de endereços que também realizaram varredura SIP. No sistema de arquivos, priorize arquivos PHP recém-criados ou modificados em diretórios acessíveis pela interface web, conteúdo codificado em base64, nomes curtos ou incomuns e mudanças em .htaccess que alterem o caminho normal para arquivos administrativos.

No plano Asterisk, a telemetria mais útil está nos registros de chamadas, autenticação de extensões, uso de prefixos e tentativas de saída para destinos incomuns. O padrão descrito inclui iteração por prefixos e chamadas de teste para validar rotas. Isso pode aparecer como sequência de chamadas curtas, repetidas, originadas de extensões que não costumam discar internacionalmente, com variação de prefixo e convergência para um mesmo destino ou país. Logs de acesso ao painel, registros do Asterisk e dados de faturamento devem ser analisados em conjunto, porque a sessão web comprometida e a fraude de chamadas podem ocorrer em momentos próximos, mas não necessariamente no mesmo minuto.

  • Parâmetro password recebido em formato incompatível com o fluxo normal de login do FreePBX.
  • Sessões administrativas criadas após requisições de autenticação malformadas ou falhas registradas parcialmente.
  • Criação ou alteração de arquivos PHP em caminhos servidos pelo painel, incluindo artefatos codificados em base64.
  • Leitura incomum de /etc/amportal.conf e /etc/asterisk/sip_additional.conf por processos ligados ao serviço web.
  • Alterações em /var/www/html/admin/views/.htaccess ou rotas alternativas para config.php.
  • Chamadas de saída em massa, chamadas curtas de teste, variação rápida de prefixos e destinos internacionais incompatíveis com o perfil da organização.
Mitigação

A primeira medida é corrigir o FreePBX para uma versão que elimine CVE-2019-19006 e validar que o comportamento de autenticação não aceita a condição de senha estruturada como array. Em paralelo, a interface administrativa deve ser retirada da exposição direta sempre que possível, com acesso limitado por VPN, lista de origem confiável ou segmentação de rede. Controles de autenticação devem ser revisados, mas a troca de senha isolada não resolve o caso quando há web shells, arquivos alterados e credenciais SIP já coletadas. A resposta precisa tratar o servidor como potencialmente comprometido até que a persistência seja descartada.

A contenção deve incluir inventário de arquivos web modificados, remoção de web shells, restauração de .htaccess a partir de referência íntegra e revisão dos arquivos de configuração que armazenam credenciais. Senhas de extensões SIP, credenciais do banco de dados do FreePBX e credenciais relacionadas à interface REST devem ser rotacionadas quando houver evidência de leitura dos arquivos citados. Também é necessário revisar rotas de saída, bloquear destinos de tarifa premium não necessários, aplicar limites por extensão e acompanhar faturamento. Depois da limpeza, valide se não existem chamadas anômalas, novos arquivos PHP, sessões administrativas suspeitas ou alterações persistentes no painel.

  • Aplicar correção para CVE-2019-19006 e confirmar que o fluxo de login não retém sessão após entrada malformada.
  • Restringir o acesso ao painel FreePBX por origem confiável e remover exposição administrativa direta à internet.
  • Auditar diretórios web do FreePBX em busca de PHP não reconhecido, base64 suspeito, nomes como rr.php e alterações de .htaccess.
  • Rotacionar credenciais presentes em /etc/amportal.conf, senhas de extensões em /etc/asterisk/sip_additional.conf e segredos usados por banco ou API interna quando houver indício de acesso.
  • Revisar permissões de chamada por extensão, bloquear prefixos e destinos não utilizados e criar alertas para chamadas internacionais ou de tarifa premium fora do padrão.
  • Correlacionar logs web, registros do Asterisk e dados de cobrança para determinar janela de comprometimento, escopo de chamadas indevidas e persistência remanescente.