Durante o monitoramento de segurança de um ambiente Linux, um alerta de Webshell foi disparado, exigindo uma investigação profunda para determinar a extensão do comprometimento. Este guia técnico detalha o processo de análise forense utilizado para identificar a origem do ataque, os arquivos maliciosos e a recuperação de credenciais alteradas pelo invasor.
Identificação da Origem e Ponto de Entrada
A análise inicial concentrou-se nos logs de tráfego de rede para identificar o vetor de ataque. Ao examinar as requisições HTTP, detectamos padrões característicos da ferramenta AntSword (AntSword Traffic).
Os dados coletados revelaram os seguintes parâmetros do atacante:
- Endereço IP do Atacante: 192.168.20.1
- URL do Primeiro Webshell:
index.php?user-app-register - Sanha de Conexão (Webshell):
Network2020
Utilizando ferramentas de inspeção de pacotes para decodificar o tráfego, foi possível extrair a primeira flag de segurança contida no fluxo de dados:
flag1{Network@_2020_Hack}
Persistência e Malware Secundário
Dando continuidade à inspeção, observamos que o invasor não se limitou ao primeiro acesso. Houve o upload de um segundo artefato malicioso, desta vez um webshell compatível com o Behinder (冰蝎), para garantir persistência no servidor.
O arquivo identificado foi:
version2.php
Investigação no Sistema de Arquivos e Histórico de Comandos
Ao acessar o console do servidor, a análise do histórico de comandos do shell (.bash_history) forneceu pistas cruciais sobre as ações pós-exploração. O atacante realizou o download e instalação de um painel de gerenciamento (BT Panel).
Durante a auditoria de arquivos modificados recentemente, localizamos as seguintes flags ocultas no sistema:
# Verificação de histórico e artefatos
cat ~/.bash_history
# Identificado flag3: flag3{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ}
O atacante também editou arquivos legítimos do sistema de notificações para ocultar código. Ao inspecionar mpnotify.php e alinotify.php, encontramos a segunda flag:
flag{bL5Frin6JVwVw7tJBdqXlHCMVpAenXI9In9}
Análise de Banco de Dados e Recuperação de Senhas
Para determinar se houve comprometimento de credenciais administrativas, realizamos uma busca por arquivos de configuração que pudessem conter segredos de conexão com o banco de dados.
# Busca refinada por arquivos de configuração
find /www/wwwroot/ -type f -name "*.inc.php"
O arquivo ./127.0.0.1/lib/config.inc.php continha as credenciais de acesso ao MySQL:
- Usuário: kaoshi
- Senha: 5Sx8mK5ieyLPb84m
Após acessar o banco de dados, consultamos a tabela de usuários administrativos para verificar alterações:
SELECT user_name, user_password FROM x2_user WHERE user_groupid = 1;
O hash MD5 recuperado foi submetido a um processo de quebra (brute-force/rainbow tables), revelando que a senha do administrador havia sido alterada pelo invasor para:
Senha do Administrador (Plaintext): Network@2020