Um grupo de threat actors está comprometendo servidores NGINX em uma campanha que sequestra o tráfego de usuários, redirecionando-o pela infraestrutura dos invasores.
NGINX é um software open-source de gerenciamento de tráfego web, amplamente utilizado como web server, load balancer, cache e reverse proxy.
Ele atua como intermediário entre usuários e servidores.
A campanha maliciosa, descoberta pelos pesquisadores do DataDog Security Labs, mira instalações de NGINX e painéis de gerenciamento Baota, comuns em sites com domínios de primeiro nível asiáticos (.in, .id, .pe, .bd, .th), além de portais governamentais e educacionais (.edu e .gov).
Os invasores modificam arquivos de configuração do NGINX ao injetar blocos ‘location’ maliciosos que interceptam requisições em URLs específicas definidas por eles.
Essas requisições são reescritas para incluir a URL original completa e encaminhadas, via diretiva ‘proxy_pass’, para domínios controlados pelos atacantes.
Normalmente, a diretiva ‘proxy_pass’ é usada para balanceamento de carga, permitindo que o NGINX redirecione requisições entre servidores backend alternativos para otimizar desempenho ou disponibilidade.
Por isso, seu uso abusivo dificilmente aciona alertas de segurança.
Cabeçalhos HTTP como ‘Host’, ‘X-Real-IP’, ‘User-Agent’ e ‘Referer’ são preservados para manter a aparência legítima do tráfego.
A ação maliciosa se apoia em uma ferramenta automatizada com cinco estágios que realizam as injeções de configuração no NGINX:
1. **zx.sh:** script controlador inicial que baixa e executa os demais estágios.
Possui um mecanismo fallback que realiza requisições HTTP brutas via TCP caso ‘curl’ ou ‘wget’ não estejam disponíveis.
2. **bt.sh:** foca nas configurações gerenciadas pelo painel Baota.
Seleciona dinamicamente templates de injeção com base no valor de ‘server_name’, sobrescreve configurações de forma segura e recarrega o NGINX para evitar downtime.
3. **4zdh.sh:** mapeia diretórios comuns de configuração, como sites-enabled, conf.d e sites-available.
Utiliza ferramentas de parsing como ‘csplit’ e ‘awk’ para evitar corrupção dos arquivos, detecta injeções prévias via hashing e valida as mudanças com ‘nginx -t’ antes do reload.
4. **zdh.sh:** abordagem mais focada, principalmente no diretório /etc/nginx/sites-enabled, enfatizando domínios .in e .id.
Segue o mesmo processo de validação e recarregamento, com reinício forçado usando ‘pkill’ como fallback.
5. **ok.sh:** escaneia configurações comprometidas para mapear domínios sequestrados, templates de injeção e destinos da proxy.
Esses dados são exfiltrados para um servidor de comando e controle (C2) localizado no IP 158.94.210[.]227.
Esses ataques são difíceis de detectar porque não exploram vulnerabilidades no NGINX, mas inserem comandos maliciosos em arquivos de configuração — que raramente passam por auditoria rigorosa.
Além disso, o tráfego do usuário chega normalmente ao destino final, muitas vezes diretamente, o que torna imperceptível a passagem pelo backend dos invasores, salvo se houver monitoramento específico para identificar redirecionamentos suspeitos.
Publicidade
Conheça a Solyd One, e tenha acesso a todos os cursos de segurança ofensiva da Solyd, todas as certificações práticas, incluindo a SYCP, 2 CTFs anuais com prêmios de até 30 mil reais, dezenas de laboratórios realísticos, suporte, comunidade e muito mais. Saiba mais...